[英]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
。 這是有關訪問級別(如public
和private
的更多信息
這兩個類在同一包中,並且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.