在本章中,无涯教程将研究概念-类(class)和对象(object) 。
Class - 类,可以定义为模板,以描述其对象所支持的行为或状态。
Object - 对象,是类的实例,具有状态和行为。 例如:一条狗有状态-颜色,名字,进食。
现在深入研究什么是对象 ,如果考虑现实世界,可以找到身边周围的许多对象 ,如 汽车,狗,人类等等,所有这些对象都有一种状态和一种行为。如:一只狗,那么它的[状态]是-名称,品种,颜色,[行为]是-吠叫,摇尾巴,奔跑。
类是创建单个对象的模板,以下是一个类的示例。
链接:https://www.learnfk.comhttps://www.learnfk.com/java/java-object-classes.html
来源:LearnFk无涯教程网
public class Dog { String breed; int age; String color; void barking() { } void hungry() { } void sleeping() { } }
一个类可以有任意数量的方法来访问各种方法的值,在上面的例子中,barking()、hunting()和sleep()都是方法。
下面是在研究Java语言的类时需要讨论的一些重要主题。
当讨论类时,最重要的子函数之一是构造函数,每个类都有一个构造函数,如果没有显式地为一个类编写构造函数,Java编译器就会为该类构建一个默认的构造函数。
每次创建(new)新对象时,将至少调用一个构造函数,构造函数的主要规则是它们应该与类同名,一个类可以有多个构造函数。
以下是构造函数的示例
public class Puppy { public Puppy() { } public Puppy(String name) { //这个构造函数有一个参数,name。 } }
注意 - 无涯教程有两种不同类型的构造函数。将在后面的章节中详细讨论构造函数。
如前所述, 对象是从类创建的。在Java中,new关键字用于创建新对象 。
public class Puppy { public Puppy(String name) { //这个构造函数有一个参数,name。 System.out.println("Passed Name is :" + name ); } public static void main(String []args) { //以下语句将创建一个对象 myPuppy Puppy myPuppy = new Puppy( "Learnfk" ); } }
如果编译并运行上面的程序,那么它将产生以下输出-
Passed Name is :Learnfk
访问实例变量和方法。要访问实例变量,以下是完全限定路径-
/* 首先创建一个对象 */ ObjectReference=new Constructor(); /* 现在调用一个变量如下 */ ObjectReference.variableName; /* 现在你可以调用一个类方法如下 */ ObjectReference.MethodName();
此示例说明如何访问类的实例变量和方法。
public class Puppy { int puppyAge; public Puppy(String name) { //这个构造函数有一个参数: name。 System.out.println("Name chosen is :" + name ); } public void setAge( int age ) { puppyAge = age; } public int getAge( ) { System.out.println("Puppy's age is :" + puppyAge ); return puppyAge; } public static void main(String []args) { /*对象创建 */ Puppy myPuppy = new Puppy( "Learnfk" ); /* 调用类方法设置小狗的年龄 */ myPuppy.setAge( 2 ); /* 调用另一个类方法来获取小狗的年龄 */ myPuppy.getAge(); /* 您也可以按如下方式访问实例变量 */ System.out.println("Variable Value :" + myPuppy.puppyAge ); } }
如果无涯教程编译并运行上面的程序,那么它将产生以下输出-
Name chosen is :Learnfk Puppy's age is :2 Variable Value :2
简单地说,它是对类和接口进行分类的一种方法,当用Java开发应用程序时,将会编写数百个类和接口,因此对这些类进行分类是必须的,使代码能有效隔离。
例如,以下行将要求编译器加载目录JAVA_INSTALLATION/JAVA/io-中的所有可用类
import java.io.*;
将创建两个类,它们是Employee和EmployeeTest。
首先打开记事本并添加以下代码。请记住,这是Employee类,该类是公共类(public)。现在,用名称Employee.java保存这个源文件。
Employee类有四个实例变量-name、age、designation 和 salary。该类有一个显式定义的构造函数,它接受一个参数。
import java.io.*; public class Employee { String name; int age; String designation; double salary; //这是Employee类的构造函数 public Employee(String name) { this.name = name; } //将 Employee 的年龄分配给变量 age。 public void empAge(int empAge) { age = empAge; } /* 将名称分配给变量名称。*/ public void empDesignation(String empDesig) { designation = empDesig; } /* 将薪水分配给薪水变量。*/ public void empSalary(double empSalary) { salary = empSalary; } /* 打印员工详细信息 */ public void printEmployee() { System.out.println("Name:"+ name ); System.out.println("Age:" + age ); System.out.println("Designation:" + designation ); System.out.println("Salary:" + salary); } }
无涯教程将创建一个单独的类。并实例化这个对象为每个变量赋值。
将以下代码保存在EmployeeTest.java文件中。
import java.io.*; public class EmployeeTest { public static void main(String args[]) { /* 使用构造函数创建两个对象 */ Employee empOne = new Employee("James Smith"); Employee empTwo = new Employee("Mary Anne"); //为创建的每个对象调用方法 empOne.empAge(26); empOne.empDesignation("Senior Software Engineer"); empOne.empSalary(1000); empOne.printEmployee(); empTwo.empAge(21); empTwo.empDesignation("Software Engineer"); empTwo.empSalary(500); empTwo.printEmployee(); } }
现在,编译这两个类,然后运行EmployeeTest以查看输出,如下所示-
C:\> javac Employee.java C:\> javac EmployeeTest.java C:\> java EmployeeTest Name:James Smith Age:26 Designation:Senior Software Engineer Salary:1000.0 Name:Mary Anne Age:21 Designation:Software Engineer Salary:500.0
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)
Python实战 · 从0到1搭建直播视频平台 -〔Barry〕