我有一个文件,main.java和同一个包中的其他几个文件。每个文件都是something.class,我想执行它们,但是我在查找如何从something.java文件中实例化该类时遇到问题,然后执行它。我是java的新手,这只是我写的第二个程序所以请温柔。
我正在使用的其中一个文件是startmessage.java,这是我尝试过的:
Object StartMessage = new StartMessage();
我甚至都不知道这是否正确。非常感谢任何和所有的帮助。
答案 0 :(得分:2)
类文件是已编译的类。 Java类的源代码通常放在以自己命名的文件中。 例如,对于startmessage类,您将使用StartMessage.java。
从另一个文件中,您可以导入该类,然后您可以将其实例化为该类型的对象。
例如:
package example;
import StartMessage;
public class Example {
public static void main (String args[]) {
StartMessage startMessage = new StartMessage();
}
}
答案 1 :(得分:0)
案例很重要。
如果您的文件确实被称为startmessage.java,并且您已编译它,并且您想要创建它的实例,那么请尝试:
startmessage sm = new startmessage();
答案 2 :(得分:0)
您必须在整个代码中导入要使用的Java类:
package <package_name>
import <location_of_class>
像这样:
package michael;
import parent.child.*; //use any method with *
有关导入和包的有用链接:http://www.leepoint.net/notes-java/language/10basics/import.html
答案 3 :(得分:0)
在Java中,文件必须在它们包含的类之后完全命名。在大多数情况下,这是一个区分大小写的规则。看看吧。
答案 4 :(得分:0)
该代码段将编译(假设您有一个带默认构造函数的StartMessage类),但它不一定正确。通常,您需要以下列方式声明对象:
<type> <name> = new <type>(<args>);
通过这种设计,您的代码段将以下列形式更正确:
StartMessage message = new StartMessage();
但是,因为StartMessage是Object的子类,并且变量几乎可以命名,所以原始代码编译得很好。
答案 5 :(得分:0)
要执行预编译的java类(.class),它应该有一个要执行的main方法 它可以使用命令java运行 http://www2.cs.uic.edu/~sloan/CLASSES/java/
对于第二个问题,请查看以下教程: http://docs.oracle.com/javase/tutorial/java/javaOO/index.html
答案 6 :(得分:0)
嗯,首先你的文件名必须与类名一模一样。例如:如果您将文件命名为startmessage.java
,那么您的类应如下所示:
public class startmessage { }
但它不是命名java类的方法。正确的方法是:
public class StartMessage {}
要实例化一个类,你应该这样做:
StartMessage message = new StartMessage();
如果你喜欢这样:
Object message = new StartMessage();
您将无法访问StartMessage
课程的方法。唯一的方法可以从Object
类获得。
答案 7 :(得分: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而不是Object,例如
StartMessage myVariable = new StartMessage();