97干视频,99国产精品懂色,亚洲精品99久久久久中文字幕,伊人五月丁香综合AⅤ,国产精品成人免费999

  您的位置:華清遠(yuǎn)見教育科技集團(tuán) >> 新聞動(dòng)態(tài) >> Android資料 >> java面向?qū)ο缶幊?/span>  
 
java面向?qū)ο缶幊?/td>
分享到:

本文關(guān)鍵字:java面向?qū)ο缶幊蹋琷ava面向?qū)ο蟪绦蛟O(shè)計(jì),java類的聲明,java屬性的聲明,java方法的聲明,java構(gòu)造器,android java

1 從結(jié)構(gòu)化程序設(shè)計(jì)到面向?qū)ο蟪绦蛟O(shè)計(jì)

面向?qū)ο蟪绦蛟O(shè)計(jì)與結(jié)構(gòu)化程序設(shè)計(jì)都是設(shè)計(jì)和構(gòu)造程序的方法。近年來面向?qū)ο蟪绦蛟O(shè)計(jì)的方法越來越受到人們的重視,成為解決軟件危機(jī)的新途徑,而結(jié)構(gòu)化程序設(shè)計(jì)方法的使用在逐漸減少。幾乎每一種新推出的程序開發(fā)工具或語言都采用了面向?qū)ο蟪绦蛟O(shè)計(jì)的思路,面向?qū)ο蟪绦蛟O(shè)計(jì)形成了一套與結(jié)構(gòu)化程序設(shè)計(jì)具有很大差異的方法。

結(jié)構(gòu)化程序設(shè)計(jì)方法又稱面向過程設(shè)計(jì)方法,起源于20世紀(jì)70年代。在這之前的程序設(shè)計(jì)基本采用過程式程序設(shè)計(jì),雖然匯編語言已經(jīng)取代了機(jī)器語言,但是對(duì)于一般的程序設(shè)計(jì)人員而言,它還是太抽象、太隱晦了。如果計(jì)算機(jī)要得到更大的發(fā)展,必須發(fā)明一些比匯編語言更易于閱讀、編寫的程序語言。在這種需求的刺激下,結(jié)構(gòu)化程序設(shè)計(jì)方式產(chǎn)生了機(jī)構(gòu)化程序設(shè)計(jì),主要特點(diǎn)是采用自頂向下、逐步求精的程序設(shè)計(jì)方法:使用3種基本控制結(jié)構(gòu)構(gòu)造程序,任何程序都可由順序、選擇、重復(fù)3種基本控制結(jié)構(gòu)構(gòu)造。結(jié)構(gòu)化設(shè)計(jì)的根本目標(biāo)就是把復(fù)雜的系統(tǒng)分解成簡(jiǎn)單模塊的層次結(jié)構(gòu)。例如,你要裝修房子,以前的過程式程序設(shè)計(jì)要求你必須從客廳開始裝修,然后是臥室、廚房、衛(wèi)生間,順序不能顛倒,客廳沒裝好之前,休想踏進(jìn)你的臥室半步。而結(jié)構(gòu)化程序設(shè)計(jì)方式將你的客廳、臥室、衛(wèi)生間、廚房都獨(dú)立成一個(gè)模塊,互相之間可以互不干擾地進(jìn)行。

雖然結(jié)構(gòu)化程序設(shè)計(jì)解決了軟件設(shè)計(jì)開發(fā)中的一部分問題,但是它仍然存在不足。用結(jié)構(gòu)化方法開發(fā)的軟件,其穩(wěn)定性、可修改性和可重用性都比較差,這是因?yàn)榻Y(jié)構(gòu)化方法的本質(zhì)是功能分解,從代表目標(biāo)系統(tǒng)整體功能的單個(gè)處理著手,自頂向下不斷把復(fù)雜的處理分解為子處理,這樣一層一層地分解下去,直到僅剩下若干個(gè)容易實(shí)現(xiàn)的子處理功能為止,然后用相應(yīng)的工具來描述各個(gè)低層的處理。因此,結(jié)構(gòu)化方法是圍繞實(shí)現(xiàn)處理功能的“過程”來構(gòu)造系統(tǒng)的。然而,用戶需求的變化大部分是針對(duì)功能的,因此,這種變化對(duì)于基于過程的設(shè)計(jì)來說是災(zāi)難性的。用這種方法設(shè)計(jì)出來的系統(tǒng)結(jié)構(gòu)常常是不穩(wěn)定的,用戶需求的變化往往造成系統(tǒng)結(jié)構(gòu)的較大變化,從而需要花費(fèi)很大代價(jià)才能實(shí)現(xiàn)這種變化。

