java之面向對象

動力節點學習筆記java

  
  
  
  
  1. //定義現實世界中的學生類型.  
  2. //Student是一個類,一種引用類型。  
  3. //概念上的一個定義,現實世界中不存在。  
  4.  
  5. public class Student{  
  6.       
  7.     //屬性  
  8.       
  9.     //學號  
  10.     int id; //成員變量,實例變量,非靜態變量  
  11.               //id是對象的級別的,必須先有對象才能訪問,不能使用類直接訪問。  
  12.       
  13.     //姓名  
  14.     String name;  
  15.       
  16.     //性別  
  17.     boolean sex;  
  18.       
  19.     //年齡  
  20.     int age;  
  21.       
  22.     //住址  
  23.     String addr;  
  24.       
  25.       
  26.     //方法  

 

  
  
  
  
  1. /*  
  2.     對象如何建立,又如何使用  
  3. */ 
  4. public class OOTest01{  
  5.       
  6.     public static void main(String[] args){  
  7.           
  8.         //1.建立對象.  
  9.         //stu1是一個局部變量.這個局部變量stu1是Student類型,也就是一個引用類型。  
  10.         //stu1該局部變量稱做引用,引用中保存的了對象在堆中的內存地址。  
  11.         //經過「引用」去間接訪問堆中的對象。  
  12.         Student stu1 = new Student();  
  13.           
  14.         //一個類能夠建立多個對象  
  15.         //Student stu2 = new Student();  
  16.           
  17.           
  18.         //2.使用對象  
  19.         //訪問成員變量,必須使用「引用.」  
  20.           
  21.         //name是成員變量,對象相關,必須先有對象才能訪問,必須使用「引用.」  
  22.         //System.out.println(Student.name); //Error  
  23.           
  24.         //讀取過程  
  25.         System.out.println("id=" + stu1.id); //0    
  26.         System.out.println("name=" + stu1.name); //null  
  27.         System.out.println("age=" + stu1.age); //0  
  28.         System.out.println("sex=" + stu1.sex); //false  
  29.         System.out.println("address=" + stu1.addr); //null  
  30.           
  31.         /*  
  32.             關於系統默認值:  
  33.                   
  34.                 基本數據類型  
  35.                   
  36.                     byte,short,int,long   0  
  37.                     float,double  0.0  
  38.                     boolean false  
  39.                     char    \u0000  
  40.                   
  41.                 引用數據類型:null  
  42.                   
  43.         */ 
  44.           
  45.         //賦值過程  
  46.         stu1.id = 100;  
  47.         stu1.name = "張三";  
  48.           
  49.         //stu1.age = -15;//雖然編譯運行經過,可是程序不符合現實的業務邏輯。  
  50.         stu1.age = 15;  
  51.           
  52.         stu1.sex = true;  
  53.         stu1.addr = "北京朝陽";  
  54.           
  55.           
  56.         //讀取過程  
  57.         System.out.println("id=" + stu1.id); //100   
  58.         System.out.println("name=" + stu1.name); //張三  
  59.         System.out.println("age=" + stu1.age); //15  
  60.         System.out.println("sex=" + (stu1.sex?"男":"女")); //true  
  61.         System.out.println("address=" + stu1.addr); //北京朝陽  
  62.                   
  63.     }  

 

  
  
  
  
  1.  
  2. //定義一個顧客類型  
  3. /*  
  4.     面向對象的封裝性指的是:  
  5.         1.屬性私有化  
  6.         2.對外提供公開的setter and getter  
  7.           
  8.         set方法和get方法的方法名應該遵循規範。  
  9. */ 
  10. public class Customer{  
  11.       
  12.     //屬性  
  13.     //成員變量,實例變量,非靜態變量  
  14.     private int age; //private修飾的數據只能在本類中訪問.  
  15.       
  16.       
  17.     //對外提供兩個公開的方法。  
  18.     //set  賦值  
  19.     public void setAge(int _age){  
  20.         //安全控制  
  21.         if(_age<0 || _age>100){  
  22.             System.out.println("年齡不合法");  
  23.             return;  
  24.         }  
  25.           
  26.         age = _age;  
  27.     }  
  28.       
  29.     //get  讀取  
  30.     public int getAge(){ //成員方法,實例方法,非靜態方法.  
  31.                                 //成員方法必須使用「引用.」的方式訪問.  
  32.         return age;  
  33.     }  
  34.       
  35.       

 

  
  
  
  
  1. /*  
  2.     面向對象的封裝性。  
  3. */ 
  4. public class OOTest02{  
  5.       
  6.     public static void main(String[] args){  
  7.           
  8.         //1.建立Customer類型的對象  
  9.         Customer c = new Customer();  
  10.           
  11.         /*  
  12.         //2.讀取(get)  
  13.         System.out.println(c.age); //0  
  14.           
  15.         //3.賦值(set)  
  16.         c.age = 10;  
  17.         //c.age = -10; //由於age屬性沒有任何限制,致使外部程序能夠隨意訪問age,致使age不安全。  
  18.                             //不合法的數據  
  19.           
  20.         //4.讀取  
  21.         System.out.println(c.age); //10  
  22.         */ 
  23.           
  24.         //賦值  
  25.         c.setAge(-10);  
  26.           
  27.         //讀取  
  28.         /*  
  29.         int age = c.getAge();  
  30.         System.out.println(age);  
  31.         */ 
  32.           
  33.         System.out.println(c.getAge()); //默認值 0  
  34.           
  35.     }  

 

  
  
  
  
  1. /*  
  2.     對象沒有更多的引用指向,則變成垃圾.  
  3. */ 
  4. public class OOTest03{  
  5.       
  6.     public static void main(String[] args){  
  7.           
  8.         //u1是引用,保存內存地址指向堆中的對象。  
  9.         User u1 = new User();  
  10.           
  11.         //程序執行到此處,u1再也不指向堆中的對象。  
  12.         //對象變成了垃圾。  
  13.         u1 = null;  
  14.           
  15.         //使用一個空的引用去訪問成員,會出現什麼問題?  
  16.         //System.out.println(u1.name); //java.lang.NullPointerException (空指針異常)  
  17.           
  18.           
  19.         Star s = new Star();  
  20.         s = null;  
  21.         s.sing(); //java.lang.NullPointerException  
  22.     }  
  23.       
  
  
  
  
  1. /*  
  2.     程序在執行過程當中,參數的傳遞問題:  
  3.         1.傳遞的數據是基本數據類型.  
  4.         2.傳遞的數據是引用數據類型.  
  5.       
  6.     如下程序傳遞基本數據類型  
  7. */ 
  8. public class OOTest04{  
  9.  
  10.     public static void m1(int i){  
  11.         i++;  
  12.         System.out.println("m1--->" + i); //11  
  13.     }  
  14.           
  15.     //入口  
  16.     public static void main(String[] args){  
  17.           
  18.         //局部變量  
  19.         int i = 10;  
  20.           
  21.         //調用  
  22.         m1(i);  
  23.           
  24.         System.out.println("main--->" + i); //10  
  25.     }  
  26.  
  27. }  

 

  
  
  
  
  1. /*  
  2.     程序在執行過程當中,參數的傳遞問題:  
  3.         1.傳遞的數據是基本數據類型.  
  4.         2.傳遞的數據是引用數據類型.  
  5.       
  6.     如下程序傳遞引用數據類型  
  7. */ 
  8. public class OOTest05{  
  9.  
  10.     public static void m1(Animal a){  
  11.         a.age++;  
  12.         System.out.println("m1--->" + a.age); //11  
  13.     }  
  14.           
  15.     //入口  
  16.     public static void main(String[] args){  
  17.           
  18.         //1.建立Animal對象  
  19.         Animal a = new Animal(10);  
  20.           
  21.         m1(a);  
  22.           
  23.         System.out.println("main--->" + a.age); //11  
  24.           
  25.     }  
  26.  
  27. }  
  28.  
  29. //動物  
  30. class Animal{  
  31.       
  32.     //Field  
  33.     int age;  
  34.       
  35.     //Constructor  
  36.     Animal(int _age){  
  37.         age = _age;  
  38.     }  
  39.       
  40. }  
相關文章
相關標籤/搜索