简述:
在java中有普通方法、静态方法、构造方法
。在类中、类中的方法中分别调用这些方法在语法上是有区别的。在类中和在类外调用也是有区别的。
1.在同一个类中:
1)在普通方法中调用
class A{
void methodA(){} //普通方法
static void methodB(){} //静态方法
void methodC(){ //在普通方法中调用
methodA();
this.methodA();
methodB();
this.methodB();
A.methodB();
A.methodA();
}
}
正确的:
methodA();
this.methodA();
methodB();
this.methodB();
A.methodB();
错误的:
A.methodA();
记住普通方法是一定不能用类去调用的。
可以在普通方法中调用静态方法
2)在静态方法中调用
class A{
void methodA(){}
static void methodB(){}
static void methodC(){
methodA();
this.methodA();
A.methodA();
methodB();
this.methodB();
A.methodB();
}
}
其中正确的有:
methodB();
A.methodB();
错误的:
methodA();
this.methodA();
A.methodA();
this.methodB();
不能在静态方法中调用普通方法
2.在不同的类中:
1)在普通方法中调用
class A{
void methodA(){}
static void methodB(){}
}
class B{
void methodA(){}
static void methodB(){}
void methodC(){
A a = new A();
a.methodA();
this.methodA();
A.methodB();
a.methodB();
}
}
正确的:
A a = new A();
a.methodA();
A.methodB();
a.methodB();
错误的:
this.methodA();
此处的this是B类中的引用,只能调用B类对象的方法。
2)在静态方法中调用
class A{
void methodA(){}
static void methodB(){}
}
class B{
static void methodC(){
methodA();
this.methodA();
A.methodA();
methodB();
this.methodB();
A.methodB();
A a = new A();
a.methodB();
}
}
其中正确的有:
A.methodB();
A a = new A();
a.methodB();
错误的:
methodA();
this.methodA();
A.methodA();
methodB();
this.methodB();
总结:
1.在同一个类中普通方法可以直接调用静态方法,而在静态方法中不能直接调用普通方法
2.在静态方法中一定不能出现this的引用
3.普通方法一定不能用类去调用
4.在不同的类中,不能直接在一个类中直接调用另一个类的方法,也不能用这一个类的this引用去调用另一个类中的方法