面试题16 关于实例成员和类成员区别
考题题干
下面关于实例成员的说法,哪些是正确的?
A.实例成员也被称为实例变量
B.实例成员属于类成员
C.实例成员隶属于实例,但不隶属于整个类
D.实例成员包括实例变量和实例方法
E.实例成员变量就是静态变量
试题分析
这道题主要考查什么是实例成员?什么是类成员?两者之间有着怎样的关系?又有着怎样的区别?
1.实例成员
实例成员包括实例成员变量和实例成员方法,实例成员变量(对象的字段)和方法(对象的方法)是隶属于对象的,实例变量的值代表了该对象的状态,实例成员方法代表了该对象的行为。只有创建了对象之后才能访问实例成员变量和实例成员方法,通过"对象名.变量名(方法名)"的方式可以访问实例成员,代码如下:public class NameClass {
Stringname="Lily";
intage=12;
public void print(){
System.out.println("姓名:");
System.out.println("年龄:");
}
public static void main(String[] args){
NameClassnc=newNameClass();
nc.print();
System.out.println(nc.age+" "+nc.name);
}
}
在这个程序中name和age就是实例成员变量,而print()方法就是实例成员方法。因为在static main()方法中是通过创建NameClass类的对象nc来访问的。
2.类成员
类成员(静态成员)需要用关键字static标识,类成员包括类成员变量和类成员方法,类成员是隶属于类的,意思是说通过类名可以直接访问类成员变量或调用类成员方法,即使没有创建对象,也能够引用类成员,当然类成员也可以通过对象引用。它既可以通过"对象名.变量名"方式访问,也可以通过"类名.变量名"的方式访问。它们是完全等价的。代码如下:
public class BB {
private static intnum=20;
private static Stringname="vivi";
public void call() {
BB.print();
new BB().print();
System.out.println(BB.name + "," + BB.num);
}
public static void print() {
System.out.println("Hellow China");
}
}
在这个程序中num和name就是类成员变量,而print()方法和call()方法就是类成员方法,因为任何的方法中都可以通过类名.变量名(BB.name)和对象名.方法名(new BB().print())访问。
下面列出成员的相关解释,供大家参考学习,如图2.20所示。成员名称及其说明如表2.1所示。
图2.20 成员结构图
表2.1 成员名称及其说明
成员名称
成员含义
实例成员
指的是对象的实例变量和实例方法,只能通过对象
引用加以访问或者调用
实例变量
实例变量只有在类的实例化时才分配的字段,即当
创建类对象的时候,系统才分配这个字段,也叫做非静态字段
实例方法
一种隶属于类实例的方法,隶属于相同类的
所有对象分享方法的实现
静态成员
指的是隶属于类的静态方法和静态变量,静态成员可
以通过类名或者对象引用加以访问和调用
静态变量
一种载入类时就需要进行分配的字段,静态变量隶属于类,
但是不属于该类的任何对象,所以成为静态字段或者类变量
静态方法
一种隶属于类但是不属于该类任何对象的方法,叫做类方法,
同样可以通过类名或者对象引用加以访问和调用
参考答案
CD
【责任编辑:云霞 TEL:(010)68476606】
点赞 0