class Test{ private static int i = 1; public static void main(String[] args){ Test test = new Test(); System.out.println(test.i); //此处为何能访问到私有的i变量呢? } }
如果与Test类不同包,调用i变量却报错,为何?
拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...
理論上,存取修飾符並非完全必要,不會影響程式邏輯。這個只是編譯階段為了幫助程式設計師寫出更安全的程式碼。 我理解題主的疑惑,題主覺得這裡使用this.i較為妥當(當然,去掉那個蹩腳的static關鍵字吧),這個觀點可能還真會使一些人走火入魔。 this.i较为妥当(当然,去掉那个蹩脚的static关键字吧),这个观点可能还真会使一些人走火入魔。记住:这些访问修饰符与执行上下文无关,比如private記住:這些存取修飾符與執行上下文無關,例如private只會在編譯時檢查你存取這個變數的程式碼是不是在目前類別裡面所寫,就這麼簡單粗暴。
this.i
static
private
理論上,存取修飾符並非完全必要,不會影響程式邏輯。這個只是編譯階段為了幫助程式設計師寫出更安全的程式碼。
我理解題主的疑惑,題主覺得這裡使用
this.i
較為妥當(當然,去掉那個蹩腳的static
關鍵字吧),這個觀點可能還真會使一些人走火入魔。this.i
较为妥当(当然,去掉那个蹩脚的static
关键字吧),这个观点可能还真会使一些人走火入魔。记住:这些访问修饰符与执行上下文无关,比如
private
記住:這些存取修飾符與執行上下文無關,例如private
只會在編譯時檢查你存取這個變數的程式碼是不是在目前類別裡面所寫,就這麼簡單粗暴。