在关于区别实例成员和类成员的时候,我想,小伙伴们都会感到疑惑,有时候也难以区分其中的区别。
现在让我们走进来,一起探查其中的奥妙。
首先:
让我们来了解实例成员是什么。
实例成员
实例成员包括成员变量和实例成员方法,实例成员变量(对象的字段)和方法(对象方法)是隶属属于对象 的,实例变量的值代表了该对象的状态,实例成员方法代表了该对象的行为。只有创建了对象之后才能访问实例成员变量和实例成员方法,通过“对象名.变量名(方法名)”的方式可以访问实例成员,代码如下:
public class NameAge{
String name = "Conan";
int age = 18;
public void print(){
System.out.print("姓名:");
System.out.print("年龄:");
}
public static void main(String[] args){
NameAge na = new NameAge();
na.print();
System.out.print(na.age + " " + na.name);
}
}
在这个程序中name和age是实例成员变量,而print()方法就是实例成员方法。因为在static main()方法中是通过创建NameAge类的对象na来访问的。
说完这些,让我们来学习类成员
类成员
类成员(静态成员)需要用关键字static标识,类成员包括类成员变量和类成员方法,类成员是隶属于类的,意思是说通过类名可以直接访问类成员变量或调用类成员方法,即使没有创建对象,也能够引用类成员,当然类成员也可以通过对象引用。它既可以通过“对象名.变量名”方式访问,也可以通过“类名.变量名”的方式访问。它们是完全等价的。代码如下:
public class Person{
private static int num = 22;
private static String name = "Conan";
public void call(){
Person.print();
new Person().print();
System.out.print(Person.name + "," + Person.num);
}
public static void print(){
System.out.print("Hellow China");
}
}
在这个程序中num和name就是类成员变量,而print()方法和call()方法就是类成员方法,因为任何的方法中都可以通过类名.变量名(Person.name)和对象名.方法名(new Person().print())访问。
谢谢大家,本内容出自[进入IT企业必读的324个Java面试题].张昆