当前位置导航:炫浪网>>网络学院>>编程开发>>JAVA教程>>Java入门

JAVA 以前的学习笔记(二)

    this和supper关键字

    一个是this另外一个是supper.

    首先介绍supper吧。它比较好介绍点。

    大家都知道java中很重要的就是类的概念。而类可以被继承的,被继承的类称为父类,继承的那个类称为子类。

    而父类又被称为超类,所以这超类就比较容易说点。这也是区分使用this和supper的好方法吧。

    Super是子类调用当前对象父类的构造函数(且必须是构造函数)方法,在这必须注意的是构造函数。如有不懂的可看书,什么是构造函数,在这就不写了。

    This是调用当前构造函数的方法。

    而且都只能在类的第一个写。

    如果子类的函数或对象把父类的函数或对象覆盖了。而且子类又想使用父类的函数或对象,就得使用super来调用。

    在来就是我看到的以个很经典的程序。
 public class ATM
{
         public Account a;
         public ATM (Account s)
         {
                   a=s;
         }
}

    这是程序的第一个类。
 public class Account
{
         public ATM b;
         public int No=10;
         void openATM()
         {
                   b=new ATM(this);
         }
}    这是程序的第二个类。
 public class Example12
{
         public static void main(String arg[])
         {
                   Account m=new Account();
                   m.openATM();
                   System.out.println(m.No);
                   System.out.println(m.b.a.No);
         }
}

    这是主程序。

    可以看到的是this的使用,并不是一定的,this是调用当前构造函数的,呵呵。。

    似乎很迷糊吧。

    看  b=new ATM(this);

    而这个ATM中的this又是指的什么呢?

    看看上面  看ATM类,指的是什么?Account s,它又是什么呢?a=s.。

    这下就明白了,其实 这this就是a.

    再看主程序,

    System.out.println(m.No);

    System.out.println(m.b.a.No);

    第一个输出是10.想必大家都知道,第二个呢?

    m.b.a.No呢?

    看。。。。m.openATM();

    还有

    void openATM()

    {

    b=new ATM(this);

    }

    而那个

    public ATM (Account s)

    {

    a=s;

    }

    看到了么?

    他们之间的调用,其实程序最后  就是m.No很多人都不懂这是为什么。

    慢慢看吧。。

    看明白了就知道了。

相关内容
赞助商链接