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很多人都不懂这是为什么。
慢慢看吧··
看明白了就知道了。

posted on 2009-07-15 06:00 duduli 阅读(1164) 评论(1)  编辑  收藏 所属分类: java

评论

# re: java以前的笔记(二) 2009-07-15 11:55 99读书人

不错哦  回复  更多评论   


只有注册用户登录后才能发表评论。


网站导航:
 
<2009年7月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

导航

统计

公告

welcome to my place.

常用链接

留言簿(5)

我参与的团队

随笔分类

随笔档案

新闻分类

石头JAVA摆地摊儿

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜

@duduli