java private 对象_[Java笔记]类的所有构造器都是private权限,就一定没有办法实例化它的对象了么?...
筆者以前學過C++語言。眾所周知,C++也是一門面向對象程序設計語言。還記得當時在大學的時候,老師講過這樣的話:類的構造函數不應該設置成private權限,這樣的話還怎么去實例化類的對象?當時也信以為然。現在在學java,看《java編程思想》這本書的時候,一行代碼讓我眼前一亮。隨之,就知道老師說的話是錯的。也許很多人都會像筆者老師那樣去理解?,F在筆者就要告訴你,不是這樣的!
package lin;
import static java.lang.System.out;
public class Lin {
public static void main(String args[]) {
Test t = Test.function(10);
out.println(t.a);
}
}
class Test {
public int a = 10;
private Test(int a) {
this.a = a;
}
static Test function(int a) {
return new Test(a);
}
}
應該一目了然了吧?其實就是利用了靜態方法 “ function() ”?來間接創建一個該類的實例。因為靜態方法是屬于類的,不是屬于對象的。所以不需要創建類的實例就可以調用它。通過它,再創建一個類的實例,然后返回之。
其實C++這樣不是很方便,因為Java的變量其實是引用型的,就類似于C語言的指針。并且Java對象的創建只能是通過new運算符。C++一般情況下是通過局部棧來實例化對象的。而這樣的對象生存期是短暫的。return之后,自然而然就被操作系統給回收了。因此,C++只有通過new運算符來實例化對象才有意義。
這就是C++和java在此處的微妙差異。
總結
以上是生活随笔為你收集整理的java private 对象_[Java笔记]类的所有构造器都是private权限,就一定没有办法实例化它的对象了么?...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 类 request_java普
- 下一篇: java构造器详解_Java中关于构造器