如何創建對象
『壹』 java對象是怎麼創建出來的
1.使用new關鍵字
這是最常見也是最簡單的創建對象的方式了。通過這種方式,我們可以調用任意的構造函數(無參的和帶參數的)。
Employee emp1 = new Employee();0: new #19 // class org/programming/mitra/exercises/Employee3: p4: invokespecial #21 // Method org/programming/mitra/exercises/Employee."":()V
2.使用Class類的newInstance方法
我們也可以使用Class類的newInstance方法創建對象。這個newInstance方法調用無參的構造函數創建對象。
我們可以通過下面方式調用newInstance方法創建對象:
Employee emp2 = (Employee) Class.forName("org.programming.mitra.exercises.Employee").newInstance();
或者
Employee emp2 = Employee.class.newInstance();51: invokevirtual #70 // Method java/lang/Class.newInstance:()Ljava/lang/Object;
『貳』 JAVA:怎樣創建對象
第一句,創建對象並返回這個對象在內存中的地址給xx 則xx可以理解為程序中這個對象的代言(引用),因為xx的指向的是這個對象
返回!!返回實際就是一個賦值運算,就是『=』號 等號右邊才是創建對象的語句 如果你不需要再次使用這個對象 僅僅是創建就OK了,那就用第二種的句子 new一個就完了
『叄』 怎樣用new創建一個對象
先要定義這個對象的實體類 就是你得先寫個.java文件 裡面是個類
例如
public class A {
public A(){}//這是無參構造
}
然後你在主類裡面就可以調用它了
A a=new A();
這樣就用new創建了一個類A的實體對象
『肆』 java的對象是如何創建的
class China {
private static China china = null;
//私有構造方法,不允許外部new
private China {
}
public China GetChina(){
if(china == null)
china = new China();
return china;
}
}
//傳說中的單例模式
『伍』 1如何聲明一個類如何創建類的對象
當你創建一個類時,你創建了一種新的數據類型。你可以使用這種類型來聲明該種類型的對象。然而,要獲得一個類的對象需要兩步。第一步,你必須聲明該類類型的一個變數,這個變數沒有定義一個對象。實際上,它只是一個能夠引用對象的簡單變數。第二步,該聲明要創建一個對象的實際的物理拷貝,並把對於該對象的引用賦給該變數。這是通過使用new 運算符實現的。new運算符為對象動態分配(即在運行時分配)內存空間,並返回對它的一個引用。這個引用或多或少的是new分配給對象的內存地址。然後這個引用被存儲在該變數中。這樣,在Java 中,所有的類對象都必須動態分配。讓我們詳細看一下該過程。
在前面的例子中,用下面的語句來聲明一個Box類型的對象:
Box mybox = new Box();
本例將上面講到的兩步組合到了一起,可以將該語句改寫為下面的形式,以便將每一步講的更清楚:
Box mybox; // declare reference to object(聲明一個類)
mybox = new Box(); // allocate a Box object (聲明一個對象)
第一行聲明了mybox ,把它作為對於Box類型的對象的引用。當本句執行後,mybox 包含的值為null ,表示它沒有引用對象。這時任何引用mybox 的嘗試都將導致一個編譯錯誤。第二行創建了一個實際的對象,並把對於它的引用賦給mybox 。現在,你可以把mybox 作為Box的對象來使用。但實際上,mybox 僅僅保存實際的Box 對象的內存地址。這兩行語句的效果如圖6-1 所示。
圖6-1 聲明Box 類型的對象
注意:那些熟悉C/C++ 語言的讀者,可能已經注意到了對象的引用看起來和指針類似。這種懷疑實質上是正確的。一個對象引用和內存指針類似。主要的差別(也就是Java安全的關鍵)是你不能像實際的指針那樣來操作它。這樣,對於對象引用,你就不能像指針那樣任意分配內存地址,或像整數一樣操作它。
6.2.1 深入研究new 運算符
剛才已經解釋過,new運算符動態地為一個對象分配地址。它的通用格式如下:
class-var = new classname( );
其中,class-var 是所創建類類型的變數。classname 是被實例化的類的名字。類的後面跟的圓括弧指定了類的構造函數。構造函數定義當創建一個類的對象時將發生什麼。構造函數是所有類的重要組成部分,並有許多重要的屬性。大多數類在他們自己的內部顯式地定義構造函數。如果一個類沒有顯式的定義它自己的構造函數,那麼Java 將自動地提供一個默認的構造函數。對類Box 的定義就是這種情況。現在,我們將使用默認的構造函數。不久,你將看到如何定義自己的構造函數。
這時,你可能想知道為什麼對整數或字元這樣的簡單變數不使用new 運算符。答案是Java 的簡單類型不是作為對象實現的。出於效率的考慮,它們是作為「常規」變數實現的。你將看到,對象有許多特性和屬性,使Java 對對象的處理不同於簡單類型。由於對處理對象和處理簡單類型的開銷不同,Java 能更高效地實現簡單類型。後面,你將看見,對於那些需要完全對象類型的情況下,簡單類型的對象版本也是可用的。
理解new運算符是在運行期間為對象分配內存的是很重要的。這樣做的好處是你的程序在運行期間可以創建它所需要的內存。但是,內存是有限的,因此new有可能由於內存不足而無法給一個對象分配內存。如果出現這種情況,就會發生運行時異常(你將在第10 章學習如何處理這種異常以及其他異常情況)。對於本書中的示常式序,你不必擔心內存不足的情況,但是在實際的編程中你必須考慮這種可能性。
讓我們再次復習類和對象之間的區別。類創建一種新的數據類型,該種類型能被用來創建對象。也就是,類創建了一個邏輯的框架,該框架定義了它的成員之間的關系。當你聲明類的對象時,你正在創造該類的實例。因此,類是一個邏輯構造,對象有物理的真實性(也就是對象佔用內存空間)。弄清楚這個區別是很重要的。
『陸』 java如何創建對象
JAVA創建對象的四種方式:
有4種顯式地創建對象的方式:
1.用new語句創建對象,這是最常用的創建對象的方式。最常用 比如
Scanner scanner = new Scanner(System.in)
2.運用反射手段,Java.lang.Class或者java.lang.reflect.Constructor類的newInstance()實例方法。
3.調用對象的clone()方法。
4.運用反序列化手段
『柒』 C++中怎麼創建類對象
1、首先,我們需要先寫好類的定義,類的定義一般放在頭文件中。在此需要注意的是,類名的首字母必須要大寫。比如示例中的這個蘋果類,其第一個字母必須是大寫的 A,而不能是小寫 a。
『捌』 JavaScript如何創建對象
JavaScript創建對象的幾種方式
潛意識里,JavaScript不能算是面向對象的語言,要算也只能說是趨向面向對象的一種語言,至少它不能很好的吻合面向對象最基本的三大特性(繼承、封裝、多態),當然有很多人就認為JavaScript是面向對象語言,好像也說得沒錯,因為面向對象也能在JavaScript中實現,比如說繼承、封裝吧也都可以在JavaScript中實現,但是實現方便嗎?所以我覺得很疑惑。看到網上有一網友評價的很好,"面向對象只是一種思想,語言只能說是否很好的支持面向對象的特性。"如果對面向對象有一定的認識,用C也能寫出面向對象的程序,javascript也是如此。所以說不能斷言說JavaScript是面向對象語言, 呵呵,自認為是菜鳥,不敢妄自斷言,還是看看代碼:
1. 利用json創建對象
var company = {};
company.name= '華為';
company.address = '北京';
company.proce = function(message)
{
alert(message);
}
2.使用JavaScript中的Object類型
company= new Object();
company.name= '淘寶';
company.address = '杭州';
company.proce= function(message)
{
alert(message);
}
3.通過創建函數來生成對象
company = function()
{
this.name = '新浪';
this.address = '北京';
this.proce = function(message)
{
alert(message);
}
}
4.利用瀏覽器window對象
window.name = '騰訊';
window.address = '北京';
window.proce = function(message)
{
alert(message);
}
擴展:
1.對象復制
emptyObject = new Object();
company.apply = function(o, c,)
{
if(o && c && typeof c == 'object')
{
for(var p in c)
{
o[p] = c[p];
}
}
return o;
};
emptyObject = Ext.apply(emptyObject,company);
2.對象復制(函數方式)
var OO = new Function();
OO.prototype = company;
var newOO = new OO();
『玖』 如何創建內部類的對象 java
public class InnerClass {
class A{
A(){
System.out.println("A class");
}
A getInstance() {
System.out.println("return a new A");
return new A();
}
}
public static void main(String[] args)
{
System.out.println("closing class ");
InnerClass innerClass=new InnerClass();
InnerClass.A a=innerClass.new A();
a=a.getInstance();
//如果上面沒有創建外部類對象,那麼就不能這樣
//A a =new A();這是因為在沒有創建外部類對象的時候,不能創建內部類對象(這個情況除了嵌套類之外),構建內部類的對象時,需要指向一個外部類對象的引用。
}
}