在講解面向?qū)ο笾埃覀兊媒鉀Q一個問題,什么是對象?
對象,從字面意思來看就是我們面對的物象。于此我們便可以知道,萬事萬物皆為對象。比如:一臺電腦,一輛汽車,一部手機等等都是對象。
面向?qū)ο螅瑥淖置嬉馑紒砜淳褪俏覀內(nèi)嗣鎸χ粋€對象。其實就是指我們從這個對象的整體出發(fā)去看它,它由哪些部件組成,它可以做到哪些事情。
比如:我們想要買一部手機,我們想要內(nèi)存大一點的,最新款的,CPU 運算快一點的,能實現(xiàn)發(fā)短信和打電話功能的手機。那么這部手機是不是對象呢?它不是。當(dāng)我們買了一部 iphone 6 后,它滿足我們上面的所有信息。于是我們拿在手上的這部 iphone 6 就是我們的對象。于是我們知道,對象一定是一個具體的,確定的物體。
而這部手機它的樣式,顏色,大小,產(chǎn)地,編號等等,便是這部手機的“屬性”,這部手機可以打電話、發(fā)短信,便是它的“行為”。
面向?qū)ο蟮乃枷耄w現(xiàn)的是人所關(guān)注對象的信息聚集在了一個具體的物體上。人們就是通過對象的屬性和行為來了解對象。
對于一個具體的對象而言,比如上面我們說的那一部 iphone 6,世上還有許多跟這部手機有著同樣屬性或行為的對象,我們?yōu)榱朔奖銓⑺鼈儦w類起來,提取出他們相同的屬性和行為,而我們把歸類起來的這個抽象的概念,稱之為類。
比如:每個人就是一個對象,小張是一個對象,小明是一個對象。而每個人雖然不同,但卻有許多相同的屬性和行為,于是我們可以他們抽象出來,變成一個類,比如人類。
類是封裝對象的屬性和行為的載體,反過來說具有相同屬性和行為的一類實體被稱為類。
由此我們可以總結(jié)出類的特點:
1. 類是相同或相似對象的一種抽象,是對象的一種類型
2. 類是具有相同屬性和方法(行為)的對象的集合
我們在上面反復(fù)強調(diào)對象的屬性和行為,什么是對象的屬性呢?什么又是對象的行為呢?
屬性是對象具有的特征。每個對象的每個屬性都擁有特定值。我們上面講過對象是一個具體并且確定的事物,正是對象屬性的值來區(qū)分不同的對象,比如我們可以通過一個人的外貌特征區(qū)分他。
那什么是對象的行為呢?在計算機中我們通過方法去實現(xiàn)對象的行為,而對象的方法便是對象所具有的操作,比如人會走路、會哭泣、會學(xué)習(xí)等等都是人的行為,也就是人的方法。
類和對象之間有什么關(guān)系嗎?在上面的講解中大家應(yīng)該有些了解了。類就是對象的抽象,對象就是類的具體。比如手機是一個抽象的概念,它代表著類。而一部 iphone 6 便是手機具象化處理的實體,也就是一個對象。
說了那么多,那我們?nèi)绾卧谟嬎銠C中定義一個類,如何實現(xiàn)一個類呢?我們以前說過,java 是面向?qū)ο蟮恼Z言,而他的體現(xiàn)就在于Java程序都以類 class為組織單元。而一個類是對象的抽象,所以類由屬性和方法兩部分組成。
定義一個類,主要有三個步驟:
1、定義類名,用于區(qū)分不同的類。如下代碼中 public class 后面跟的就是類名。class
是我們聲明類的關(guān)鍵字,類名后面跟上大括號,大括號里面就是我們類的一些信息。
public class 類名{//定義屬性部分(成員變量)屬性1的類型 屬性1;屬性2的類型 屬性2;...//定義方法部分方法1;方法2;...} 2、編寫類的屬性。對象有什么,我們通過屬性來表示。屬性的定義我們是寫在類名后面的大括號里,在定義屬性時,要明確屬性的類型。在一個類當(dāng)中可以寫一個或多個屬性。當(dāng)然也可以不定義屬性。
3、編寫類的方法。方法也是寫在大括號里面。我們可以定義一個方法或多個方法,當(dāng)然也可以不定義方法。
舉例:
1、 打開 Eclipse,新建一個 Java 項目,取名為 PRoject。
2、在左側(cè)空白地方點擊右鍵新建一個Class,這便是我們的類了。填上包名( pakage )和我們的類名

3、至此我的類就創(chuàng)建好了,接下來就是對類填寫屬性和方法了

對象
我們要使用一個對象,首先第一步便是創(chuàng)建一個對象。創(chuàng)建對象的語法如下:
類名 對象名 = new 類名();比如對People
這個類,我想實例化LiLei
這個人。LiLie 的數(shù)據(jù)類型便是 People 這個類型。(類可以看成使我們自己定義的數(shù)據(jù)類型)
People LiLei = new People(); 我們在上一講中介紹形參和實參的時候畫了內(nèi)存圖,定義類的時候是不會為類開辟內(nèi)存空間的,但是一旦創(chuàng)建了對象,系統(tǒng)就會在內(nèi)存中為對象開辟一塊空間,用來存放對象的屬性值和方法。

創(chuàng)建對象后,我們就要使用對象了,使用對象無非就是對屬性和方法進(jìn)行操作和調(diào)用。語法如下
//引用對象屬性對象名.屬性//引用對象方法對象名.方法例如,我們對LiLei的身高賦值,并調(diào)用哭這個方法
LiLei.height = 170;LiLei.cry();舉例:

接下來就是在主函數(shù)中創(chuàng)建對象,并進(jìn)行相關(guān)的操作了。

剛剛我們引入了成員變量這個概念,那什么是成員變量呢?成員變量就是指的對象的屬性,是在類中定義,來描述對象的特性。還有一種變量叫局部變量,它是由類的方法定義,在方法中臨時保存數(shù)據(jù)。

注意:我們的成員變量可以被本類的所有方法所使用,同時可以被與本類有關(guān)的其他類(比如:繼承該類的類)所使用。而我們的局部變量只能在當(dāng)前的方法中使用。
作用域可以簡單地理解為變量的生存期或者作用范圍,也就是變量從定義開始到什么時候消亡。
1. 局部變量的作用域僅限于定義它的方法內(nèi)。而成員變量的作用域在整個類內(nèi)部都是可見的。
2. 同時在相同的方法中,不能有同名的局部變量;在不同的方法中,可以有同名的局部變量。
3. 成員變量和局部變量同名時,局部變量具有更高的優(yōu)先級。
構(gòu)造方法
在面向?qū)ο笾杏幸粋€非常重要的知識點,就是構(gòu)造方法。我們只前在創(chuàng)建一個對象的時候類名 對象名 = new 類名();
通過new
關(guān)鍵字將類實例化成對象,而new
后面跟的并不是我們的類名,而是與類名相同的一個方法,這個方法便是構(gòu)造方法。于是可以知道new + 構(gòu)造方法
可以創(chuàng)建一個新的對象,而構(gòu)造方法是定義在 Java 中的用來初始化對象的方法。
1、 構(gòu)造方法的名稱與類名相同,且沒有返回值。它的語法格式如下:
//與類同名,可以指定參數(shù),沒有返回值public 構(gòu)造方法名(){//初始化代碼}例如:
package com.shiyanlou;public class People {//屬性(成員變量)有什么 double height; //身高 int age; //年齡 boolean sex; //性別,true為男性,false為女性 //構(gòu)造函數(shù),初始化了所有屬性 public People(double h, int a, boolean s){ height = h; age = a; sex = s; }}//創(chuàng)建對象,調(diào)用我們自己定義的有參構(gòu)造方法People XiaoMing = new People(168, 21, false); 2、如果我們在定義類的時候沒有寫構(gòu)造方法,系統(tǒng)會默認(rèn)給我們生成一個無參構(gòu)造方法,不過這個構(gòu)造方法什么也不會做。
3、當(dāng)有指定的構(gòu)造方法時,系統(tǒng)都不會再為我們添加無參構(gòu)造方法了。
4、構(gòu)造方法的重載:方法名相同,但參數(shù)不同的多個方法,調(diào)用時會自動根據(jù)不同的參數(shù)選擇相應(yīng)的方法。
新聞熱點
疑難解答