Ⅰ java中構造函數也能私人化用PRIVATE開頭為什麼還有構造函數私人化後怎麼NEW實例
首先,一般不會這么定義。一般情況構造函數都是public的,但是,下面這種情況的private構造函數也是可以被調用的:
public class
{
private static String ID= 1; //靜態保存一個序列號(由1開始)
private int age;
private String name;
private class(String aname,int aage) //私有構造器,無法通過外部建構
{ //如 class a = new class("XXX",18); 無法構建
this.name = aname;
this.age = aage;
}
public class(age) //外部構造器,可以構建 class a = new class(18);
{
this("Employee #" + ID ,age); //外部構造器內部調用另一內部構造器
ID++;
}
}
上面這個例子比較典型了,我舉這個例子只是說,內部構造器可以被調用,並不是說這樣做效率最高或有什麼特殊含義,真正好不好用還要在實際中摸索。
上述例子適用於「構建後,名稱需要統一為Employee #X 的情況。若沒有這樣的規定,個人認為private class(String aname, int aage) 還是定義為public比較靈活。
至於this重載構造函數的方法,請你另行查閱。( this("Employee #" + ID ,age); )
Ⅱ JAVA中把類的構造函數設為私有的好處是
這就是單例模式啊 看需求 如果整個應用對於某個類只需要1個實例,或者只能是同一個實例的話,就應該設成單例。在WEB應用方面,如果是無狀態的(即無需記錄用戶狀態的類)就可以設計為單例。
設計模式不存在好處和壞處,只是更適合用在哪裡。
Ⅲ JAVA中把類的構造函數設為私有的好處是
類的構造方法一般為public,
若為private,那就是該類的對象也是私有的,只有該類才能構造對象,外部不能創建該類的對象
Ⅳ JAVA中構造方法私有化的作用是什麼
構造方法是私有的,則意味著無法從除自身之外的任何類訪問它。這是Java提供的訪問控制機制。
使用得當,它可以產生安全性和功能性。構造函數(如常規方法)也可以聲明為私有。可能想知道為什麼需要一個私有構造函數,因為它只能從它自己的類訪問。
(4)java私有構造函數擴展閱讀:
工作原理
由四方面組成:
1,Java編程語言。
2,Java類文件格式。
3,Java虛擬機。
4,Java應用程序介面。
當編輯並運行一個Java程序時,需要同時涉及到這四種方面。使用文字編輯軟體(例如記事本、寫字板、UltraEdit等)或集成開發環境(Eclipse、MyEclipse等)在Java源文件中定義不同的類。
通過調用類(這些類實現了Java API)中的方法來訪問資源系統,把源文件編譯生成一種二進制中間碼,存儲在class文件中,然後再通過運行與操作系統平台環境相對應的Java虛擬機來運行class文件,執行編譯產生的位元組碼,調用class文件中實現的方法來滿足程序的Java API調用。
Ⅳ java中構造函數的特點
1.構造函數的命名必須和類名完全相同;在java中普通函數可以和構造函數同名,但是必須帶有返回值。
2.構造函數的功能主要用於在類的對象創建時定義初始化的狀態。它沒有返回值,也不能用void來修飾。這就保證了它不僅什麼也不用自動返回,而且根本不能有任何選擇。而其他方法都有返回值,即使是void返回值。盡管方法體本身不會自動返回什麼,但仍然可以讓它返回一些東西,而這些東西可能是不安全的。
3.構造函數不能被直接調用,必須通過new運算符在創建對象時才會自動調用;而一般的方法是在程序執行到它的時候被調用的。
4.當定義一個類的時候,通常情況下都會顯示該類的構造函數,並在函數中指定初始化的工作也可省略,不過Java編譯器會提供一個默認的構造函數.此默認構造函數是不帶參數的。而一般的方法不存在這一特點。
5.當一個類只定義了私有的構造函數,將無法通過new關鍵字來創建其對象,當一個類沒有定義任何構造函數,C#編譯器會為其自動生成一個默認的無參的構造函數。
Ⅵ java,構造方法是私有方法嗎,可以被子類覆蓋嗎
可以被私有化。用的比較多的是單例模式中, 你可以去網上搜索一下單例模式
構造函數特點:
構造函數的名字必須和類名完全相同,構造函數不能有
返回值,就是void 也不要寫,構造函數不可以被子類繼承
構造函數可以重載但是不可以被子類覆蓋。
Ⅶ 可以在java構造函數是私有的嗎
因為Person類的構造方法是私有的,所以我們不能直接利用其構造方法去實例化一個對象,但這個類提供了一個公有靜態方法getP,該方法的返回值就是一個Person類對象的引用,該引用就是靜態成員p,我們也只能通過這個方法去得到一個Person類的實例,23行與24行當然是同一個引用了,只不過前一行是聲明,後一行是給這個引用變數賦了值而已
Ⅷ java語言中,構造函數的作用是什麼
Java類至少包含一個構造器,如果沒有定義,那麼系統會為這個類提供一個無參構造器。
構造函數是在創建給定類型的對象時執行的類方法,它通常用於初始化數據成員
如果該類中定義了一個私有的構造函數,那麼這個類就不能被new
Ⅸ 為什麼在java中單例設計模式要私有化該類構造函數
私有化構造函數時單例模式的實現方式。也就是不擁有調用者自己去構造這個類。如果允許了 隨時可以通過構造函數去構造一個此類的對象。也就不是單例設計了。
Ⅹ JAVA中構造方法私有化的作用是什麼
將一個類的構造函數私有化,可以使得該類不被實例化,和不能被繼承。要創建這個類的實例,唯一的辦法是提供一個公共靜態方法。這種方式被稱為單例模式。
私有化代碼示例如下:
package test;
class Some{
private Some(){}
public static void dosome(){
System.out.println("dnali");
}
}
public class Singeleton {
public static void main(String[] args) {
//Some s=new Soem();無法實例化Some的對象
Some.dosome();
}
}
(10)java私有構造函數擴展閱讀:
java 構造函數的執行過程
類初始化時構造函數調用順序:
(1)、初始化對象的存儲空間為零或null值;
(2)、調用父類構造函數;
(3)、按順序分別調用類成員變數和實例成員變數的初始化表達式;