Main如何访问课程?

时间:2014-09-11 22:53:51

标签: java class methods main accessor

我是编码的新手,我制作了这个程序,允许有人输入歌曲名称,艺术家,专辑,发行年份,我只是将其打印出来。因此,虽然我可以编写程序,但我不明白主要如何访问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());
    }

}

4 个答案:

答案 0 :(得分:2)

因为你已经在同一个包中声明它们并且它们被编译在一起并且都存在于类路径中。如果它们在不同的包中,则需要有一个import语句。

答案 1 :(得分:2)

您在同一个包中定义了两个类。在同一个包中定义的类可以用简单的名称引用自己,而不需要完全限定的名称(例如project1.CD)或import语句(例如import project1.*)。 Here's more information about Java packages

CDTest类可以在CD类上执行方法,因为方法是public - 任何类都可以访问。这与假设访问CDTest类成员的CD形成对比。它不能,因为它们是privateHere's more information about access levels such as public and private

答案 2 :(得分:1)

两个类都在同一个包中,CD类上的方法也标记为" public",因此它们可以访问。如果你有时间,请查看Java Trails,它们从非常基础开始并逐渐增加。他们有一些非常好的例子和解释

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

答案 3 :(得分:1)

您可以访问CD类,因为它与main方法位于同一个包中,因此您无需明确导入其他类即可访问。

您可以在cd1上调用方法的原因是您创建了对象的实例(当您使用new关键字时,您创建了CD类的实例,并且您已将该实例命名为cd1。)。

CD中的方法可从cd1获取,因为您已在所有方法上将访问修饰符设置为publicpublic允许其他对象无限制地访问方法。

此外,您无法直接从CD调用这些公开方法的原因是因为这些方法未标记为static。非static方法不能直接从类中调用,而只能从类的实例调用。这些方法通常被称为"实例方法"而不是"静态方法"。