① java 為什麼service層 不要使用 this
this 是指的當前類 通常都會用 this.方法 來調用當前類的非靜態方法
當你使用this默認就會創建一個當前類的對象 所以最好不要隨便使用
service 一般是用來處理邏輯,實現介面的 一般也不會在 service 寫什麼工具方法 如果需要工具方法也是寫在 工具類裡面.
在編碼規范裡面 是 不讓使用的,當然如果只是練習什麼的 用不用都無所謂沒什麼 太大影響
② Java static方法里為什麼不能使用this關鍵字
java中的static是類區域,換句話說就是所有該類的所有實例共享的區域,而專this指的是當前的類實例索屬引。在類區域中是無法確定某個類實例的。
eg。
class A
{
private static Stirng Static = "123";
}
這個字元串Static所有A的實例都可以訪問到。
反過來,
class A
{
public static void fun()
{
this // 這里不能使用 因為 static區域內不能確定是某個特定的A的實例
}
}
③ java:在java中為什麼靜態變數沒有this引用
1、靜態變數是可以用this引用的,這個在Java語法上應該是沒有錯的。如果你的靜態變數不版能引用,可以看看是不是訪權問許可權的問題。如果是在類內部的方法中,是可以的。
2、由於靜態變數是屬於整個類的,所有類實例共享的。在虛擬機載入類的時候就已經分配了內存空間和初始值。所以,不建議用this變數去訪問,因為this是類的一個實例變數,用類名去訪問靜態變數更加直觀的表示出靜態變數是整個類的。
④ Java中,在構造方法里調用本類中的方法是不是可以省略this
在本類的任何地方調用本類的非靜態方法都可以省略this
但是一般大家不這么做,因為寫了顯得思路更清晰,大家看起來更好懂
⑤ java裡面的this.在什麼情況下可以省略吧,哪位大神可以幫我下啊!
沒有局部變數與this指向的變數重名時可以省略。
⑥ JAVA函數中加和不加this的區別
對於當前a()方法沒有影響,也沒有區別;
為什麼沒有區別?
因為a方法中沒有變數名為b、c、d的變數,這三個變數應該都是當前類中聲明的變數(或者父類中的),那麼在使用的時候加與不加關鍵字this,對結果沒有影響。
你可能會問,什麼時候有區別?也可能會問,什麼是父類中的?
請追問,我原本把問題答案寫好了,但是不知道為啥突然沒了
註:當方法中沒有聲明指定的變數(例如變數b),或者方法中沒有指定的變數參數(例如變數b)。那麼在方法中使用變數b(書寫:「b」),java語言便會默認成 「this.b」(前提是,類中聲明了變數b ,或者該類繼承到了變數b)。
⑦ java 父類普通方法中調用重寫方法,省略的this代表的是誰,希望提供完整說明
內存中怎麼執行 只有 寫 jvm 的才能說明百!
我只說下簡單的 流程, 首先, 你的 Zi 寫了繼承Fu, 所以 Fu 中的 代碼都會被繼承到 Zi 中。
然後 你的Zi 重寫了 Fu 中的doSome ,當java 代碼執行的時候 首先會搜索 自己 的類中有沒有,如果有 就執行自己的,如果沒有就到父類中去找,如果還沒有 就到父類的父類中去找。。。等。。。。
在 你上面的代碼中可以看到 明顯的 在 Zi 走就有 所以執行 show 之後 就列印了zi,雖然你的 show 是父類中的一個方法,你只要記住是從 自類向父類搜索就可以了。
你可能糾結為什麼是 zi 而不是 fu 還是之前說的,應為你是 重寫 ! 重寫和覆蓋是有區別的。
具體的可以看 http://www.xiaoyuno.org/article/99/
你的問題是 重寫和覆蓋的問題 和有么有 this 沒有半點關系,不信的話你寫上this 和不寫this 都執行以下就清楚明白了