Main如何访问类



我是编码新手,我制作了这个程序,允许某人输入歌曲名称、艺术家、专辑和发行年份,然后我就可以打印出来。所以,虽然我可以编写程序,但我不明白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());
    }
}

您在同一个包中定义了两个类。在同一个包中定义的类可以用简单的名称引用它们自己,而不需要完全限定的名称(例如project1.CD)或导入语句(例如import project1.*)。以下是有关Java包的更多信息。

CDTest类可以在CD类上执行方法,因为方法是public——任何类都可以访问。这与CDTest假设访问CD类的成员形成对比。不能,因为他们是private。以下是有关访问级别(如publicprivate )的更多信息

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

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

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

您可以访问CD类,因为它与您的main方法在同一个包中,所以您可以在不显式导入其他类的情况下进行访问。

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

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

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

相关内容

  • 没有找到相关文章