java面向對象九個經典例子程序


1 Hello world例子

 1 package Example;      //定義自己的包名  
 2    
 3 public class Example1                    //定義一個類  
 4 {  
 5     public static void main(String[] args)          //系統可以執行的main方法,這里是一個公有靜態無返回值的方法  
 6     {  
 7         System.out.println("Hello world!");  
 8 //調用java.lang包中的System類的PrintLine方法輸出Hello world!  
 9     }  
10 }  

2 類的基本組成示例

 1 package Example;  
 2 class Person  
 3     {  
 4         public int age;             //聲明公共字段age  
 5        private String name;        //聲明私有字段name,此時name為類的屬性,下面通過公有方法進行訪問  
 6        public String getName() {  
 7            return name;  
 8        }  
 9        public void setName(String name) {  
10            this.name = name;  
11        }  
12         
13        public void eat()           //定義無參數的eat方法  
14        {  
15           System.out.println("Person can eat");  
16        }  
17        public void eat(String s)   //定義帶參數的eat方法,實現方法重載  
18        {  
19           System.out.println("Person can eat"+s);  
20        }  
21        public Person()            //定義無參構造函數,注意無返回值定義,方法與類同名  
22        {  
23        }  
24        public Person(int age, String name) //重寫一個帶參數構造函數,注意無返回值定義,方法與類同名  
25        {  
26            this.age = age;         //前一個age為對象的字段,由this指定,后一個age為函數形參  
27            this.name = name;       //前一個name為對象的屬性,由this指定,因為在本類中可直接訪問,后一個name為函數形參  
28            }  
29         
30 }  
31 public class Example2  
32 {  
33     public static void main(String[] args)  
34     {  
35         Person person1 = new Person();  //調用類的無參構造函數  
36     person1.age = 20;               //給對象的公有字段直接賦值  
37     person1.setName("zhangsan");      //必須使用公共方法才能給對象的屬性賦值  
38     System.out.println("第一個人信息,姓名:"+person1.getName()+"年齡:"+person1.age);  
39     person1.eat();                  //調用對象的無參方法  
40     Person person2 = new Person(18, "lisi");//調用類的有參構造函數  
41     System.out.println("第二個人信息,姓名:" + person2.getName() + "年齡:" + person2.age);  
42     person2.eat(" 饅頭");           //調用對象的有參方法  
43    
44     }  
45 }  

3靜態與非靜態變量及方法的使用

 1 package Example;  
 2    
 3 class Example3  
 4 {  
 5     public int x;          //非靜態變量  
 6     public static int y;     //靜態變量  
 7     void method()       //非靜態方法  
 8     {  
 9         x = 1;   //正確,非靜態方法可以訪問非靜態成員  
10         y = 1;   //正確,非靜態方法可以訪問靜態成員  
11        System.out.println("實例方法訪問:x="+x+" y="+y);  
12     }  
13     static void smethod()     //靜態方法  
14     {  
15         //x = 3;  錯誤,靜態方法不能非靜態成員  
16         y = 3;   //正確,靜態方法可以訪問靜態成員  
17        System.out.println("靜態方法訪問:y="+y);  
18     }  
19     public static void main(String[] args)  
20     {  
21     Example3 prog3 = new Example3();//生成類的實例  
22         prog3.method();    //非靜態方法通過實例來調用  
23    
24         Example3.smethod();  //靜態方法通過類名來調用  
25     }  
26 }  

