麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 學院 > 開發設計 > 正文

第3章 面向對象基礎

2019-11-14 12:28:18
字體:
來源:轉載
供稿:網友

3.1類與對象

1.什么是類和對象?二者的關系?1. 如何定義一個類?如何創建一個對象?1.  什么是對象,如何創建對像?

1)對象:對象是人們要進行研究的任何事物,它不僅能表示具體的事物,還能表示抽象的規則、計劃或事件。對象具有狀態,一個對象用數據值來描述它的狀態。對象還有操作,用于改變對象的狀態,對象及其操作就是對象的行為。對象實現了數據和操作的結合,使數據和操作封裝于對象的統一體中。

2)類:具有相同特性(數據元素)和行為(功能)的對象的抽象就是類。因此,對象的抽象是類,類的具體化就是對象,也可以說類的實例是對象,類實際上就是一種數據類型。類具有屬性,它是對象的狀態的抽象,用數據結構來描述類的屬性。類具有操作,它是對象的行為的抽象,用操作名和實現該操作的方法來描述。

 

對象和類的關系:

類與對象的關系就如模具和鑄件的關系,類的實力化的結果就是對象,而對對象的抽象就是類,類描述了一組有相同特性(屬性)和相同行為的對象。

 

2.創建對象時,內存中的變化?

1:先將硬盤上指定位置的Person.class文件加載進內存。

2:執行main方法時,在棧內存中開辟了main方法的空間(壓棧-進棧),然后在main方法的棧區分配了一個變量p。

3:在堆內存中開辟一個實體空間,分配了一個內存首地址值。new

4:在該實體空間中進行屬性的空間分配,并進行了默認初始化。

5:對空間中的屬性進行顯示初始化。

6:進行實體的構造代碼塊初始化。

7:調用該實體對應的構造函數,進行構造函數初始化。()

8:將首地址賦值給p ,p變量就引用了該實體。(指向了該對象)

3.2 方法

1.如何定義方法?2.什么是方法的參數和返回值?

方法包含一個方法頭和一個方法體。下面是一個方法的所有部分:

 修飾符:修飾符,這是可選的,告訴編譯器如何調用該方法。定義了該方法的訪問類型。

 返回值類型:方法可能會返回值。returnValueType是方法返回值的數據類型。有些方法執行所需的操作,但沒有返回值。在這種情況下,returnValueType是關鍵字void。

 方法名:是方法的實際名稱。方法名和參數表共同構成方法簽名。

 參數類型:參數像是一個占位符。當方法被調用時,傳遞值給參數。這個值被稱為實參或變量。參數列表是指方法的參數類型、順序和參數的個數。參數是可選的,方法可以不包含任何參數。

 方法體:方法體包含具體的語句,定義該方法的功能。

20151023142602139.jpg (381×198)

如:

public static int age(int birthday){...}

參數可以有多個:

static float interest(float PRincipal, intyear){...}

1.   什么是值傳遞?2.  什么是引用傳遞?

1.值傳遞:(形式參數類型是基本數據類型):方法調用時,實際參數把它的值傳遞給對應的形式參數,形式參數只是用實際參數的值初始化自己的存儲單元內容,是兩個不同的存儲單元,所以方法執行中形式參數值的改變不影響實際參數的值。

2.引用傳遞:(形式參數類型是引用數據類型參數):也稱為傳地址。方法調用時,實際參數是對象(或數組),這時實際參數與形式參數指向同一個地址,在方法執行中,對形式參數的操作實際上就是對實際參數的操作,這個結果在方法結束后被保留了下來,所以方法執行中形式參數的改變將會影響實際參數。

 

1.   什么是構造方法?

構造方法是一種特殊的方法,具有以下特點。

(1)構造方法的方法名必須與類名相同。

(2)構造方法沒有返回類型,也不能定義為void,在方法名前面不聲明方法類型。

(3)構造方法的主要作用是完成對象的初始化工作,它能夠把定義對象時的參數傳給對象的域。

(4)一個類可以定義多個構造方法,如果在定義類時沒有定義構造方法,則編譯系統會自動插入一個無參數的默認構造器,這個構造器不執行任何代碼。

(5)構造方法可以重載,以參數的個數,類型,順序。

2.   this關鍵字的含義及使用?

表示當前對象

