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

首頁 類庫下載 java類庫 Java基礎學習

Java基礎學習

Oct 09, 2016 pm 04:50 PM

現(xiàn)在我們要做這么一個媒體庫,用來存放CD和DVD。可以往媒體庫里添加CD和DVD,還可以列出來媒體庫里所有的CD和DVD。

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

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

這樣我們就要做以下四個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("黑夢",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

運行:

1.jpg

這里有兩個概念:

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

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

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

然后是多態(tài):

在Database運行的過程中,第15行,有句item.print

1.jpg

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

Item.print():

1.jpg

CD.print():

1.jpg

DVD.print():

1.jpg

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

1.jpg

本站聲明
本文內(nèi)容由網(wǎng)友自發(fā)貢獻,版權歸原作者所有,本站不承擔相應法律責任。如您發(fā)現(xiàn)有涉嫌抄襲侵權的內(nèi)容,請聯(lián)系admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣服圖片

Undresser.AI Undress

Undresser.AI Undress

人工智能驅(qū)動的應用程序,用于創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI脫衣機

Video Face Swap

Video Face Swap

使用我們完全免費的人工智能換臉工具輕松在任何視頻中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的代碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

功能強大的PHP集成開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

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

SublimeText3 Mac版

SublimeText3 Mac版

神級代碼編輯軟件(SublimeText3)