4 類繼承的例子

 1 package Example;  
 2     
 3 class mother  
 4 {  
 5     public static String sex;//成員變量  
 6     public void method1()//父類成員方法1  
 7     {  
 8        System.out.println("母親的方法1!");  
 9     }  
10     public  void method2() //父類成員方法2  
11     {  
12        System.out.println("母親的方法2!");  
13     }  
14 }  
15 class boy extends mother //繼承  
16 {  
17     public  void method2() //改寫父類成員方法,Java中方法均為虛方法  
18     {  
19        System.out.println("我自己的方法2!");  
20     }  
21 }  
22 public class Example4  
23 {  
24     public static void main(String[] args)  
25     {  
26         boy boys = new boy();  
27         boy.sex = "男孩";//靜態變量的繼承  
28        System.out.println("繼承而來的字段sex的值為:"+boy.sex);  
29         boys.method1();//來自父類的方法  
30         boys.method2();//自己改寫后的方法  
31     }  

5類的訪問修飾符

 1 package Example;  
 2    
 3 class program1  
 4 {  
 5     public int a;      //公用成員  
 6     protected int b; //保護成員  
 7     int c;     //友好成員  
 8     private int d;      //私有成員  
 9     public void method1()  
10     {  
11         a = 1;  //內部訪問公用成員,正確  
12         b = 1;  //內部訪問保護成員,正確  
13         c = 1;  //內部訪問友好成員,正確  
14         d = 1;  //內部訪問私有成員,正確  
15        System.out.println("a="+a+",b="+b+",c="+c+",d="+d);  
16     }  
17 }  
18 class program2  
19 {  
20     public void method2()  
21     {  
22         program1 prog1 = new program1();  
23         prog1.a = 2;  
24         //prog1.b=2  //錯誤,只能在類的內部訪問或在它的繼承類里訪問  
25         prog1.c=2;    // 正確,在同一個程序集里都可以訪問  
26         //prog1.d = 2; //錯誤,只能在它的類的內部訪問  
27        System.out.println("另一個類中訪問公有成員a="+prog1.a+",友好成員c="+prog1.c);  
28     }  
29 }  
30 class program3 extends program1  
31 {  
32     public void method3()  
33     {  
34          
35         b = 4;   //正確,保護成員可以在它的繼承類里訪問  
36        System.out.println("子類可以訪問受保護成員b="+b);  
37     }  
38 }  
39 public class Example5  
40 {  
41     public static void main(String[] args)  
42     {  
43         program1 prog1 = new program1();  
44         prog1.method1();  
45         program2 prog2 = new program2();  
46         prog2.method2();  
47         program3 prog3 = new program3();  
48         prog3.method3();  
49     }  
50 }    

6抽象類及其實現示例

 1 package Example;  
 2    
 3 //應該注意的是:繼承抽象類的類,要求抽象類中的抽象方法要被實例化  
 4 abstract class personClass //抽象類  
 5 {    
 6     public String sex;//變量。  
 7     public abstract void method(); //抽象方法。  
 8 }  
 9 class man extends personClass //以抽象類為模塊的類  
10 {    
11     public  void method()//抽象方法的實例化  
12     {  
13        System.out.println("繼承抽象類的方法被實現化了");  
14     }  
15 }  
16 public  class Example6  
17 {  
18     public static void main(String[] args)  
19     {  
20         man boys = new man();//產生一個對象  
21         boys.sex = "male";//給對象一個初值  
22         System.out.println(boys.sex);  
23         boys.method();//調用man類中的方法  
24     }  
25 }  

7接口及其實現

 1 package Example;  
 2    
 3 interface Iinterface //定義一個接口  
 4 {  
 5     int i=10;      //定義的變量為fianal類型;  
 6     void method();  // 聲明接口方法,但不能有方法體{}  
 7 }  
 8 public class Example7 implements Iinterface    //實現接口  
 9 {  
10     public void method()   //接口的方法在此必須被重寫,注意訪問修飾符為public  
11     {  
12        System.out.println("接口實現成功!!!");  
13     }  
14     public static void main(String[] args)  
15     {  
16     Example7 prog7 = new Example7();  
17     //prog7.i=10;      不能修改i的值,為final類型  
18         prog7.method();   
19     }  
20 }  

8 抽象類與接口混合編程例子

 1 package Example;  
 2    
 3     interface myInterface  //定義一個接口  
 4     {  
 5         void method1();  
 6    
 7     }  
 8     abstract class abstractClass//定義一個抽象類  
 9     {  
10    
11          public abstract void method2(); //加abstract  
12     }  
13     class shixianlei extends abstractClass implements myInterface //繼承抽象類,實現接口。  
14     {  
15         public String st;       //定義自己的字段  
16         public void method1()   //實現接口,注意訪問修飾符加public  
17         {  
18            System.out.println("接口方法已加public實現");  
19         }  
20    
21         public void method2()//實現抽象方法  
22         {  
23            System.out.println("抽象類方法已實現");  
24         }  
25    
26     }  
27     public class Example8  
28     {  
29         public static void main(String[] args)  
30         {  
31             shixianlei sxl = new shixianlei();  
32             sxl.st = "實現類的字段";  
33             System.out.println(sxl.st);  
34             sxl.method1();//實現的接口方法調用  
35             sxl.method2();//實現的抽象類的方法調用  
36    
37         }  
38     }  

9 接口回調與多態性

 1 package Example;  
 2    
 3     interface Eat  //定義一個接口  
 4     {  
 5         void eat();  
 6    
 7     }  
 8    
 9      
10     class Cow implements Eat //實現接口。  
11     {  
12         public String name="牛哞哞";       //定義自己的字段  
13         public void eat()   //實現接口,注意訪問修飾符加public  
14         {  
15            System.out.println("母牛愛吃青草");  
16         }  
17     }  
18     class Hen implements Eat //實現接口。  
19     {  
20         public String name="雞咯咯";       //定義自己的字段  
21         public void eat()   //實現接口,注意訪問修飾符加public  
22         {  
23            System.out.println("母雞愛吃小蟲");  
24         }  
25     }  
26      
27 public class Example9  
28 {  
29     public static void main(String[] args)  
30     {  
31         //多態的實現,animalEat代表不同對象,表現出不同的行為  
32     Eat animalEat = new Cow(); //注意這種生成實例的方法,此處代表母牛  
33         animalEat.eat();          //調用母牛的方法  
34         //System.out.println(animalEat.name); //不能訪問  
35         animalEat=new Hen();       //注意這種生成實例的方法,此處代表母雞  
36         animalEat.eat();          //調用母雞的方法  
37         //System.out.println(animalEat.name);//不能訪問  
38     }  
39 }  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM