java之this

動力節點學習筆記java

  
  
  
  
  1. /*  
  2.     this關鍵字:  
  3.           
  4.         1.this是什麼?  
  5.             this是一個引用類型,  
  6.             在堆中的每個java對象上都有this,  
  7.             this保存內存地址指向自身。  
  8.           
  9.         2.this能用在哪些地方?  
  10.             第一:this能夠用在成員方法中.  
  11.               
  12.             第二:this能夠用在構造方法中.  
  13.                 語法:this(實參);  
  14.                 經過一個構造方法去調用另外一個構造方法。  
  15.                 目的:代碼重用。  
  16.                 this(實參);必須出如今構造方法的第一行。  
  17.           
  18. */ 
  19. public class ThisTest01{  
  20.       
  21.     public static void main(String[] args){  
  22.           
  23.         /*  
  24.         //建立對象  
  25.         MyDate t1 = new MyDate(2008,8,8);  
  26.           
  27.         System.out.println(t1.year+"年"+t1.month+"月"+t1.day+"日");  
  28.           
  29.         //建立對象  
  30.         MyDate t2 = new MyDate(2012,12,20);  
  31.           
  32.         System.out.println(t2.year+"年"+t2.month+"月"+t2.day+"日");  
  33.         */ 
  34.           
  35.         MyDate t3 = new MyDate();  
  36.           
  37.         System.out.println(t3.year+"年"+t3.month+"月"+t3.day+"日");  
  38.           
  39.     }  
  40.       
  41. }  
  42.  
  43. //日期  
  44. class MyDate{  
  45.       
  46.     //Field  
  47.     int year;  
  48.     int month;  
  49.     int day;  
  50.       
  51.     //Constructor  
  52.     //需求:在建立日期對象的時候,默認的日期是:1970-1-1  
  53.     MyDate(){  
  54.         this(1970,1,1);  
  55.         /*  
  56.         this.year = 1970;  
  57.         this.month = 1;  
  58.         this.day = 1;  
  59.         */ 
  60.     }  
  61.       
  62.     MyDate(int _year,int _month,int _day){  
  63.         year = _year;  
  64.         month = _month;  
  65.         day = _day;  
  66.     }  
  67.       
  68.       

 

  
  
  
  
  1. /*  
  2.     this能夠用來區分紅員變量和局部變量  
  3. */ 
  4. public class ThisTest03{  
  5.       
  6.     public static void main(String[] args){  
  7.           
  8.         Manager m1 = new Manager("KING");  
  9.           
  10.         Manager m2 = new Manager();  
  11.         m2.setName("FORD");  
  12.           
  13.         System.out.println(m1.getName()); //KING  
  14.         System.out.println(m2.getName()); //FORD  
  15.     }  
  16.       
  17. }  
  18.  
  19. class Manager{  
  20.       
  21.     //Field  
  22.     private String name;  
  23.       
  24.     //Constructor  
  25.     Manager(){}  
  26.       
  27.     Manager(String name){  
  28.         this.name = name;  
  29.     }  
  30.       
  31.     //Method  
  32.     //成員方法  
  33.     public void setName(String name){  
  34.         this.name = name;  
  35.     }  
  36.       
  37.     //成員方法  
  38.     public String getName(){  
  39.         //return name;  
  40.         return this.name;  
  41.     }  
  42.       
  43. }  

 

  
  
  
  
  1. /*  
  2.     this不能用在靜態方法中.  
  3.         靜態方法的執行根本不須要java對象的存在。直接使用  類名.  的方式訪問。  
  4.         而this表明的是當前對象。因此靜態方法中根本沒有this  
  5. */ 
  6. public class ThisTest04{  
  7.  
  8.     String str;  
  9.  
  10.     //入口  
  11.     public static void main(String[] args){  
  12.           
  13.         Person.m1();  
  14.           
  15.         //str是一個成員變量,必須由  引用.   訪問  
  16.         //System.out.println(str);  
  17.           
  18.           
  19.         ThisTest04 tt = new ThisTest04();  
  20.         System.out.println(tt.str); //null  
  21.           
  22.     }  
  23.       
  24. }  
  25.  
  26.  
  27. class Person{  
  28.       
  29.     //Field  
  30.     String name;  
  31.       
  32.     //Constructor  
  33.     Person(){}  
  34.       
  35.     Person(String name){  
  36.         this.name = name;  
  37.     }  
  38.       
  39.     //靜態方法  
  40.     public static void m1(){  
  41.           
  42.         //System.out.println(this.name);  
  43.           
  44.         //若是要想訪問name只能:  
  45.         Person p1 = new Person("劉德華");  
  46.         System.out.println(p1.name);  
  47.     }  
  48.       
  49. }  

 

  
  
  
  
  1. /*
  2. this能用在成員方法中。
  3. this就是當前對象.
  4. */
  5. public class ThisTest02{
  6. public static void main(String[] args){
  7. //建立對象
  8. Employee e = new Employee(7369,"SMITH");
  9. //工做
  10. e.work();
  11. //建立對象
  12. Employee e1 = new Employee(7370,"FORD");
  13. //工做
  14. e1.work();
  15. e.m1();
  16. }
  17. }
  18. class Employee{
  19. //員工編號
  20. int empno;
  21. //員工名
  22. String ename;
  23. //Constructor
  24. Employee(){}
  25. Employee(int _empno,String _ename){
  26. empno = _empno;
  27. ename = _ename;
  28. }
  29. //提供一個員工工做的方法.
  30. //this用在成員方法中,誰去調用這個成員方法,this就表明誰。
  31. //this指的就是當前對象。
  32. public void work(){
  33. System.out.println(this.ename + "在工做");
  34. //System.out.println(ename + "在工做"); //this. 能夠省略
  35. }
  36. //成員方法
  37. public void m1(){
  38. this.m2();
  39. m2();
  40. }
  41. //成員方法
  42. public void m2(){
  43. System.out.println("TESTING");
  44. }
  45. }
相關文章
相關標籤/搜索