結(jié)構(gòu)化程序設(shè)計(jì)的局限性催生了面向?qū)ο蟮乃枷。面向(qū)ο螅∣O)并不是一個(gè)新概念,它在20世紀(jì)70年代就出現(xiàn)了,但是,因?yàn)槭艿杰?硬件的限制,直到90年代,它才為大眾所接受并成為程序設(shè)計(jì)的主流思想。面向?qū)ο蟮姆椒ㄅc結(jié)構(gòu)化的程序設(shè)計(jì)根本區(qū)別在于把系統(tǒng)看成一起工作來完成某項(xiàng)任務(wù)的對(duì)象集合,而對(duì)象是系統(tǒng)對(duì)消息做出響應(yīng)的事物,所以面向?qū)ο蠓椒ㄖ兄档藐P(guān)注的不是它應(yīng)該做什么,而是它如何做出反應(yīng),也就是消息,這是和結(jié)構(gòu)化設(shè)計(jì)的根本不同。

在面向?qū)ο蟮脑O(shè)計(jì)思想指導(dǎo)下,產(chǎn)生了第一個(gè)面向?qū)ο蟮恼Z言——20世紀(jì)60年代的Simula-67。它的目的是解決模擬問題。一個(gè)典型的應(yīng)用是模擬銀行系統(tǒng)的運(yùn)作(銀行是早采用計(jì)算機(jī)的行業(yè)之一),將銀行的出納部門、客戶、業(yè)務(wù)等實(shí)體模擬成一個(gè)個(gè)的對(duì)象,把這些在程序的運(yùn)行中除了狀態(tài)外其他方面都一樣的對(duì)象歸納在一起,就成了更高抽象層面的“類”。在面向?qū)ο笏枷胫笇?dǎo)下產(chǎn)生了成功的面向?qū)ο缶幊陶Z言——Smalltalk。并且,在此基礎(chǔ)上又誕生了應(yīng)用更加廣泛的面向?qū)ο缶幊陶Z言——C++及Java。

2 面向?qū)ο筇卣?/strong>

1.對(duì)象唯一性

每個(gè)對(duì)象都有自身唯一的標(biāo)識(shí),通過這種標(biāo)識(shí),可找到相應(yīng)的對(duì)象。在對(duì)象的整個(gè)生命期中,它的標(biāo)識(shí)都不改變,不同的對(duì)象不能有相同的標(biāo)識(shí)。

2.抽象性

抽象性是指將具有一致的數(shù)據(jù)結(jié)構(gòu)(屬性)和行為(操作)的對(duì)象抽象成類。一個(gè)類就是這樣一種抽象,它反映了與應(yīng)用有關(guān)的重要性質(zhì),而忽略其他一些無關(guān)內(nèi)容。任何類的劃分都是主觀的,但必須與具體的應(yīng)用有關(guān)。

3.封裝性

封裝性就是把對(duì)象的屬性和服務(wù)結(jié)合成一個(gè)獨(dú)立的單位,并盡可能隱蔽對(duì)象的內(nèi)部細(xì)節(jié)。

4.繼承性

繼承性是子類自動(dòng)共享父類數(shù)據(jù)結(jié)構(gòu)和方法的機(jī)制,這是類之間的一種關(guān)系。在定義和實(shí)現(xiàn)一個(gè)類的時(shí)候,可以在一個(gè)已經(jīng)存在的類的基礎(chǔ)上來進(jìn)行,把這個(gè)已經(jīng)存在的類所定義的內(nèi)容作為自己的內(nèi)容,并加入若干新的內(nèi)容。

繼承性是面向?qū)ο蟪绦蛟O(shè)計(jì)語言不同于其他語言的重要的特點(diǎn),是其他語言所沒有的。

5.多態(tài)性

