运行包含两个类的Java程序
我想知道如何通过纠正错误来执行这个java程序 代码是:运行包含两个类的Java程序,java,inner-classes,Java,Inner Classes,我想知道如何通过纠正错误来执行这个java程序 代码是: import java.io.*; class start { public static void main(String args[]) { System.out.println("STARTING JAVA PROGRAM"); } } class finish { System.out.println("FINISH"); } 执行此程序产生的错误为: D:\Downloads\PRO>
import java.io.*;
class start
{
public static void main(String args[])
{
System.out.println("STARTING JAVA PROGRAM");
}
}
class finish
{
System.out.println("FINISH");
}
执行此程序产生的错误为:
D:\Downloads\PRO>javac start.java
start.java:10: error: <identifier> expected
System.out.println("FINISH");
start.java:10: error: illegal start of type
System.out.println("FINISH");
D:\Downloads\PRO>javac start.java
java:10:错误:应为
系统输出打印(“完成”);
java:10:错误:类型的非法开始
系统输出打印(“完成”);
我们可以在java程序中允许两个类吗?有人能帮我吗。您不能在类级别使用
System.out.println()
class finish{
System.out.println("FINISH"); // you can't do this.
}
可以在方法内部使用
class finish{
public void myMethod(){
System.out.println("FINISH"); // now this is inside a method.
}
}
你也可以用下面的方法。将非静态初始值设定项
或静态块
class finish{
{ // non-static initializers
System.out.println("FINISH"); // now this is inside a block.
}
}
您还可以在构造函数中使用更多的
System.out.println()
。您不能直接在类中编写System.out.println(),
您需要一个方法或构造函数,通过创建该类的对象,然后调用相应的方法来调用,如果我理解您的问题,您需要一个文件中包含两个类,并且希望从包含main方法的类中调用另一个类的方法。
您可以编写如下所示的代码来调用其他类的方法
class start
{
public static void main(String args[])
{
System.out.println("STARTING JAVA PROGRAM");
//finish.myMethod();
finish f = new finish(); //this will call myMethod() from static block
}
}
class finish
{
static
{
myMethod();
}
public static void myMethod()
{
System.out.println("FINISH");
}
}
输出:
STARTING JAVA PROGRAM
FINISH
我们可以在java程序中有两个类。但在你们的例子中,你们已经写出了这个系统。。。。。在初始化块/方法/静态块/构造函数之外,在java@PrakharAsthana:哦。我知道更新了帖子。也许你也想使用像Eclipse这样的开发环境。你能解释一下后一种环境的含义吗(带语句的类在块中,不带方法)?它什么时候执行?@Thomas它是一个Java类,带有一个
非静态初始值设定项
。这将在每个构造函数之前执行,但在调用super()之后执行。Ruchira Gayan Ranaweera:但正如你所说,我已经将System.out.println
语句放在一个方法中,但它仍然没有显示“FINISH”@justin将System.out.println
放入方法中不会给你“完成”。您需要调用该方法。例如:public类Start{public static void main(String args[]){System.out.println(“启动JAVA程序”);Finish Finish=new Finish();Finish.myMethod();}}类Finish{public void myMethod(){System.out.println(“Finish”);}
@RuchiraGayanRanaweera:Oh.我调用了该方法,但再次出现错误,错误是:错误:无效的方法声明;返回类型必需
。我添加到程序中的代码(更具体地说是在类finish中)是方法定义+方法();(函数调用)。我们是否需要为该方法添加可见性修饰符,或者是否存在任何其他问题?:谢谢。这确实是一个很好的答案,但我想看看是否可以使用相同的代码从类结束而不是类开始运行该方法。您能说这是否可行吗。您的意思是说,如果我在类开始时有方法,请说a
你想从类finish调用方法A
:我不是这个意思。我更希望方法的A
定义和方法的A
调用都在同一个类finish中。而且类start应该有静态main方法。我们可以编写这样的程序吗?@justin,你不能调用该方法如果你把它放在同一个类中执行?:是的。但是main方法如何调用方法A
。我认为main方法在调用方法A
时也没有关于方法A
的任何信息,不是吗?那么为什么存在方法A
的类不能调用方法A
?