首页 > 代码库 > 关于this
关于this
this是指当前类的实例对象
1 public class A { 2 public void init() 3 { 4 System.out.println("1、A init"); 5 this.dosomething(); 6 } 7 8 public void dosomething() 9 {10 System.out.println("2、A dosomething");11 }12 }
1 public class B extends A{ 2 public void init() 3 { 4 System.out.println("3、B init"); 5 super.init(); 6 } 7 8 public void dosomething() 9 {10 System.out.println("4、B dosomething");11 }12 13 public static void main(String[] args) {14 B b=new B();15 b.init(); 16 }
为什么会是这个结果??
这是因为如果是无参函数,那么有一个默认的参数是this,也就是类的实例对象
super.init(),实际是super.init(b)
那么
在类A中this.dosomething,就是A.dosomething(),所以结果就是3 1 4
public String name="tom"; public void init() { System.out.println(this.name); }
public String name="jack"; public void init() { super.init(); System.out.println(this.name); } public static void main(String[] args) { B1 b=new B1(); b.init(); System.out.println(b.name); A1 a=new B1(); a.init(); System.out.println(a.name); }
这里的运行结果为什么又不符合上面说的默认参数是一个this的实例对象呢?
这是因为:
成员变量编译运行看左面
成员方法编译看左面,运行看右面
关于this
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。