先来看一道面试题:
下列说法错误的有()
A.在类方法中可用this来调用本类的类方法
B.在类方法中调用本类的类方法时可直接调用
C.在类方法中只能调用本类中的类方法
D.在类方法中绝对不能调用实例方法
曾经我做过两次,都没做正确,一:第一次做的时候 没有回来查找答案,二:当时确实不理解什么是类方法。
******************欢乐的分割线***************************
方法根据是否有static修饰也可以分为类方法和对象方法(实例方法)。
访问时,类方法可以直接通过类名引用,而实例方法必须通过对象名来访问,也就是说要想使用实例方法,就必须创建一个该类的对象。
Math类的方法都是类方法,在使用时,可以如下:
int i = Math.abs(50);
一般而言,类方法的执行不依对象而改变。在定义方法时,一些与对象无关的通用方法通常被定义为类方法。由于类
方法是属于整个类的,并不属于哪个对象,所以类方法的方法体中不能有与类的对象有关的内容,所以出现下面的情
况的时候会出现编译错误:
1 类方法中不能引用对象变量
2 类方法中不能调用类的对象方法
3 在类方法中不能使用super、this关键字。
使用对象方法时,必须先创建对象实例,然后才能使用,如:
Student stu=new Student("0701956");
stu.showAcademicRecord();
与类方法相比,对象方法基本上没有什么限制:
1 对象方法可以引用对象变量,也可以引用类变量
2 对象方法中可以调用类方法
3 对象方法中可以使用super、this关键字。