本文目錄一覽:
- 1、Java類屬性初始化是什麼?
- 2、JAVA中 數據初始化的三種方法是什麼?
- 3、java中怎麼數組初始化?
- 4、java 對象的初始化方式有幾種
- 5、java靜態初始化器對什麼進行初始化
- 6、Java初始化的方法有幾種
Java類屬性初始化是什麼?
1.我們都知道java是面向對象的語言, 那麼類就好比是一個模板, 比如Student類, 這個類其實是一個模板, 是一個規範.
然後我們執行下面這行代碼
Student xiaoMing = new Student();
就相當於我們用Student這個模板去生成了一個對象, 這個對象叫xiaoMing.
如果Student這個類有一個屬性private int age;當我們只是做上面new對象的動作時候, xiaoMing的age並沒有被賦值, 只是初始化成了0
(數值類型的屬性初始化都是0, String則是null, 例如有個字符串類型的屬性name就會是null)
然後xiaoMing.setAge(10); 那麼這個時候xiaoMing的age屬性才變成10,
所以類屬性初始化指的就是在new對象的時候對各個屬性賦予一個初始化的值.
2.為什麼要用構造方法進行屬性初始化:
這個並不是強制的, 構造方法分成無參構造和帶參構造, 用構造方法對屬性進行初始化只是單純的為了方便而已.
JAVA中 數據初始化的三種方法是什麼?
public
class
staticinitialization
{
public
static
void
main(string[]
args)
{
system.out.println(“creating
new
cupboard()
in
main”);
new
cupboard();
system.out.println(“creating
new
cupboard()
in
main”);
new
cupboard();
t2.f2(1);
t3.f3(1);
}
static
table
t2
=
new
table();//1:標記位1
static
cupboard
t3
=
new
cupboard();//2
標記位2
}
//
/:~
/**
1:要執行main方法,必須先加載staticinitialization,加載過程中,發現有靜態變量t2,首先執行t2
=
new
table()
new
table()需要實例化table,必須先加載table類
加載table類的過程中,發現table類也有靜態變量,首先執行static
bowl
b1
=
new
bowl(1);過程和上面一樣,要去創建bow1
創建之前加載bow1類,加載完畢,調用bow1的構造方法,於是打印出“bowl(1)”
b1實例化(創建)完成
然後執行static
bowl
b2
=
new
bowl(2);
再次調用bow1構造方法,打印“bowl(2)”
這時候table類加載完畢,開始實例化t2變量,調用table類構造方法,打印“table()”
執行b2.f(1);
打印“f(1)”
2:道理和上面1一樣,只是在cupboard中,static變量初始化完畢之後,還要去初始化一個非static變量
最後執行main中的方法,注意的是,此時table,cupboard
這2個類的加載過程已經完成,之後創建這2個類的實例的過程中,不再去初始化static變量
有其他問題在hi我
*/
java中怎麼數組初始化?
//數組定義最方便的就是用for循環來做定義,數組下標是從0開始,到11的話就是12個數字。要輸出的話可以用以//號注釋掉的後面的一句if(i12){System.out.println(x[i]);}當然也可以自己再寫一個for循環語句來輸出,不過我覺得這有點畫蛇添足了
public class shuzu {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int x[]=new int[12];
for(int i=0;i=11;i++)
{
x[i]=i;
//if(i12){System.out.println(x[i]);}
}
}
}
.動態初始化:數組定義與為數組分配空間和賦值的操作分開進行;
2.靜態初始化:在定義數字的同時就為數組元素分配空間並賦值;
3.默認初始化:數組是引用類型,它的元素相當於類的成員變量,因此數組分配空間後,每個元素也被按照成員變量的規則被隱士初始化。
數組名加上下標可以表示數組元素。數組的第一個元素是下標為O的元素,例如points[0]。最後一個元素的下標為length一1,如points[points.1ength一1]。當創建一個數組時,每個元素都被初始化。如前面創建的字符數組s,它的每個值被初始化為O(\0000)。而數組points的每個值被初始化為null,表明它還沒指向真正的Point對象。
在賦值語句points[o]= New Point();後,系統創建一個真正的Point對象,並讓數組的第一個元素指向它。
注意:包括數組元素在內的所有變量的初始化.從系統安全角度看都是必不可少的任何變量都不能在沒有初始化狀態下使用。編譯器不能檢查數組元素的初始化情況。Java允許用初值來創建數組,如例:String names[]={”Georgianna”,“Tenn”,“Simon“,“Tom“};用4個字符串常量初始化names數組,這種方式稱為靜態初始化,它等價於:String names[];names=new String[4];names[0]=“Georgianna“;names[1]=“JEN”;names[2]=”Simon“;靜態初始化可用於任何元素類型,初值塊中每個位置的每個元素對應一個引用。
java 對象的初始化方式有幾種
1、構造器
創建對象時初始化,比較常見。
classA{
publicA()
{}
}
public
2、初始化塊
較少見,用於有特殊要求的類。
static {
}
3、方法
即Setter方法,雖然方便(不必在創建對象時一次性初始化),但是可能引發空指針異常。
java靜態初始化器對什麼進行初始化
java靜態初始化器對static進行初始化。
所謂的靜態和動態是相對於程序運行是而言的,靜態是在程序編譯時就初始化好了的,動態初始化是在程序運行是才動態分配內存空間。
static變量初始值一定要是常量。static變量中文名叫靜態變量。位置靜態局部變量被編譯器放在全局存儲區.data,所以它雖然是局部的,但是在程序的整個生命周期中存在。
作用:
對於靜態全局變量來說,針對某一源文件的以static聲明的文件級變量與函數的作用域只限於文件內(只在文件內可見),也即“內部連接”,因而可以用來限定變量的作用域。
對於靜態局部變量來說,在函數內以static聲明的變量雖然與自動局部變量的作用域相同(即作用域都只限於函數內)。
但存儲空間是以靜態分配而非默認的自動分配方式獲取的,因而存儲空間所在區域不同,且兩次調用間變量值始終保持一致;必須注意,靜態局部變量只能初始化一次,這是由編譯器來保證實現。
對於靜態成員變量來說,在C++中,在類的定義中以static聲明的成員變量屬於類變量,也即在所有類實例中共享,與之相對的就是過程變量。
Java初始化的方法有幾種
初始化常用的方法就是創建對象初始化:
類名 對象名 =new 類名();
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/190385.html