zoukankan      html  css  js  c++  java
  • 关于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的实例对象呢?

    这是因为:

    成员变量编译运行看左面

    成员方法编译看左面,运行看右面

  • 相关阅读:
    2018-04-13Java编程夯实学习心得(3)
    2018-03-28JavaScript学习心得
    2018-03-27mysql学习心得
    JavaScript-作用域
    样式切换图
    购物车结算
    Visual Studio Code快捷键操作
    复选框
    win10锁屏界面无法设置隐藏
    轮播图
  • 原文地址:https://www.cnblogs.com/liuwt365/p/4079447.html
Copyright © 2011-2022 走看看