多態(tài)性是指相同的操作或函數(shù)、過程可作用于多種類型的對(duì)象上并獲得不同的結(jié)果。不同的對(duì)象收到同一消息可以產(chǎn)生不同的結(jié)果,這種現(xiàn)象稱為多態(tài)性。

3 面向?qū)ο蟪绦蛟O(shè)計(jì)

3.1 知識(shí)準(zhǔn)備:面向?qū)ο缶幊绦g(shù)語

● 類(Class):類是對(duì)某種類型的對(duì)象定義變量和方法的原形。它表示對(duì)現(xiàn)實(shí)生活中一類具有相同特征的事物的抽象,是面向?qū)ο缶幊痰幕A(chǔ)。

● 對(duì)象(Object):也稱為實(shí)例(Instance),是類的具體存在。

● 屬性(Attribute):也稱為成員變量、實(shí)例變量(Instance Variable)、字段(Field),表示一個(gè)對(duì)象所具有的狀態(tài)。本書中,通常使用變量或者屬性來稱呼它。

● 方法(Method):用于表示對(duì)象可以執(zhí)行的動(dòng)作,它包括名稱、參數(shù)、返回類型,以及方法體等內(nèi)容。

● 構(gòu)造器(Constructor):也稱為“構(gòu)造方法”。用于創(chuàng)建和初始化一個(gè)實(shí)例的特殊方法,包括名稱、參數(shù)及“方法體”等,需要注意的是,它的名稱必須和類名一致。

● 包(Package):可以使用它來組織編寫類,使得類的組織更加有序。

3.2 知識(shí)準(zhǔn)備:對(duì)象

我們每天的生活、工作,無時(shí)無刻不在和“對(duì)象”打交道——衣服、食物、房子、汽車等。當(dāng)處理這些對(duì)象時(shí),不會(huì)將這些對(duì)象的屬性(對(duì)象所具有的特點(diǎn))和操作分開。如進(jìn)出“房間”時(shí),不會(huì)將“房門”這個(gè)屬性和“開門”這個(gè)操作分開,它們是聯(lián)系在一起的。

面向?qū)ο蟮木幊趟枷肓D使得程序和現(xiàn)實(shí)世界中的具體實(shí)體完全一致。

人們通過觀察對(duì)象的屬性和行為來了解對(duì)象。對(duì)象的屬性描述了對(duì)象的狀態(tài),對(duì)象的行為描述了對(duì)象的功能。對(duì)象一般有如下特性:

(1)有一個(gè)名字以區(qū)別于其他對(duì)象。

(2)有一些狀態(tài)用來描述它的某些特征。

(3)有一組操作,每個(gè)操作決定了對(duì)象的一種功能或行為。

這樣,可以讓程序員乃至非專業(yè)人員更好地理解程序。它涉及一個(gè)從“具體”到“抽象”,再從“抽象”到“具體”的過程。所謂“從‘具體’到‘抽象’”,也就是將現(xiàn)實(shí)世界中的一個(gè)個(gè)具體的“物體”(或稱為“實(shí)體(Entity)”)相應(yīng)的特征和行為抽象出來,并且將各種具有相同特征的“物體”分為一個(gè)個(gè)的“類”,如“汽車”類、“人”類、“房子”類等;而所謂“從‘抽象’到‘具體’”,就是將上面抽象出來的對(duì)應(yīng)物體的“類”,使用具體的計(jì)算機(jī)語言來描述,比如,使用Java語言來描述“汽車”類、“人”類、“房子”類等,和使用C++語言來描述這些類是有區(qū)別的。

正如前面所述,“類”相對(duì)于現(xiàn)實(shí)世界中的“實(shí)體種類”(Entity Category),如汽車、人類、房子等,它是現(xiàn)實(shí)生活中某類實(shí)體的抽象。而對(duì)象,或者實(shí)體(Instance),指的是這些種類中的一個(gè)個(gè)具體存在,如Benz-600、Santana-2000等具體的汽車,或者張三、李四等具體的個(gè)人。類和對(duì)象是面向?qū)ο缶幊趟枷胫械暮诵暮突A(chǔ)。類是作為對(duì)象的藍(lán)圖而存在的,所有的對(duì)象都依據(jù)相應(yīng)的類來產(chǎn)生,在面向?qū)ο蟮男g(shù)語中,這個(gè)產(chǎn)生對(duì)象的過程稱為“實(shí)例化”。

