class 類名 { 類體; } // 一般狀況下, 當類名由多個單詞組成時, 要求每一個單詞首字母都要大寫
class 類名 { 數據類型 成員變量名 = 初始值; } // 當成員變量由多個單詞組成時,一般要求從第二個單詞起每一個單詞的首字母大寫
new 類名();
類名 引用變量名; 引用變量名.成員變量名;
Person p = new Person(); p.name = "烏冬面"; System.out.println(p.name);
對象建立後, 其成員變量能夠按照默認的方式初始化, 具體規則以下編程
成員變量的類型 | 默認初始值 |
---|---|
數值類型 byte, short ,int ,long, float, double, char | 0 |
boolean | false |
引用類型 | null |
class 類名{ 返回值類型 成員方法名(形參列表){ 成員方法體; } } // 當成員方法名由多個單詞組成時, 要求從第二個單詞起每一個單詞的首字母大寫
String s
便可)數據類型 形參變量名1, 數據類型 形參變量名2,...
.(好比, 當帶入的數據內容是66和"hello"時, 則形參列表寫int i, String s
便可)引用變量名.成員方法名(實參列表);
p.show();數組
返回值類型 方法名(參數的類型...參數名)
數據結構
int max(int ia, int ib){...} public static void main(String[] args){ int a = 5; int b = 6; int res = m.max(a,b); }
public class ArgumentTest{ // 自定義成員方法用於打印傳入的參數 public void show1(int ia){ ia = 333; // 爲形參變量賦值的語句a System.out.println("ia = " + ia); } public static void main(String[] args){ // 建立對象 ArgumentTest at = new Argument(); // 調用成員方法show1 int ib = 3; at.show1(ib); System.out.println("ib = " + ib); } } /* * 當成員方法show1()中只有打印語句,沒有其它賦值語句(語句a)時, 該程序打印結果爲: * ia = 3 /n ib = 3 * 當成員方法show1()中有打印語句,也有爲形參變量賦值的語句a時,該程序打印結果爲: * ia = 333 /n ib = 3 * 也就是實參變量ib的值沒有發生改變 */
public class ArgumentTest{ // 自定義成員方法, 用來打印傳入的參數(引用數據類型) pubic void show2(int[] arr){ arr[0] = 333; // 修改形參變量數值的語句b System.out.println("show2方法中 arr[0] = " + arr[0]); } public static void main(String[] args){ // 建立對象 ArgumentTest at = new ArgumentTest(); // 調用成員方法show2 int[] arr1 = new int{11,22}; at.show2(arr1); System.out.println("main方法中 arr1[0] = " + arr1[0]); } } /* * 當成員方法中只有打印語句,沒有修改形參變量數值的語句b時,程序運行的打印結果爲: * show2方法中 arr[0] = 11 /n main方法中 arr1[0] = 11 * 當成員方法中不僅有打印語句,還有修改形參變量數值的語句b時,程序運行的打印結果爲: * show2方法中 arr[0] = 333 /n main方法中 arr1[0] = 333 * 也就是實參變量的數值由於形參變量中數值的修改而修改(下面還有內容) * 緣由是: 對於引用數據變量, 堆區中存放變量的具體數值(在該例中即爲數組 {11,22}), 棧區中存放的是堆區的地址,也就是說存放的是指向具體數值的地址信息,而非實際的具體數值 * 因此在調用show2方法而且傳參時, 實際上傳的是數組的地址信息 * 那麼在show2方法體內對數組元素進行修改後, 實際上修改的就是實參變量所指向的同一個數組內元素的數值 * 再好比, 同窗a(實參)向同窗b(形參)要蘋果吃, 同窗b告訴a本身的蘋果放在書桌上,還有5顆,而後同窗b就走到書桌處拿蘋果. * 此時對於兩個同窗而言, 他們面對的是同一堆蘋果(堆區). 若是同窗b將一顆蘋果換成橘子,那麼對於同窗a來講,他所擁有的就是4顆蘋果+1顆橘子 */
public class ArgumentTest{ // 自定義成員方法實現打印參數的功能 public void show3(int[] arr1){ arr1 = new int[2]; //爲形參建立了新的數組c arr1[0] = 333; System.out.println("show2方法中 arr1[0] = " + arr1[0]); } public static void main(String[] args){ // 建立對象 ArgumentTest at = new ArgumentTest(); // 調用成員方法 int[] arr1 = new int{11,22}; at.show3(arr1); System.out.println("main方法中 arr1[0] = " + arr1[0]); } } /* * 程序運行的打印結果爲: * show2方法中 arr1[0] = 333 /n main方法中 arr1[0] = 11 * 此時形參中對數組元素的改變沒有影響到實參中本來的元素數值 * 這裏的緣由是 * 在show3方法體內, 爲形參在堆區申請了一塊新的內存空間,而下面語句的改變數值改變的也是這塊新的內存空間 * 而實參本來的數據就是沒有改變的 */
i=10
, 真實傳參時, 把10賦值給了形參. 當參數是對象是, 傳遞的是對象的值, 也就是把對象的<u>地址</u>賦值給形參08-29 看到有人收藏了,小開心😗編程語言