Java中的基本操作單元-類和對象

Java中的基本操作單元 - 類和對象

文本關(guān)鍵字:類、屬性、行為、實(shí)例化、對象

公司主營業(yè)務(wù):網(wǎng)站制作、網(wǎng)站建設(shè)、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)公司推出吳江免費(fèi)做網(wǎng)站回饋大家。

一、概念淺析

說到類和對象,這都是兩個(gè)比較抽象的詞,如果用在程序中,那就更不知道是什么意思了。其實(shí)大家可以先不聯(lián)系程序,我們在對一大堆東西分類的時(shí)候自然是有一個(gè)標(biāo)準(zhǔn)的,符合某些特征的分到一類,符合另外一些特征的分到另外一類。在每個(gè)類別中,每一樣?xùn)|西都有相同的特征,但是又有所差別,每一樣?xùn)|西就好比一個(gè)一個(gè)的對象,是一個(gè)切切實(shí)實(shí)的東西,而分類的類別就好似是一個(gè)標(biāo)準(zhǔn)或者描述,會更抽象一些。

1. 類的概念

在編程中,我們通常會借助程序去實(shí)現(xiàn)很多應(yīng)用系統(tǒng),來滿足日常生活中的需要,如網(wǎng)絡(luò)購物、人力資源管理等等。如果使用面向?qū)ο髞黹_發(fā),首先需要做的就是明確這個(gè)應(yīng)用系統(tǒng)當(dāng)中有哪些角色,這些角色都能夠使用哪些功能,每種都有哪些自己的特征。
我們以一個(gè)教學(xué)管理系統(tǒng)為例,主要的功能就是進(jìn)行排課,記錄學(xué)生和教師的基本信息,記錄和統(tǒng)計(jì)學(xué)生的學(xué)習(xí)成績等。那這其中主要就涉及學(xué)生、教師、管理員三種角色,當(dāng)有一批學(xué)生入學(xué)時(shí),我們要將學(xué)生的信息錄入系統(tǒng),這就好像我們一直在填的各種表格,每個(gè)學(xué)生需要采集的信息都是固定的,不同的是信息的內(nèi)容。
Java中的基本操作單元 - 類和對象
這就好比我們定義了一個(gè)學(xué)生類,我們想要收集的學(xué)生信息就是對這個(gè)類別的描述,學(xué)生有學(xué)號、有院系、有其他的基本信息,這也是學(xué)生的固有特征,于是我們可以用如下的代碼描述:

// 用于描述學(xué)生的類
public class Student{
    String sno;// 學(xué)號
    String name;// 姓名
    String college;// 學(xué)院
    String major;// 專業(yè)
    ...
}

2. 什么是對象

理解了程序中類的概念和表示方式后,對象就比較好理解了。簡單來說對象就是按照類的標(biāo)準(zhǔn)創(chuàng)建出來的一個(gè)具體可以操作的東西,也就是一個(gè)個(gè)具體的學(xué)生。每個(gè)學(xué)生都具備相同的特征,但是可以有不同的姓名、學(xué)院、專業(yè)等自己的信息。在程序運(yùn)行時(shí)的體現(xiàn)就是內(nèi)存中開辟了對應(yīng)的空間,想要?jiǎng)?chuàng)建一個(gè)新的對象使用如下的代碼:

public class Test{
    public static void main(String[] args){
        // 變量類型 變量名稱 = new 類的構(gòu)造器();
        Student student = new Student();
        // 大寫的Student就是我們要使用的學(xué)生類型,名稱必須完全一致
        // 小寫的student就是由學(xué)生類創(chuàng)建出來的對象的名稱
        // 也是我們操作對象是直接使用的名稱
        // new是用來創(chuàng)建對象的關(guān)鍵字,需要調(diào)用相應(yīng)的構(gòu)造器
        // 有關(guān)于構(gòu)造器的用法會在后續(xù)文章詳細(xì)說明,初學(xué)可以記憶為:類名();
    }
}

3. 類和對象的關(guān)系

從上面的例子中我們已經(jīng)可以看到,類相當(dāng)于是一個(gè)模板或是像工廠的圖紙,對象則相當(dāng)于按照這個(gè)標(biāo)準(zhǔn)和模具創(chuàng)造出來的個(gè)體,每一個(gè)對象都具備相同的特征。
在程序中的體現(xiàn)就是,使用class關(guān)鍵字定義一個(gè)類結(jié)構(gòu),然后在這個(gè)結(jié)構(gòu)中對整個(gè)類進(jìn)行描述,都具備哪些屬性,都可以產(chǎn)生行為,但是只有具體的對象可以具備具體的屬性值和產(chǎn)生具體的行為(有關(guān)于靜態(tài)的聲明將在另外的文章中單獨(dú)說明)。

二、類

我們應(yīng)該如何描述和定義一個(gè)類呢?我們最開始寫的HelloWorld不也是一個(gè)類嘛?為什么沒這么多亂七八糟的概念?下面我們就來進(jìn)一步解析。
從客觀世界的角度出發(fā),比如小明上了大學(xué),這就是一個(gè)具體的學(xué)生,他有學(xué)號、姓名、對應(yīng)的學(xué)院、專業(yè)等等,這都是他個(gè)人的基本信息,除此之外,他還可以進(jìn)行多種活動(dòng),比如選課、考試、修改自己的部分信息等等。
Java中的基本操作單元 - 類和對象
那么我們從程序的角度出發(fā),應(yīng)該如何定義一個(gè)類呢?這取決于我們的需要,對于一個(gè)教學(xué)管理系統(tǒng)來說,我們關(guān)心的只是和學(xué)生學(xué)習(xí)相關(guān)的信息,學(xué)生能夠選課、考試等等。對于一個(gè)后勤管理系統(tǒng)來說,我們關(guān)心的則是學(xué)生的飯卡消費(fèi)情況,出入宿舍的時(shí)間,學(xué)生能夠充值、消費(fèi)、刷卡等等。所以如何定義和描述一個(gè)類,取決于我們的應(yīng)用系統(tǒng)需要,或者是題目的要求。