用一個(gè)具體的例子來進(jìn)一步說明“類”和“對(duì)象”之間的聯(lián)系與區(qū)別。以汽車為例,只要是汽車,都應(yīng)該有以下一些特性:輪子、引擎、方向盤、剎車等組件,可以通過這些組件來操作汽車,改變汽車的狀態(tài),如加速、轉(zhuǎn)向、減速等,這些都是汽車的共性。具體到某輛汽車,它可能有80cm的輪子、40cm的方向盤、A6引擎,它是一個(gè)確定的實(shí)例。使用“汽車類”這個(gè)藍(lán)圖,就可以生產(chǎn)出一輛輛的汽車“實(shí)例”。這和蓋房子一樣,根據(jù)一張圖紙,可以蓋出任意數(shù)量的房子,而這些房子都有一樣的特征。

3.3 知識(shí)準(zhǔn)備:類

如果說一切都可以成為對(duì)象,那么是什么決定了某一類對(duì)象的外觀和行為呢?

類是對(duì)某個(gè)對(duì)象的定義,用來描述一組具有相同特征對(duì)象的:

(1)應(yīng)包括的數(shù)據(jù)。

(2)行為特征。

類包含有關(guān)對(duì)象動(dòng)作方式的信息,包括它的名稱、方法、屬性和事件。實(shí)際上類本身并不是對(duì)象,因?yàn)樗淮嬖谟趦?nèi)存中。當(dāng)引用類的代碼運(yùn)行時(shí),類的一個(gè)新的實(shí)例,即對(duì)象,就在內(nèi)存中創(chuàng)建了。一個(gè)類能從這個(gè)類在內(nèi)存中創(chuàng)建多個(gè)相同類型的對(duì)象。因此,類應(yīng)該包括兩個(gè)方面的內(nèi)容。

(1)屬性:用來描述對(duì)象的數(shù)據(jù)元素稱為對(duì)象的屬性(也稱為數(shù)據(jù)/狀態(tài))。

(2)方法:對(duì)對(duì)象的屬性進(jìn)行的操作稱為對(duì)象的方法(也稱為行為/操作)。

3.4 知識(shí)準(zhǔn)備:類的聲明

Java語言中類的聲明,也稱類的定義,其語法規(guī)則如下:

[< modifiers>] class < class_name> {
        [<attribute_declarations>]
        [<constructor_declarations>]
        [<method_declarations>]
    }

其中各組成部分的含義如下:

<modifiers>為修飾符,可用的有public、abstract和final等關(guān)鍵字(關(guān)鍵字是Java語言中賦以特定含義,并用做專門用途的單詞,類名、方法名和屬性名及變量名不能是關(guān)鍵字),用于說明所定義的類有關(guān)方面的特性。對(duì)于各種關(guān)鍵字和它們的含義及各自的適用范圍,請(qǐng)看后續(xù)章節(jié)的介紹。

類成員有3種不同的訪問權(quán)限:

(1)公有( public關(guān)鍵字修飾 )類成員可以在類外訪問。

(2)私有( private關(guān)鍵字修飾 )類成員只能被該類的成員函數(shù)訪問。

(3)保護(hù)( protected關(guān)鍵字修飾 )類成員只能被該類的成員函數(shù)或派生類的成員函數(shù)訪問。

class關(guān)鍵字表明這是一個(gè)類的定義,將告訴你一個(gè)新類型的對(duì)象看起來是什么樣的。

<class_name>是類的名字,類名一般使用一個(gè)用于表示這個(gè)類的名詞來表示。

<attribute_declarations>是屬性(Attribute)聲明部分。

<constructor_declarations>是構(gòu)造器(Constructor)聲明部分。

<method_declarations>是方法(Method)聲明部分。

可以將上述的“學(xué)生”實(shí)體的基本特征當(dāng)成“學(xué)生”類的屬性,然后,再定義一些方法來對(duì)這些屬性進(jìn)行操作。這里,將這些操作屬性的方法定義得很簡(jiǎn)單:每個(gè)屬性都有相應(yīng)的設(shè)置(setter)和獲取(getter)方法,設(shè)置方法將傳入的參數(shù)賦給對(duì)象的屬性,而獲取方法取得對(duì)象的屬性。

源文件:Student.java

public class Student {
        // 定義屬性
        String name;
        String sex;
        int grade;
        int age;

        // 定義屬性“name”的設(shè)置方法
        public void setName(String _name) {
            name = _name;
        }

        // 定義屬性“name”的獲取方法
        public String getName() {
            return name;
        }

        // 定義屬性“Sex”的設(shè)置方法
        public void setSex(String _sex) {
            sex = _sex;
        }

        // 定義屬性“Sex”的獲取方法
        public String getSex() {
            return sex;
        }

        // 定義屬性“grade”的設(shè)置方法
        public void setGrade(int _grade) {
            grade = _grade;
        }

        // 定義屬性“grade”的獲取方法
        public int getGrade() {
            return grade;
        }

        // 定義屬性“age”的設(shè)置方法
        public void setAge(int _age) {
            age = _age;
        }

        // 定義屬性“age”的獲取方法
        public int getAge() {
            return age;
        }
    }

3.5 知識(shí)準(zhǔn)備:屬性的聲明

類的定義中所包含的數(shù)據(jù)稱為屬性,也稱為數(shù)據(jù)成員,比如2.2.4節(jié)示例中的Student類中定義了4個(gè)屬性——name、sex、grade、age。屬性聲明的語法規(guī)則如下:

[< modifiers>] <data_type> < attr_name>;

其中:

● < modifiers>為修飾符,可用的有public、private、protected、final、static等,用于說明該屬性的一些性質(zhì)。

● <data_type>是該屬性的數(shù)據(jù)類型,屬性可以是Java基本類型的一種,如下面的示例中MyClass類中聲明的屬性classID等,也可以是任何類型的對(duì)象,可以通過引用它進(jìn)行通信。例如MyClass類中聲明的屬性myTeacher。

● <attr_name>是屬性名稱,屬性名稱的首字母一般采用小寫方式。

MyClass.java
    public class MyClass {
        int classID;
        String className;
        int studentNumber;
        Teacher myTeacher;

    }
    Teacher.java
    public class Teacher {

        String name;
        int id;
        String course;
    }

3.6 知識(shí)準(zhǔn)備:方法的聲明

類的定義中還可以包含方法的聲明,Java的方法決定了對(duì)象可以接收什么樣的信息,方法的基本組成部分包括名稱、參數(shù)、返回值和方法體。其語法規(guī)則如下:

< modifiers> <return_type> <name>([< argu_list>]) {
        [< method body>]
    }

其中:

● < modifiers>為修飾符,可用的有public、private、protected、abstract、static和final,用于說明方法的屬性。

● <return_type>是該方法的返回值類型,可以是任何合法的Java數(shù)據(jù)類型。

● <name>是方法名。

● <argu_list>是方法的參數(shù)列表,包括要傳給方法的信息的類型和名稱,如有多個(gè)參數(shù),中間用逗號(hào)“,”分隔。

● <method body>是方法體,有0到多行Java語句。

下面在2.2.5節(jié)示例MyClass類中聲明一個(gè)名為ChangeTeacher的方法,當(dāng)大多數(shù)同學(xué)對(duì)老師不滿意時(shí),可以使用這個(gè)方法來換個(gè)給力的老師,并返回老師的名字。

public class MyClass {
        int classID;
        String className;
        int studentNumber;
        Teacher myTeacher;
        public String ChangeTeacher(Teacher t){
            System.out.print("change a teacher");
            this.myTeacher = t;
            return t.name;
        }
    }

注意:

1.參數(shù)列表傳遞的實(shí)際上是引用,引用的對(duì)象類型必須和參數(shù)類型一致,不然編譯器會(huì)報(bào)錯(cuò)。

2.Java語言中類、方法及屬性聲明的次序并無嚴(yán)格要求。

3.7 知識(shí)準(zhǔn)備:構(gòu)造器(構(gòu)造方法)

在Java程序中,每個(gè)類都必須至少有一個(gè)構(gòu)造器(Constructor)。構(gòu)造器是創(chuàng)建一個(gè)類的實(shí)例(對(duì)象)時(shí)需要調(diào)用的一個(gè)特殊的方法。

