Java實驗報告4

一、實驗目的:
 1.瞭解如何使用類及其成員的修飾符,理解類的繼承性,掌握方法的繼承、重載和覆蓋。


二、實驗環境:
 Eclipce


三、實驗內容:
(一)修飾符
     1.編寫源程序KY4_1.java,通過兩個類StaticDome、KY4_1來說明類變量和與對象變量,以及類方法和對
       象方法的區別。源代碼如下:
       package ch4;


       class StaticDemo {
           static int x;
           int y;
           public static int getX() {
               return x;
           }
           public static void setX(int newX) {
               x = newX; 
           }
           public int getY() {
               return y;
           }
           public void setY(int newY) {
               y = newY;
           }
       }


       public class KY4_1 {
           public static void main(String[] args) {
               System.out.println("類變量x="+StaticDemo.getX());
               System.out.println("對象變量y="+StaticDemo.getY());  
               StaticDemo a= new StaticDemo();
               StaticDemo b= new StaticDemo();
               a.setX(1);
               a.setY(2);
               b.setX(3);
               b.setY(4);
               System.out.println("類變量a.x="+a.getX());
               System.out.println("對象變量a.y="+a.getY());
               System.out.println("類變量b.x="+b.getX());
               System.out.println("對象變量b.y="+b.getY());
           }
       }
程序出錯,對面的實例變量和實例方法不能直接通過類名訪問,要使程序能正確運行可刪除代碼行System.out.println("對象變量y="+StaticDemo.getY());或者將StaticDemo類中的實例變量和實例方法都加上修飾詞static使它們成爲類變量和類方法,程序正確運行結果截圖:
 


     (二)方法中參數傳遞的練習
      1.編寫一個程序文件KY4_2.java。程序功能如下:有一個主方法main() 以及一個求平方和的方法int
        square(int x, int y)。square方法計算參數x 和y的平方和,並返回該平方和值。在主方法main
        中定義兩個整型變量,並給它們賦一個初值,然後使用這兩個變量作爲實際參數來調用square方法,
        求出平方和,最後輸出平方和。
        程序源代碼:
        package ch4;


        public class KY4_2 {
       static int square(int x,int y){
   return (x*x+y*y);
       }


       public static void main(String[] args) {
       // TODO Auto-generated method stub


       int x;
       int y;
       x=3;
       y=4;
       System.out.println(square(x,y));
       }


        }
     程序運行結果截圖:
 


(三)類的繼承性練習
1.編寫兩個程序文件KY4_3.java和KY4_4.java,實現類的繼承。KY4_3定義成員變量xm(姓名),xh(學號),定義方法print()輸出姓名和學號。子類KY4_4繼承父類 KY4_3,其不僅具有父類的成員變量 xm(姓名)、xh(學號),還定義了新的成員變量 xy(學院)、xi(系)。在子類KY4_4中重寫了父類的方法print(),在該方法中不僅輸出學生的姓名和學號,而且還輸出學生的學院和系。另外,在子類KY4_4中還定義了一個主方法main。首先,在主方法中創建一個父類 KY4_3的對象f,設置f的姓名爲"帥零",學號爲"12321",並且調用print()方法輸出對象f的姓名和學號。接着,在主方法中創建一個子類 KY4_4的對象s,設置s的姓名爲"郭娜",學號爲"12345",學院爲"經濟管理學院",係爲"信息管理系",並且調用print()方法輸出對象s的姓名,學號,學院和系。
        程序源代碼:
        KY4_3.java:
        package ch4;


        public class KY4_3 
        { 
            protected String xm;                     //姓名 
            protected int xh;                        //學號
            void setdata(String m,int h)              //該方法爲姓名和學號賦初始值 
            { 
                xm =m; 
                xh = h; 
            } 
            public void print()          //輸出學生的姓名和學號 
            { 
                System.out.println(xm+", "+xh); 
            } 
        }
     
        KY4_4.java:
        package ch4;


        public class KY4_4 extends KY4_3{


       String xy;
       String xi;
       public void print(){
       System.out.println(xm+", "+xh+", "+xy+", "+xi);
            }
       public static void main(String[] args) {
       // TODO Auto-generated method stub
       KY4_3 f=new KY4_3();
       KY4_4 s=new KY4_4();
       f.xm="帥零";
       f.xh=12321;
                f.print();
       s.xm="郭娜";
       s.xh=12345;
       s.xy="經濟管理學院";
       s.xi="信息管理系";
       s.print();

       }


        }
        程序運行結果截圖:
      


(四)思考題:說明類的繼承和多態都有什麼作用?
      答:繼承可以減少代碼的書寫量,實現代碼複用,子類可以在已有的基礎上進行修改和擴展從而實現   的特定功能;多態性就是指父類的某個方法被其子類重寫時,可以各自產生自己的功能行爲,多態的作用就是消除類型之間的耦合耦合關係。
四、心得體會:
用static修飾的變量稱爲類變量,當類中有類變量時,同new運算符創建的多個對象共享這個變量,且可以通過類名直接訪問這個變量,用static修飾的方法稱爲類方法,在類方法被加載到內存時就分配的相應的入口地址,從而類方法可以被類創建的任何對象調用執行,也可以通過類名調用。如果一個子類繼承了父類,若他們在一個包中,子類就可以調用父類中不是private的成員變量和方法,同時子類還能在繼承的基礎上進行擴展,新增自己的變量和方法,也可以重寫從父類繼承的方法。
發佈了58 篇原創文章 · 獲贊 22 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章