一、this關鍵字主要有三個應用:

(1)this調用本類中的屬性,也就是類中的成員變量;

(2)this調用本類中的其他方法;

(3)this調用本類中的其他構造方法,調用時要放在構造方法的首行。

3.   如何使用構造方法初始化對象?初始化的幾個過程?

4.   默認構造方法和自定義構造方法的區別和聯系?

如果一個類,你沒有定義構造函數,那么系統默認會有一個無參的構造函數

但如果你定義了一個有參的構造函數,為了保證正確性,系統不會創建無參構造函數,這時候,如果你還想允許無參構造,就必須顯式的聲明一個

1.   什么是方法重載?

方法重載是指在一個類中定義多個同名的方法,但要求每個方法具有不同的參數的類型或參數的個數。

2.方法重載的原則是什么?

一.方法名一定要相同。

二.方法的參數表必須不同,包括參數的類型或個數,以此區分不同的方法體。

1.如果參數個數不同,就不管它的參數類型了!

2.如果參數個數相同,那么參數的類型必須不同。

三.方法的返回類型、修飾符可以相同,也可不同。

 

3.3封裝和訪問控制

1.什么是包?

java中,我們寫程序時用到相同的類名是有可能的,遇到這種情況的話,就會出現錯誤。

為了避免上述錯誤,Sun公司在開發Java時提出了包的的概念,就是package。包可以使具有相同類名的程序互不影響,從而保證了程序的正確性。

2.  使用package時需要注意什么?

3.怎樣導入包?

java中導入jar包:首先對著myeclipse空白處,右鍵->Build Path->Configure Build Path...

點擊Libraries->Add External JARs...,選擇一個外部的jar包,打開,OK。

jar包導入工程后,就可以通過代碼頂部,使用import導入包里的類,比如:import java.lang.System。

 

1.   什么是封裝?

封裝是把過程和數據包圍起來,對數據的訪問只能通過已定義的接口。

        1、良好的封裝能夠減少耦合。

        2、類內部的結構可以自由修改。

        3、可以對成員進行更精確的控制。

        4、隱藏信息,實現細節。

2.   java有哪些訪問控制符?他們的訪問級別分別是什么?3.訪問控制符如何使用?

 

3.4靜態成員

1.什么是靜態成員?使用什么關鍵字修飾?

被static關鍵字修飾的變量叫靜態變量,也就是所謂的類變量。

不被static關鍵字修飾的變量叫成員變量

3.5對象數組

1.什么是對象數組?

對象數組就是數組里的每個元素都是類的對象,賦值時先定義對象,然后將對象直接賦給數組就行了。

3.  如何創建對象數組?怎樣實例化對象數組?

實例化類

需要對數組中每一個元素進行實例化;

比如:

Person[] ps=new Person[10];ps[0]=new Person(name0,phone0,...)ps[1]=new Person(name1,phone1,...)ps[2]=new Person(name2,phone2,...).....


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 免费看污视频在线观看 | 91精品国产综合久久久动漫日韩 | 欧美视频在线一区二区三区 | 黑人一区二区三区四区五区 | 海外中文字幕在线观看 | 免费国产不卡午夜福在线 | 日韩视频在线不卡 | 欧美hdfree性xxxx | 男女无遮挡羞羞视频 | 成人福利电影在线观看 | 国产一区二区三区影视 | 国产女厕一区二区三区在线视 | 九色一区二区 | 成人一区二区三区四区 | 97伦理 | 亚洲va久久久噜噜噜久牛牛影视 | 国产一级免费电影 | 大学生一级毛片在线视频 | 性生活视频一级 | 中文字幕网在线 | 亚洲欧美日韩免费 | 把娇妻调教成暴露狂 | 精品国产一区二区三区久久久蜜月 | 男女牲高爱潮免费视频男女 | 国产精品久久久久久模特 | 黄在线看 | 日韩一级免费毛片 | 免费视频观看 | 国产精品久久久久久一区二区三区 | 日韩av官网 | 7777网站| 国产二区三区四区 | 精品一区二区三区日本 | 性欧美暴力猛交69hd | 欧美视频一区二区三区四区 | 色综合视频 | 久草在线免费资源站 | 欧美成年人在线视频 | 日韩视频观看 | 色污视频 | 久久免费视频5 |