利用構(gòu)造器可以產(chǎn)生一個(gè)類的實(shí)例,并且提供了一個(gè)地方用來定義創(chuàng)建類的實(shí)例時(shí)都需要執(zhí)行的初始化(initialize)代碼。構(gòu)造器的定義語法如下:

<modifier> <class_name> ( [<argument_list>] )
        {
        [<statements>]
    }

從上面的語法中可以看出,它和類中的方法定義很類似:可以有訪問修飾符modifier、有自己的方法名稱、有參數(shù)列表、有方法體,因此,可以將構(gòu)造器當(dāng)成一個(gè)特殊的方法(在許多資料里面,就是將Constructor稱為構(gòu)造方法),這個(gè)方法的作用就是用來產(chǎn)生一個(gè)類的實(shí)例。但是要認(rèn)識(shí)到構(gòu)造器與普通方法的區(qū)別,主要表現(xiàn)在以下3個(gè)方面。

(1)修飾符:和方法一樣,構(gòu)造器可以有任何訪問的修飾:public、protected、private或者沒有修飾。不同于方法的是,構(gòu)造器不能有以下非訪問性質(zhì)的修飾:abstract、final、native、static或者 synchronized。

(2)返回值:方法能返回任何類型的值或者無返回值(void),構(gòu)造器沒有返回值,也不需要void。

(3)命名:構(gòu)造器使用和類相同的名字,通常為名詞。而方法則不同,通常為描述一個(gè)操作的動(dòng)詞。按照習(xí)慣,方法通常用小寫字母開始,而構(gòu)造器通常用大寫字母開始。

下面定義一個(gè)用來表示“美食”的類Food。

源文件:Food.java


public class Food {
        private String food_name ;
        public Food(String name){
            this.food_name = name;
        }
    }

在Food類中,定義了一個(gè)屬性food_name,還定義了一個(gè)構(gòu)造器,在構(gòu)造器中傳入一個(gè)字符串類型的參數(shù),將參數(shù)值賦給屬性food_name。此時(shí),就可以通過這個(gè)構(gòu)造器來實(shí)例化這個(gè)類,如下所示。

Food myDinner = new Food("pizza");

這樣,就得到了一個(gè)food_name名為“pizza”的實(shí)例,還可以再創(chuàng)建一個(gè)food_name名為“cola”的實(shí)例來搭配你的晚餐。

如果在程序中沒有定義任何的構(gòu)造器,則編譯器將會(huì)自動(dòng)加上一個(gè)不帶任何參數(shù)的構(gòu)造器。默認(rèn)的構(gòu)造器不帶任何的參數(shù),也沒有“方法體”。

通過上面的示例,在Food類中定義了一個(gè)帶一個(gè)參數(shù)的構(gòu)造器。如果上面的Food類沒有定義構(gòu)造器,則編譯器會(huì)自動(dòng)加上一個(gè)構(gòu)造器:

public class Food {
        private String food_name ;
        public Food(){
        }
    }

所以,這時(shí)可以用下面的語句來實(shí)例化這個(gè)類:

Food myDinner = new Food();

如果在程序中定義了構(gòu)造器,則編譯器將不再提供默認(rèn)的構(gòu)造器,即使定義的構(gòu)造器同樣沒有參數(shù)。如果再使用默認(rèn)構(gòu)造器的話,編譯器會(huì)報(bào)錯(cuò)。

3.8 知識(shí)準(zhǔn)備:對(duì)象的創(chuàng)建和使用

正確聲明了Java類之后,便可以在其他的類或應(yīng)用程序中使用該類了。使用類是通過創(chuàng)建該類的對(duì)象并訪問對(duì)象成員來實(shí)現(xiàn)的。對(duì)象成員是指一個(gè)對(duì)象所擁有的屬性或可以調(diào)用的方法,現(xiàn)階段可以理解為對(duì)象所屬的類中定義的所有屬性和方法。一個(gè)對(duì)象的聲明實(shí)際上只是對(duì)該類的引用,需要使用new+構(gòu)造器(又稱為構(gòu)造方法)創(chuàng)建對(duì)象,此時(shí)存儲(chǔ)器會(huì)給此對(duì)象相應(yīng)的存儲(chǔ)空間。當(dāng)對(duì)象被成功創(chuàng)建后,可以使用“對(duì)象名.對(duì)象成員”的方式訪問對(duì)象成員。

