把困難踩在腳下

          迎難而上

           

          super和this功能

          super 有兩個功能:一是調用父類的非私有的函數和方法;二是調用父類的非私有屬性。
          看下面程序:
          package com.dr.test2;
          class Person{
              String name;
              int age;
           public  Person(String name,int age){
            this.setName(name);
            this.setAge(age);
           }
           public String getName() {
            return name;
           }
           public void setName(String name) {
            this.name = name;
           }
           public int getAge() {
            return age;
           }
           public void setAge(int age) {
            this.age = age;
           }
           public String getInfo(){
            return "姓名:"+name+"年齡:"+age;
           }
          }
          class Student extends Person{
           String school;
           public Student(String name,int age,String school){
            super(name,age);
            System.out.println("調用父類的構造函數");
            this.setSchool(school);
           }
           public void fun(){
            System.out.println("調用父類的屬性");
            System.out.println(super.name);
           }
           public String getSchool() {
            return school;
           }
           public void setSchool(String school) {
            this.school = school;
           }
           public void print(){
            System.out.println(getInfo());
           }
           public String getInfo(){
            return "姓名:"+'\n'+this.name+'\n'+
            "年齡:"+'\n'+this.age+'\n'+"學校:"+'\n'+this.school+'\n';
           }
           
          }
          public class Demo01 {
           public static void main(String[] args) {
            
            Student s1=new Student("aa",20,"bb");
            s1.print();
            s1.fun();
           }

          }
          程序的運行結果是:
          調用父類的構造函數
          姓名:
          aa
          年齡:
          20
          學校:
          bb

          調用父類的屬性
          aa
          在這個程序中新建一個Person父類和一個子類Student,在子類Student的構造函數中使用super()函數調用了Person類的構造函數,在子類Student中還定義了一個fun()函數,在fun()函數中使用super調用了父類的屬性。
          this也有兩個功能:一是調用同一個類中的的非私有方法;二是調用同一個類中的屬性。
          看下面程序:
          package com.dr.test2;
          class Per{
           String name;
           int age;
           public Per(){};
           
           public String getName() {
            return name;
           }
           public void setName(String name) {
            this.name = name;
           }
           public int getAge() {
            return age;
           }
           public void setAge(int age) {
            this.age = age;
           }
           public void fun(){
            
            System.out.println("調用同一個類中的屬性");
            System.out.println(this.name);
           }
           public void fun1(){
            System.out.println("調用同一個類中的方法");
            this.fun();
           }
          }
          public class Demoo4 {
                public static void main(String args[]){
                 Per p1=new Per();
                 Per p2=new Per();
                 p1.setName("張三");
                 p1.setAge(20);
                 p2.setName("李四");
                 p2.setAge(40);
                 p1.fun1();
                 p2.fun1();
                }
          }
          程序輸出結果是:
          調用同一個類中的方法
          調用同一個類中的屬性
          張三
          調用同一個類中的方法
          調用同一個類中的屬性
          李四
          在此程序中定義了一個Per類,類中定義了兩個方法fun()和fun1(),在fun()方法中使用了this調用了本類中的name屬性,在fun1()函數中調用了本類中的fun()方法。

          posted on 2010-10-18 11:47 馮魁 閱讀(582) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          導航

          統計

          公告

          快樂每一天!

          Everything is an object!

          常用鏈接

          留言簿(2)

          隨筆檔案

          學習網站

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 鹤山市| 晋宁县| 三穗县| 兴国县| 嘉祥县| 连云港市| 拜城县| 惠安县| 轮台县| 高密市| 连州市| 图片| 阜南县| 宜丰县| 利川市| 恩施市| 濮阳县| 怀远县| 北票市| 潞城市| 昭苏县| 昌宁县| 忻城县| 象州县| 永康市| 黔东| 康定县| 无为县| 德钦县| 安远县| 芒康县| 望奎县| 若羌县| 望江县| 金川县| 甘肃省| 丰镇市| 大安市| 郸城县| 连平县| 祥云县|