我是Java的真正初学者。我被推荐了我开始阅读的Head First Java书。我按照书中的说明操作。除了记事本和cmd,我没有使用任何其他东西。 这一切都运行正常(在记事本中输入代码,将其保存为“.java”,使用javac编译器进行编译,使用java命令运行程序)直到我开始第二章:访问Objectville。
现在我陷入两难境地:如何创建相互交互的类? 如果我创建两个类并在其中任何一个上尝试javac,则错误是:“缺少return语句”。
非常感谢任何帮助。在此先感谢,感恩, 亚历克斯。
答案 0 :(得分:3)
如果要在不使用记事本的情况下创建两个相互交互的类,则只需在同一文件夹中创建两个类。这是最简单的方法。
您也可以一次编译两个源文件,如下所示。
javac a.java b.java
这将编译两个java文件。
答案 1 :(得分:2)
如果您收到“缺少返回语句”,则会收到编译时错误而不是运行时错误。
您获得的编译时错误表明您的某个方法需要一个return语句,但该方法没有。要么返回预期的内容,要么将方法签名更改为void,这样它就不会期望返回值。
以下是如何编写彼此交互的多个对象的示例:
Q19597109.java
/**
* http://stackoverflow.com/questions/19597109/problems-compiling-classes-in-chapter-two-classes-and-objects-of-head-first-jav
*/
public class Q19597109 {
public static void main(String... args) {
Person person = new Person();
person.setName("Bob");
Greeter greeter = new Greeter(person);
greeter.sayHello();
}
}
Person.java
/**
* http://stackoverflow.com/questions/19597109/problems-compiling-classes-in-chapter-two-classes-and-objects-of-head-first-jav
*/
public class Person {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return name;
}
}
Greeter.java
/**
* http://stackoverflow.com/questions/19597109/problems-compiling-classes-in-chapter-two-classes-and-objects-of-head-first-jav
*/
public class Greeter {
private final Person person;
public Greeter(Person person) {
this.person = person;
}
public void sayHello() {
System.out.println("Hello " + person);
}
}
如果这些文件中的每一个都在同一目录中,那么您可以这样做:
javac *.java
java Q19597109
输出结果为:
Hello Bob
答案 2 :(得分:2)
您需要提供您遇到问题的源代码。使用{}代码注释来更好地呈现它。
现在说你的问题与2个课程没有关系,因为你有一个不返回的课程。您有编译错误而不是运行时错误。如果我有一个像
这样的课程public int add(int a, int b) {
int c = a + b;
return c;
}
在公开承诺编译器之后你会看到“int”我将提供一个返回值。 “返回c”部分是实现这一承诺的部分。你几乎肯定错过了“c”(在这个例子中。
请提供代码,我们可以提供更多帮助
答案 3 :(得分:2)
如果你得到'缺少return语句',那是因为你的方法是以非void返回类型声明的。比如:
public someType someMethod(){
...
}
在它的身体里面没有回复声明。 你可以做两件事:
将someType更改为void或添加return someValue;你的方法
答案 4 :(得分:-1)
班级狗{
int size;
String breed;
String name;
Void bark(){
System.out.println("Ham! Ham!");
} }
//这是第一类