2012-10-22 180 views
1

我在同一個包中有一個文件,main.java和幾個其他文件。每個文件都是something.class,我想執行它們,但是我在定位如何從something.java文件實例化類,然後執行它時遇到問題。我是java新手,這只是我寫的第二個程序,所以請溫和。Java類實例化

一個我使用的文件是startmessage.java,這裏是我已經試過:

Object StartMessage = new StartMessage();

我甚至不知道這是正確的。任何和所有的幫助非常感謝。

+1

問題到底是什麼? –

+0

您面臨的問題是什麼? – kosa

+0

您可以從本教程開始:http://docs.oracle.com/javase/tutorial/java/javaOO/classes.html –

回答

0

案例很重要。

如果你的文件真的被稱爲startmessage.java,你已經編譯它,你要創建和它的實例,然後嘗試:

startmessage sm = new startmessage(); 
0

在Java中,文件必須在它們包含的類後面精確命名。在大多數情況下,這是一個區分大小寫的規則。一探究竟。

0

該代碼段將進行編譯(假設您有一個帶默認構造函數的StartMessage類),但它不一定是正確的。一般情況下,你會想用以下方式申報對象:

<type> <name> = new <type>(<args>); 

通過這個設計,你的代碼段將在下面的表格比較正確:

StartMessage message = new StartMessage(); 

然而,由於StartMessage是子類的對象,變量幾乎可以任意命名,你的原始代碼編譯得很好。

2

類文件是已編譯的類。 Java類的源代碼通常放在一個以自己命名的文件中。 例如,對於您的startmessage類,您可以使用StartMessage.java。

從另一個文件中,你可以導入類,然後你可以實例化一個該類型的對象。

例如:

package example; 
import StartMessage; 
public class Example { 

    public static void main (String args[]) { 
     StartMessage startMessage = new StartMessage(); 
    } 
} 
0

那麼,首先你的文件名必須與類名完全一致。對於例如: - 如果你指定的文件startmessage.java,那麼你的類應該是這樣的:

public class startmessage { } 

但它不是辦法名Java類。正確的方法是:

public class StartMessage {} 

實例化一個類,你應該這樣做:

StartMessage message = new StartMessage(); 

如果你這樣做:

Object message = new StartMessage(); 

您將無法訪問方法StartMessage類。唯一的方法將從Object課程中獲得。

0

你可以通過創建一個實例來實例化你的類(構造它)。例如:

public class MyClass 
{ 
    public void myMethod1() {System.out.println("Hello from method 1");} 
    public void myMethod2() {System.out.println("Hello from method 2");} 
} 

public class Runner 
{ 
    public static void main(String[] args) 
    { 
    // declare variable of type MyClass 
    MyClass myInstance = new MyClass(); 

    // now execute its methods 
    myInstance.myMethod1(); 

    myInstance.myMethod2(); 
    } 
} 

這將在控制檯輸出:

Hello from method 1 
Hello from method 2 

按在問題的例子,你應該使用,而不是對象StartMessage,例如

StartMessage myVariable = new StartMessage();