動力節點學習筆記java
- /*
- this關鍵字:
- 1.this是什麼?
- this是一個引用類型,
- 在堆中的每個java對象上都有this,
- this保存內存地址指向自身。
- 2.this能用在哪些地方?
- 第一:this能夠用在成員方法中.
- 第二:this能夠用在構造方法中.
- 語法:this(實參);
- 經過一個構造方法去調用另外一個構造方法。
- 目的:代碼重用。
- this(實參);必須出如今構造方法的第一行。
- */
- public class ThisTest01{
- public static void main(String[] args){
- /*
- //建立對象
- MyDate t1 = new MyDate(2008,8,8);
- System.out.println(t1.year+"年"+t1.month+"月"+t1.day+"日");
- //建立對象
- MyDate t2 = new MyDate(2012,12,20);
- System.out.println(t2.year+"年"+t2.month+"月"+t2.day+"日");
- */
- MyDate t3 = new MyDate();
- System.out.println(t3.year+"年"+t3.month+"月"+t3.day+"日");
- }
- }
- //日期
- class MyDate{
- //Field
- int year;
- int month;
- int day;
- //Constructor
- //需求:在建立日期對象的時候,默認的日期是:1970-1-1
- MyDate(){
- this(1970,1,1);
- /*
- this.year = 1970;
- this.month = 1;
- this.day = 1;
- */
- }
- MyDate(int _year,int _month,int _day){
- year = _year;
- month = _month;
- day = _day;
- }
- }
- /*
- this能夠用來區分紅員變量和局部變量
- */
- public class ThisTest03{
- public static void main(String[] args){
- Manager m1 = new Manager("KING");
- Manager m2 = new Manager();
- m2.setName("FORD");
- System.out.println(m1.getName()); //KING
- System.out.println(m2.getName()); //FORD
- }
- }
- class Manager{
- //Field
- private String name;
- //Constructor
- Manager(){}
- Manager(String name){
- this.name = name;
- }
- //Method
- //成員方法
- public void setName(String name){
- this.name = name;
- }
- //成員方法
- public String getName(){
- //return name;
- return this.name;
- }
- }
- /*
- this不能用在靜態方法中.
- 靜態方法的執行根本不須要java對象的存在。直接使用 類名. 的方式訪問。
- 而this表明的是當前對象。因此靜態方法中根本沒有this
- */
- public class ThisTest04{
- String str;
- //入口
- public static void main(String[] args){
- Person.m1();
- //str是一個成員變量,必須由 引用. 訪問
- //System.out.println(str);
- ThisTest04 tt = new ThisTest04();
- System.out.println(tt.str); //null
- }
- }
- class Person{
- //Field
- String name;
- //Constructor
- Person(){}
- Person(String name){
- this.name = name;
- }
- //靜態方法
- public static void m1(){
- //System.out.println(this.name);
- //若是要想訪問name只能:
- Person p1 = new Person("劉德華");
- System.out.println(p1.name);
- }
- }
- /*
- this能用在成員方法中。
- this就是當前對象.
- */
- public class ThisTest02{
- public static void main(String[] args){
- //建立對象
- Employee e = new Employee(7369,"SMITH");
- //工做
- e.work();
- //建立對象
- Employee e1 = new Employee(7370,"FORD");
- //工做
- e1.work();
- e.m1();
- }
- }
- class Employee{
- //員工編號
- int empno;
- //員工名
- String ename;
- //Constructor
- Employee(){}
- Employee(int _empno,String _ename){
- empno = _empno;
- ename = _ename;
- }
- //提供一個員工工做的方法.
- //this用在成員方法中,誰去調用這個成員方法,this就表明誰。
- //this指的就是當前對象。
- public void work(){
- System.out.println(this.ename + "在工做");
- //System.out.println(ename + "在工做"); //this. 能夠省略
- }
- //成員方法
- public void m1(){
- this.m2();
- m2();
- }
- //成員方法
- public void m2(){
- System.out.println("TESTING");
- }
- }