一、this關鍵字 1.this在多數情況下都會省略 2.this不能用在含有static的方法之中。 3.static的方法的調用是不需要對象的,直接使用格式:類名.方法名;沒有當前對象,自然不能訪問當前對象的name。 4.在static方法之中不能直接訪問實例變數和實例方法,因為實例方法和實例 ...
一、this關鍵字
1.this在多數情況下都會省略
2.this不能用在含有static的方法之中。
3.static的方法的調用是不需要對象的,直接使用格式:類名.方法名;沒有當前對象,自然不能訪問當前對象的name。
package com.bjpowernode.java_learning; public class D41_ { String name2 = "fjajf"; public static void main(String[] args) { String name1 = "zhangsan"; Customer2 c1 = new Customer2(); c1.name = name1; Customer2.dosome(name1); c1.dosome2(); //System.out.println(name2);編譯報錯,下麵才是對的 D41_ d1 = new D41_(); System.out.println(d1.name2); } } class Customer2{ String name; public static void dosome(String name) { System.out.println(name);//一開始寫了this.name,導致編譯錯誤,這是因為這是個靜態方法,所以 //不能用this,this只可以用於對象調用的情況,也就是實例方法。 } public void dosome2() { System.out.println(this.name);//這種不帶static的方法才是對象的方法。 } }
4.在static方法之中不能直接訪問實例變數和實例方法,因為實例方法和實例變數都是需要對象存在才可以,而static的方法之中,是沒有this的,也就是說,當前對象是不存在的,自然也無法訪問當前對象的變數和實例方法。
package com.bjpowernode.java_learning; public class D41_this_keyword3 { public void do1() { System.out.println("youxiu"); } public void do2() { System.out.println("youxiu"); do1();//編譯成功,因為do2調用就必須創建了對象,因此do1這個實例方法肯定能調用 } }
三、源碼:
D41_this_keyword2.java
D41_this_keyword3.java
地址:
https://github.com/ruigege66/Java/blob/master/D41_this_keyword2.java
https://github.com/ruigege66/Java/blob/master/D41_this_keyword3.java
2.CSDN:https://blog.csdn.net/weixin_44630050(心悅君兮君不知-睿)
3.博客園:https://www.cnblogs.com/ruigege0000/
4.歡迎關註微信公眾號:傅里葉變換,個人公眾號,僅用於學習交流,後臺回覆”禮包“,獲取大數據學習資料