3.9 任務(wù)一:創(chuàng)建并引用一個(gè)對(duì)象

1.任務(wù)描述

創(chuàng)建一個(gè)美食類,并引用該類的對(duì)象,列出一天的食譜。

2.技能要點(diǎn)

(1)聲明類、屬性及方法。

(2)對(duì)象的創(chuàng)建和引用。

3.任務(wù)實(shí)現(xiàn)過程

(1)定義一個(gè)用于表示“食物”的類“Food”;在類中聲明一個(gè)food_name屬性;給food_name屬性添加get()、set()方法。

(2) 在Recipe類中,通過默認(rèn)構(gòu)造方法創(chuàng)建3個(gè) “Food”對(duì)象,通過setFood_name(String name)方法給food_name賦值,并通過 getFood_name()方法獲得food_name屬性值,并輸出。

源文件:Recipe.java


public class Recipe {
        public static void main(String args[]) {
            Food breakfast = new Food();
            breakfast.setFood_name("bread");
            Food lunch = new Food();
            lunch.setFood_name("nuddle");
            Food dinner = new Food();
            dinner.setFood_name("pizza");
            System.out.print("my breakfast is "+breakfast.getFood_name()+"\n");
            System.out.print("my lunch is "+lunch.getFood_name()+"\n");
            System.out.print("my dinner is "+dinner.getFood_name());
        }
    }
    class Food {
        private String food_name ;

        public String getFood_name() {
            return food_name;
        }
        public void setFood_name(String foodName) {
            food_name = foodName;
        }
    }

程序運(yùn)行結(jié)果:

my breakfast is bread
    my lunch is nuddle
    my dinner is pizza

3.10 技能拓展任務(wù):帶參數(shù)構(gòu)造器的聲明與使用

1.任務(wù)描述

改寫任務(wù)一的程序,使用帶參數(shù)構(gòu)造器,實(shí)現(xiàn)同樣的輸出結(jié)果。

2.技能要點(diǎn)

帶參數(shù)構(gòu)造器的聲明和引用。

3.任務(wù)實(shí)現(xiàn)過程

(1)定義一個(gè)用于表示“食物”的類“Food”;在類中聲明一個(gè)food_name屬性;給food_name屬性添加get()、set()方法。

(2)給Food類添加兩個(gè)構(gòu)造方法,一個(gè)帶參數(shù),一個(gè)不帶參數(shù)。

(3)在Recipe類中,通過帶參數(shù)構(gòu)造方法創(chuàng)建兩個(gè)“Food”對(duì)象,通過getFood_name()方法獲得food_name屬性值,并輸出。

(4)在Recipe類中,通過不帶參數(shù)構(gòu)造方法創(chuàng)建一個(gè)“Food”對(duì)象,通過setFood_name(String name)方法給food_name賦值并輸出。

源文件:Recipe.java


public class Recipe {
        public static void main(String args[]) {
            Food breakfast = new Food("bread");
            Food lunch = new Food("noddle");
            Food dinner = new Food();
            dinner.setFood_name("pizza");
            System.out.print("my breakfast is "+breakfast.getFood_name()+"\n");
            System.out.print("my lunch is "+lunch.getFood_name()+"\n");
            System.out.print("my dinner is "+dinner.getFood_name());
        }
    }
    class Food {
        private String food_name ;

        public String getFood_name() {
            return food_name;
        }
        public void setFood_name(String foodName) {
            food_name = foodName;
        }
        public Food(String name){
            this.food_name = name;
        }
        public Food(){}
    }

程序運(yùn)行結(jié)果:

my breakfast is bread
    my lunch is nuddle
    my dinner is pizza

本文選自華清遠(yuǎn)見android開發(fā)培訓(xùn)教材《Android系統(tǒng)下Java編程詳解》

 更多相關(guān)文章

·Android開發(fā)環(huán)境搭建
·Android開發(fā)框架
·Android系統(tǒng)架構(gòu)
·Android系統(tǒng)介紹及平臺(tái)特性
·Android開發(fā)之Frame動(dòng)畫實(shí)現(xiàn)方法