1. 屬性

屬性指的就是所描述的類當(dāng)前的狀態(tài),也就是他自己的一些信息,直接在類下進(jìn)行定義,和正常聲明一個(gè)變量的格式相同,可以不指定初始值。

2. 行為

行為指的就是當(dāng)前這個(gè)類所創(chuàng)建出的對象都能進(jìn)行什么樣的行為,在程序上的表現(xiàn)就是方法,可以被具體的對象來進(jìn)行調(diào)用,在方法體中用代碼實(shí)現(xiàn)具體的功能。

// 用于描述學(xué)生的類
public class Student{
    // 學(xué)生類的屬性
    String sno;// 學(xué)號
    String name;// 姓名
    String college;// 學(xué)院
    String major;// 專業(yè)
    ...

    // 學(xué)生類的行為
    public void study(){
        // 去學(xué)習(xí)
        System.out.println("去上課");
    }
    public void exam(){
        // 去考試
        System.out.println("去考試");
    }
}

3. 可執(zhí)行類

在通常情況下,我們定義的一個(gè)類由四大部分構(gòu)成:屬性、行為、構(gòu)造器以及其他繼承Object的方法。也就是說都不存在可以直接執(zhí)行的main方法,而只是為了定義一個(gè)我們想要使用的類,那么怎么樣才能調(diào)用到,把我們的類用起來呢?就是通過那些具備main方法的類,如最初我們使用的HelloWorld,這就是一個(gè)最簡形式的可執(zhí)行類。

public class HelloWorld{
    public static void main(String[] args){
        System.out.println("Hello World!");
    }
}

當(dāng)然,我們也可以直接在類中添加main方法來測試運(yùn)行,但是一般不會這樣做,因?yàn)闀幸恍?quán)限的問題不能夠測試完整,通常的辦法是新建一個(gè)單獨(dú)的測試類,來進(jìn)行調(diào)用測試。

// 調(diào)用時(shí)需要將兩個(gè)類放在同一目錄下(同一包中)
public class Test{
    public static void main(String[] args){
        // 創(chuàng)建一個(gè)學(xué)生對象
        Student student = new Student();
        // 為對象的屬性賦值
        student.sno = "1130050152";
        student.name = "小明";
        student.college = "數(shù)學(xué)科學(xué)學(xué)院";
        student.major = "信息與計(jì)算科學(xué)";
        // 顯示對象的屬性值
        System.out.println("該學(xué)生的名字是:" + student.name);
        // 通過對象調(diào)用方法,發(fā)生行為
        student.study();
        student.exam();
    }
}

三、對象

通過上面我們已經(jīng)知道對象的概念,以及如何使用創(chuàng)建和使用一個(gè)對象。接下來我們再來明確一下類和對象,對象和對象之間的關(guān)系。

1. 對象是類的實(shí)例

創(chuàng)建對象的過程也可以被稱之為實(shí)例化,對象也可以被叫做類的實(shí)例。這個(gè)概念也很好理解,在類中只是定義了一系列的描述信息,真正去執(zhí)行需要靠具體的對象,以一個(gè)類為基準(zhǔn),可以創(chuàng)建出很多對象。

2. 對象和對象之間的關(guān)系

對象與對象之間存在共同點(diǎn),除了使用靜態(tài)聲明的屬性外,是不會互相影響的,這是一個(gè)很重要的特點(diǎn)。當(dāng)我們使用不同的對象去調(diào)用方法和輸出屬性信息時(shí),雖然類當(dāng)中的結(jié)構(gòu)完全一致,但是由于對象所處的狀態(tài)(屬性值)可能不同,那么方法執(zhí)行的結(jié)果也會不同。

// 用于描述學(xué)生的類
public class Student{
    // 學(xué)生類的屬性
    String sno;// 學(xué)號
    String name;// 姓名
    double balance;// 余額
    ...

    // 學(xué)生類的行為
    public void recharge(double money){
        // 對學(xué)生卡充值
        balance += money;
        System.out.println("當(dāng)前余額為" + balance);
    }
    public void getBalance(){
        // 顯示卡內(nèi)余額
        System.out.println("當(dāng)前余額為" + balance);
    }
}
// 測試類:將兩個(gè)類放在同一目錄下(同一包中)
public class Test{
    public static void main(String[] args){
        // 創(chuàng)建第一個(gè)學(xué)生對象
        Student student1 = new Student();
        // 為對象的屬性賦值
        student1.balance = 23.70;
        // 調(diào)用方法
        student1.getBalance();
        student1.recharge(100.0);
        // 創(chuàng)建第二個(gè)學(xué)生對象
        Student student2 = new Student();
        // 為對象的屬性賦值
        student2.balance = 15.60;
        // 調(diào)用方法
        student2.getBalance();
        student2.recharge(50.0);
    }
}

程序執(zhí)行完畢后可以再次輸出查看兩個(gè)對象的屬性值,不會互相影響。

新聞標(biāo)題:Java中的基本操作單元-類和對象
文章鏈接:http://www.muchs.cn/article18/pidogp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、做網(wǎng)站、網(wǎng)站收錄、App設(shè)計(jì)域名注冊、App開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名