2015-04-26 24 views
-3

即時通訊在java中的noob。 我從vogella.com學習java,在那裏我看到一個有兩個類的例子。 可以在一個java文件有兩個類名(我不這麼認爲,因爲文件被認爲具有類名) 頭等艙:java程序中包名稱的用途和用途在哪裏?一個.java文件可以有兩個類?

package com.vogella.javastarter.exercises1; 

class Person {String firstName; 
    String lastName; 
int age; 

public Person(String a, String b, int value) { 
    firstName = a; 
    lastName = b; 
age = value; 
} 

public String getFirstName() { 
    return firstName; 
} 

public void setFirstName(String firstName) { 
    this.firstName = firstName; 
} 

public String getLastName() { 
    return lastName; 
} 

public void setLastName(String lastName) { 
    this.lastName = lastName; 
} 

public int getAge() { 
    return age; 
} 

public void setAge(int age) { 
    this.age = age; 
} 

@Override 
public String toString() { 
    return firstName + " " + lastName; 
} 

}

和第二類是:

package com.vogella.javastarter.exercises1; 



public class Main { 
    public static void main(String[] args) { 
    Person person = new Person("Jim", "Knopf", 21); 
    Person p2 = new Person("Jill", "Sanders", 20); 
    // Jill gets married to Jim 
    // and takes his name 
    p2.setLastName("Knopf"); 
    System.out.println(p2); 
    } 
} 

我該如何編譯兩個單獨的.java文件,因爲第一個文件缺少main()方法。第二個文件不會連接到'class Person'文件。

最重要的是當我看到單個函數調用(setLastName()函數)時,類Person的函數/方法如何執行。 叫我笨,但請清除我的疑惑。

+0

請閱讀更多關於Java這是Java的基礎知識 – Sybren

+0

只要購買,然後閱讀本書[書](http://www.amazon.com/Java-The-Complete-Reference-Series/dp/0071808558)。 .. –

回答

0

我該如何編譯兩個單獨的.java文件,因爲第一個文件缺少main()方法。第二個文件並不連接到'class Person'文件。

如果兩個文件(Person和Main)在同一個文件夾中,它們可以互相引用。編譯時,確保首先編譯Person,因爲Main包含對它的引用。如果你首先編譯Main,那麼它就不會知道什麼是「Person」。

最重要的是,當我看到一個函數調用(setLastName()函數)時,類Person的函數/方法如何執行。叫我笨,但請清除我的懷疑。

我不知道你問什麼這裏 -

0

在Java中,你可以有互相依賴的許多文件。例如,您的Person類沒有主要方法,因爲它不能單獨運行。這就是第二個文件存在的原因。爲了運行這個程序,編譯兩者(如Martin M J所述,首先編譯Main.java),將它們放在同一個文件夾中,然後運行Main。由於這兩個文件都在同一個文件夾中,所以Main可以使用所有對象都具有的方法。

至於你的問題的第二部分,Person類中的大多數方法沒有被調用。他們只是爲了完整。與您的代碼狀態一樣,致電setLastName("Knopf")將姓氏p2更改爲"Knopf"。另外,構造函數在Person對象被創建時被調用,並給出它們的名字和年齡。

唯一被調用的其他方法是無形地調用的。當線System.out.println(p2)被執行時,調用方法p2。這導致println打印"Jill Knopf",因爲我們已將其名稱從"Sanders"更改爲。 Java教程的

This section更易於理解地解釋面向對象編程。實際上,這些教程總的來說是很好的參考。

相關問題