java 物件型別與基本資料型別傳參的比較

2021-08-09 10:15:50 字數 609 閱讀 4491

public class person  

//上面是乙個person類

//下面是乙個student類

public class student

public static void main(string args)

}問題來了:

在main方法中,我還沒呼叫swap方法,也就是沒有傳入乙個例項物件給swap方法中的p,為什麼

int temp = p.age;不會提示尚未初始化,畢竟引數person p也只是定義乙個person型別的變數而已;

同樣的,在swap中,p變數可以給person類中的屬性賦值;而main方法卻提示未初始化。

在main方法中,同樣的定義乙個person型別的變數per,同樣的操作卻提示per尚未初始化。

最佳答案

1為什麼int temp = p.age;不會提示尚未初始化

這句話不會報錯,因為p是做為引數型別傳入的,編譯器並不知道你到底有沒有初始化p,他會當作以建立物件處理。

而main方法卻提示未初始化

在main方法中你定義了乙個person per;但沒有進行初始化,就直接使用per裡的屬性是不可以的,因為變數沒有進行初始化是不能夠使用的。

Java 基本資料型別

基本資料型別 變數持有資料本身的值 引用型別 是某個物件的引用,而並非物件本身 引用型別用在物件上的 乙個物件可以被多個引用所指向,但同一時刻,每個引用只能指向唯一的物件 如果乙個物件被多個引用所指向,那麼無論哪個引用對物件的屬性進行修改,都會反映到其他的引用當中 型別 位數 位元組數 取值範圍 舉...

java 基本資料型別

一 基本資料型別 整型 byte short int long 在計算機中以二進位制補碼格式儲存 浮點型 float double 在計算機中以ieee754格式儲存 字元型 char 在計算機中以unicode碼格式儲存 布林型 boolean 只有true和false兩個值 二 1.長整型 lo...

Java基本資料型別

基本資料型別都是有取值範圍的,若超出範圍,則編譯報錯。位元組型的長度 1byte 位元組 8bit 位 即範圍為 128 127 如 byte b 200 或者 byte b 200,這都是錯誤的 字元型的長度 1char 16位 範圍為0 2 16 短整型的長度 1short 16位 範圍為 2 ...