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

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

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

Oct 09, 2016 pm 04:50 PM

現(xiàn)在我們要做這么一個(gè)媒體庫(kù),用來存放CD和DVD??梢酝襟w庫(kù)里添加CD和DVD,還可以列出來媒體庫(kù)里所有的CD和DVD。

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

然后我們還需要做一個(gè)類(對(duì)象)來管理它們,這個(gè)對(duì)象有一個(gè)ArrayList的成員變量當(dāng)作媒體庫(kù),有一個(gè)add函數(shù)用來添加CD或DVD,還得有個(gè)list函數(shù)用來列出媒體庫(kù)里的所有東西。我們給這個(gè)類起名Database。

這樣我們就要做以下四個(gè)java源文件:

1.jpg

源碼:

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)行:

1.jpg

這里有兩個(gè)概念:

多態(tài)變量:在這里可以說是,一個(gè)父類下面有兩個(gè)子類,在Database里第9行:Item item,定義了一個(gè)對(duì)象變量item,這個(gè)item是Item類,這個(gè)item還只是一個(gè)變量,是一個(gè)對(duì)象的管理者,但還沒有具體要去管的那個(gè)對(duì)象。在main函數(shù)里可以去給item賦一個(gè)CD,也可以給他賦DVD,所以這個(gè)item變量是要根據(jù)程序運(yùn)行的時(shí)候才能知道他要管理的那個(gè)對(duì)象是什么。這個(gè)item就是多態(tài)變量。

向上造型:想上造型是指拿一個(gè)子類的對(duì)象給父類的對(duì)象變量,或者說拿一個(gè)子類的對(duì)象當(dāng)父類的對(duì)象來用,如Database里db.add一樣,我們可以拿一個(gè)CD或DVD給item這個(gè)Item類對(duì)象變量。向上造型總是安全的。

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

然后是多態(tài):

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

1.jpg

我們可以看到這是在調(diào)用Item里的print函數(shù),不過我們從程序運(yùn)行結(jié)果來看仿佛不是這么回事,運(yùn)行結(jié)果顯示明明是調(diào)用CD.print();和DVD.print();的結(jié)果。

Item.print():

1.jpg

CD.print():

1.jpg

DVD.print():

1.jpg

這就要用多態(tài)去解釋:首先當(dāng)子類和父類里有相同名稱的函數(shù)時(shí),子類里的函數(shù)會(huì)去覆蓋(override)從父類那里繼承來的那個(gè)同名函數(shù),于是從父類來的那個(gè)函數(shù)就會(huì)隱藏起來不起作用。然后Database第15行里的item會(huì)去看它管理的是什么它自己的Item類還是他的子類,如果是它的子類,那么這個(gè)print函數(shù)就會(huì)用它子類那里的print函數(shù)。

1.jpg

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻(xiàn),版權(quán)歸原作者所有,本站不承擔(dān)相應(yīng)法律責(zé)任。如您發(fā)現(xiàn)有涉嫌抄襲侵權(quán)的內(nèi)容,請(qǐng)聯(lián)系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

用于從照片中去除衣服的在線人工智能工具。

Clothoff.io

Clothoff.io

AI脫衣機(jī)

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集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

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

SublimeText3 Mac版

SublimeText3 Mac版

神級(jí)代碼編輯軟件(SublimeText3)