Java第三課 堆疊

2021-08-21 06:50:18 字數 2031 閱讀 3363

1. 堆與棧

//物件生存空間堆——堆

//方法呼叫及變數的生存空間——棧;呼叫某一方法時,該方法會被放在呼叫棧的棧頂

duck d =new duck(24)//物件引用變數d在棧上,物件duck始終在堆上

//例項變數——宣告在類中方法之外的地方——堆上,存在於物件所屬的堆空間上

//區域性變數——宣告在方法或方法的引數上——棧上,隨方法消失

//物件引用變數——在初始化物件時——棧上

2. 建構函式

public duck()//構造方法沒有返回型別,且與類名相同

//在new時會呼叫建構函式

//建構函式不能被繼承

//建構函式可以是公有、私有或不指定

//在建立新物件時,所有繼承下來的建構函式都會被執行

//呼叫父類建構函式的唯一方法是呼叫super()

3.例項變數賦值初始化相關問題

3.1 一般通過建構函式對例項變數賦值

public duck()
3.2 但是無法被使用duck的程式設計師來決定大小,因此可以使用setsize()來設定大小

public class duck

public void setsize(int newsize)

size =newsize;

}}public class useaduck

}

3.3 如果某類物件不應該在狀態初始化之前就使用,就別讓任何人能夠在沒有初始化的情況下取得該物件,如果使用者構造出duck物件,但是忘記執行setsize(),因此需要將初始化的程式**寫到建構函式中,同時要設定多個建構函式,以應對不同的情況,如引數型別,或者沒有引數等。(注:如果已經寫了帶引數的建構函式,則必須寫乙個不帶引數的,因為編譯器不再執行預設構造引數)——建構函式過載

public class duck

}public class useaduck

4. 呼叫父類建構函式

不能直接呼叫父類的建構函式,要通過super()方法進行呼叫;

父類的建構函式必須要在子類的建構函式之前結束

super呼叫必須是建構函式第乙個命令

public class duck extends animal

}

5. 有引數的建構函式

通過get方法和super方法獲得

public abstract class animal

public animal(string thename)

} public class hippo extends animal

} public class makehippo

}

6. 從某個構造函式呼叫過載版的建構函式

使用this()進行呼叫

class mini extends car

public mini(corlor c)

public mini(int size)

}

7. 三種方法釋放引用

①引用永久性的離開它的範圍 void go()//z在方法結束時消失

②引用被複製到其他物件上 life  z=new life();z =new life();//第乙個物件會在z賦值到別處時消失

③直接將引用設定為null。life  z=new life();z=null;//第乙個物件會在z賦為null時消失

python第三課答案 python第三課

字串操作 s alexwusir s1 s.capitalize 首字母大寫 print s1 全大寫,全小寫 s2 s.upper s21 s.lower print s2,s21 大小寫翻轉 s3 s.swapcase print s3 每個隔開 特殊字元或數字 的單詞首字母大寫 s alex ...

python第三課答案 python第三課筆記

以下哪個變數的命名不正確?為什麼?a mm 520 b mm520 c 520 mm d 520 mm 答 c不正確,不能數字開頭 在不上機的情況下,以下 你能猜到螢幕會列印什麼內容嗎?myteacher 小甲魚 yourteacher myteacher yourteacher 黑夜 print ...

python第三課答案 python第三課

1.迴圈物件,主要呼叫next 2.迭代器iterator 在理解上可以和迴圈物件理解為乙個東西。3.生成器 generator 自定義的迴圈物件。4.表推導 list comprehension 是快速生成表的方法。表推導用中括號。l x 2 for x in range 10 練習 f open...