国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

首頁(yè) 類(lèi)庫(kù)下載 java類(lèi)庫(kù) Java基礎(chǔ)學(xué)習(xí)

Java基礎(chǔ)學(xué)習(xí)

Oct 09, 2016 pm 04:50 PM

現(xiàn)在我們要做這麼一個(gè)媒體庫(kù),用來(lái)存放CD和DVD??梢栽诿襟w庫(kù)裡加入CD和DVD,還可以列出來(lái)媒體庫(kù)裡所有的CD和DVD。

我們用到了繼承的概念:CD是一個(gè)對(duì)象,DVD也是。兩者又有很多相似的地方,比方說(shuō)都有名字,播放時(shí)間,評(píng)論,等等,為了以後便於管理和調(diào)試,我們做了一個(gè)父類(lèi)叫Item,它下面有兩個(gè)子類(lèi):CD,DVD。

然後我們還需要做一個(gè)類(lèi)別(物件)來(lái)管理它們,這個(gè)物件有一個(gè)ArrayList的成員變數(shù)當(dāng)作媒體庫(kù),有一個(gè)add函數(shù)用來(lái)添加CD或DVD,還得有個(gè)list函數(shù)用來(lái)列出媒體庫(kù)裡的所有東西。我們給這個(gè)類(lèi)別取名為Database。

這樣我們就要做以下四個(gè)java來(lái)源檔:

Java基礎(chǔ)學(xué)習(xí)

源碼:

package dome;

import java.util.ArrayList;

public class Database {
    
    private ArrayList<Item> listItem = new ArrayList<Item>();
    
    public void add(Item item) {
        listItem.add(item);
    }
    
    public void list() {
        for(Item item:listItem) {
            item.print();
        }
    }
    
    public static void main(String[] args) {
        Database db = new Database();
        db.add(new CD("黑夢(mèng)",600,true,"Classic Album","竇唯",10));
        db.add(new DVD("功夫",900,false,"Let&#39;s do this!","周星馳"));
        db.add(new CD("Wall",700,false,"Psychedelic Rock","PinkFloyd",15));
        db.list();
    }
    
}

Database.java
package dome;

public class Item {

    private String title;
    private int playTime;
    private boolean gotIt = false;
    private String comment;
    
    public Item(String title, int playTime, boolean gotIt, String comment) {
        super();
        this.title = title;
        this.playTime = playTime;
        this.gotIt = gotIt;
        this.comment = comment;
    }
    
    public void print() {
        System.out.print(title+":"+playTime+":"+gotIt+":"+comment);
    }
    
}

Item.java
package dome;

public class CD extends Item {

    private String artist;
    private int numofTracks;
    
    public CD(String title, int playTime, boolean gotIt, String comment, String artist, int numofTracks) {
        super(title, playTime, gotIt, comment);
        this.artist = artist;
        this.numofTracks = numofTracks;
    }
    
    public void print() {
        System.out.print("CD:");
        super.print();
        System.out.println(":"+artist+":"+numofTracks);
    }
    
}

CD.java
package dome;

public class DVD extends Item {
    
    private String director;

    public DVD(String title, int playTime, boolean gotIt, String comment, String director) {
        super(title, playTime, gotIt, comment);
        this.director = director;
    }
    
    public void print() {
        System.out.print("DVD:");
        super.print();
        System.out.println(":"+director);
    }
    
}

 DVD.java

運(yùn)行:

Java基礎(chǔ)學(xué)習(xí)

父類(lèi)別下面有兩個(gè)子類(lèi),在Database裡第9行:Item item,定義了一個(gè)物件變數(shù)item,這個(gè)item是Item類(lèi),這個(gè)item還只是一個(gè)變量,是一個(gè)物件的管理者,但還沒(méi)有具體要去管的那個(gè)對(duì)象。在main函數(shù)裡可以去幫item賦一個(gè)CD,也可以幫他賦DVD,所以這個(gè)item變數(shù)是要依照程式運(yùn)行的時(shí)候才能知道他要管理的那個(gè)物件是什麼。這個(gè)item就是多態(tài)變數(shù)。

向上造型:想上造型是指拿一個(gè)子類(lèi)別的物件給父類(lèi)別的物件變量,或者說(shuō)拿一個(gè)子類(lèi)別的物件當(dāng)父類(lèi)別的物件來(lái)用,如Database裡db.add一樣,我們可以拿一個(gè)CD或DVD給item這個(gè)Item類(lèi)別物件變數(shù)。向上造型總是安全的。

------------------------------------------------ -------------------------------------------------- -----------------

接著是多態(tài):

在Database運(yùn)作的過(guò)程中,第15行,有句item.print

Java基礎(chǔ)學(xué)習(xí)我們可以看到這是在呼叫Item裡的print函數(shù),不過(guò)我們從程式運(yùn)行結(jié)果來(lái)看彷彿不是這麼回事,運(yùn)行結(jié)果顯示明明是呼叫CD.print();和DVD.print();的結(jié)果。

Item.print():

Java基礎(chǔ)學(xué)習(xí)CD.print():

Java基礎(chǔ)學(xué)習(xí)DVD.print():

Java基礎(chǔ)學(xué)習(xí)DVD.print():

Java基礎(chǔ)學(xué)習(xí)當(dāng)類(lèi)別裡有相同名稱(chēng)的函數(shù)時(shí),子類(lèi)別裡的函數(shù)會(huì)去覆蓋(override)從父類(lèi)別繼承來(lái)的那個(gè)同名函數(shù),所以從父類(lèi)別來(lái)的那個(gè)函數(shù)就會(huì)隱藏起來(lái)不起作用。然後Database第15行裡的item會(huì)去看它管理的是什麼它自己的Item類(lèi)別還是他的子類(lèi),如果是它的子類(lèi),那麼這個(gè)print函數(shù)就會(huì)用它子類(lèi)別那裡的print函數(shù)。

??????
本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願(yuàn)投稿,版權(quán)歸原作者所有。本站不承擔(dān)相應(yīng)的法律責(zé)任。如發(fā)現(xiàn)涉嫌抄襲或侵權(quán)的內(nèi)容,請(qǐng)聯(lián)絡(luò)admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費(fèi)脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅(qū)動(dòng)的應(yīng)用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線(xiàn)上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費(fèi)的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費(fèi)的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強(qiáng)大的PHP整合開(kāi)發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺(jué)化網(wǎng)頁(yè)開(kāi)發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)程式碼編輯軟體(SublimeText3)

熱門(mén)話(huà)題