Java Notes: Java的this和static,
分享于 点击 7701 次 点评:250
Java Notes: Java的this和static,
this 关键字:
Java调用非静态的成员方法的机制中需要将当前调用方法的对象传入方法,以识别是谁调用该方法。(隐式传入)
例如:
public class Banana{
public void func(int i){
}
public static void main(String[] args){
Banana a = new Banana();
Banana b = new Banana();
a.func(1);
b.func(2);
}
}
这里的a.func(1)实质是Banana.func(a,1),而b.func(1)的实质是Banana(b,2)。但这只是编译器内部的写法,不能这样写程序。但是如果我需要使用传入函数的对象引用,可使用this关键字。this只能在方法内使用,表示调用方法的那个对象。
而通常会用到this的时候:
1) 为了区分同名的参数:
public class Point {
private int x;
public Point(int x) { this.x = x;}
}
public Rectangle() {
this(1,1);
}
public Rectangle(int width, int height) {
......
}
static 关键字:
static方法就是没有this的方法。调用语法只能是用"类名.静态方法()"。没有this,意味着不能传进调用的当前对象,所以不能使用对象去调用方法。所以,在静态方法内部不能直接调用非静态的方法,因为没有this对象。但是非静态方法是可以访问静态方法和静态域的。
由于Java禁止使用全局方法,所以使用static方法来代替。static方法可以访问属于同类的static方法和static变量。我们称static方法为属于该类的东西。由所有类的对象所共享。
相关文章
- 暂无相关文章
用户点评