類 物件 抽象類 介面 面向介面程式設計
分類概念:是整體概念 物以類聚 是抽象的
每個個體:分類中的每乙個個體,起個名稱,就是物件,也叫例項。 具體的
1.描述乙個類
類名 有參建構函式:
建立物件的同時為物件屬性賦值,靠形參列表與無參建構函式區分---->方法過載
person(boolean s) {
*** = s;
public class test {
public static void main() {
person p1 = new person();
person p2;
p2 = new person(true);
形式引數:方法定義時的引數(形參)---相當於區域性變數---棧
實際引數:方法呼叫時的引數(實參)
呼叫建構函式,記憶體變換:
1.堆建立物件,屬性值,預設值
棧 儲存了形參s
2.因為方法呼叫時涉及了形參、實參
方法呼叫的同時,伴隨著「實參」向「形參」的「值」傳遞
記憶體解析:
實參:常量值true 形參:變數s (s = true)
3.執行方法體:
***= s; 把變數s儲存的「值」賦給了變數*** (就近原則)
4.方法執行完:方法中的區域性變數或者形參作用域結束-->記憶體釋放
回到方法呼叫的地方繼續執行
把建立物件的引用儲存到變數p2中
----建立物件的同時,為物件屬性賦值
public class birthdate {
//三個成員變數
private int day;
private int month;
private int year;
//乙個建構函式
public birthdate(int d ,int m ,int y) {
day = d;
month = m;
year = y;
//3對get set例項方法
public int getday() {
return day;
public void setday(int d) {
//方法內部沒有找到day的定義
//從內往外,一層層找
//day 出現在setday的內部,所以day就應該屬於setday()方法
//setday又是b.setday呼叫的
//所以day變數就是屬於呼叫setday方法的物件----b!!!
day = d;
public int getmonth() {
return month;
public void setmonth(int m) {
month = m;
public int getyear() {
return year;
public int setyear(int y) {
year = y;
//例項方法
public void display() {
system.out.println(day + "." + month + "," + year);
public class test {
public void change1(int i) {
i = 1234;
public void change2(birthdate b) {
b = new birthdate(22,2,2004);
public void change3(birthdate b) {
b.setday(22);
public static void main(string args) {
test test = new test();
int date = 9;
birthdate d1 = new birthdate(7,7,1970);
birthdate d2 = new birthdate(1,1,2000);
test.change1(date);
// 實參向形參的值傳遞
// 實參d1的值是什麼呢?是(7,7,1970)物件的引用
test.change2(d1);
test.chang3(d2);
system.out.println("date = " + date); --> 9
d1.display(); //7,7,1970
4.過載
public person {
int id ;
boolean ***;
public person() {
public person(int i) {
id = i;
public person(boolean s) {
*** = s;
public person(int i;boolean s) {
id = i;
*** = s;
需求*****>>>可以有如上不同的建構函式的定義
理論抽取:(方法定義:返回值 方法名 形參 方法體)
如果存在一組方法,滿足下面的條件:
1.方法名稱 相同
2.形參列表 不同(形參個數不同、型別不同、順序不同 )
3.方法體 不要求
4.返回值型別不要求 返回值型別是由方法體決定的,方法體不要求,返回值型別就不要求
這種現象:方法的過載(overload)
J2SE第三章 物件導向 二
5.this this變數的使用 1.用在成員變數前面 當前物件的 屬性 2.成員方法前 當前的物件 3.冗餘 使用this可以呼叫自身的另外乙個建構函式 4.this作為返回值 public class person 前面 public class person public static voi...
J2SE 物件導向
public static void main string args throws exception 資料型別 容量從小到大基本型別 byte short char int long float double boolean不能相互轉換 容量小的自動轉換為大的 容量大的轉換為小的時需加上強制轉換...
J2SE 物件導向總結
物件導向,即oo。我將物件導向的內容分為兩部分,一部分是物件導向的思想精髓,另一部分是物件導向在機器記憶體中的具體實現。下面是我的總結 檢視導圖中更詳細內容 這裡,我們重點對比總結以下內容 類和物件 1.從定義上 類是乙個概念,是乙個模板,規定了一類具有共同特點的物件。物件是是乙個例項,是類例項化的...