簡體   English   中英

Main如何上課?

[英]How does Main have access to class?

我是編碼的新手,我制作了這個程序,允許某人輸入歌曲名稱,歌手,專輯,發行年份,然后我將其打印出來。 因此,盡管我可以編寫程序,但我不理解main如何獲得對CD類的訪問權限。 電腦如何知道我正在從我的另一門課制作CD? 為什么我能夠使用CD類中的訪問器方法? 抱歉,這聽起來很愚蠢,但我想了解為什么會起作用! 謝謝您的答復。

謝謝所有回答的人! 現在有道理!

package project1;

public class CD {
    private String song;
    private String artist;
    private String album;
    private int year;

    public CD(String givenSong, String givenArtist, String givenAlbum, int givenYear)
    {
        song=givenSong;
        artist=givenArtist;
        album=givenAlbum;
        year=givenYear;
    }
    public String getSong(){
        return song;
    }
    public int getYear(){
        return year;
    }
    public String getArtist(){
        return artist;
    }
    public String getAlbum(){
        return album;
    }
}

和主要..

package project1;

public class CDTest {
    public static void main(String[] args){
        CD cd1= new CD("Sad machine","Porter Robinson","Worlds",2014);
        System.out.print(cd1.getSong()+", ");
        System.out.print(cd1.getArtist()+", ");
        System.out.print(cd1.getAlbum()+", ");
        System.out.print(cd1.getYear());
    }

}

因為您已經在同一個包中聲明了它們,並且它們被一起編譯,並且都存在於類路徑中。 如果它們位於不同的程序包中,則需要輸入import語句。

您在同一個包中定義了兩個類。 同一包中定義的類可以使用簡單名稱進行引用,而無需完全限定的名稱(例如project1.CD )或import語句(例如import project1.* )。 這是有關Java軟件包的更多信息

CDTest類可以在CD類上執行方法,因為這些方法是public -任何類都可以訪問。 這與CDTest假設訪問CD類的成員形成對比。 不能,因為它們是private 這是有關訪問級別(如publicprivate的更多信息

這兩個類在同一包中,並且CD類上的方法也標記為“ public”,因此可以訪問。 如果有時間的話,請看一下Java Trail,它們非常基礎,並且逐漸增加。 他們有一些非常好的例子和解釋

-http://docs.oracle.com/javase/tutorial/getStarted/index.html

您可以訪問CD類,因為它與您的main方法位於同一個包中,因此您無需顯式導入其他類即可進行訪問。

之所以可以在cd1上調用方法,是因為您已經創建了該對象的實例(使用new關鍵字時,您創建了CD類的實例,並且已經將該實例命名為cd1 。)。

CD中的方法可從cd1獲得,因為您已將所有方法的訪問修飾符設置為public public允許其他對象無限制地訪問方法。

另外,不能直接從CD調用這些公共方法的原因是因為這些方法未標記為static static方法不能直接從類中調用,而只能從類的實例中調用。 這些方法通常稱為“實例方法”,而不是“靜態方法”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM