Ano*_*mus 1 java oop methods class
我试图在我的演员类中获取打印方法来打印在 toString() 方法中构建的字符串。但是我不断收到错误消息。(无效的方法声明,需要返回类型)
public class actor {
private String name;
private String address;
private int age;
public actor(String name, String address, int age) {
this.name = name;
this.address = address;
this.age = age;
}
public void setName (String name) {
this.name = name;
}
public void setAddress (String address) {
this.address = address;
}
public void setAge (int age) {
this.age = age;
}
public void setFilm () {
}
public String getName () {
return name;
}
public String getAddress () {
return address;
}
public String toString (String name, int age, String address){
return name+" who's "+age+" and lives in "+address;
}
public void print (){
String a = toString();
System.out.println(a);
}
print();
}
Run Code Online (Sandbox Code Playgroud)
我一直试图让这个工作很长一段时间都无济于事。
这是您遇到的麻烦的两个部分:
首先,正如其他人所提到的,您不能只运行一个方法,因为它是在您的类中声明和定义的。您实际上需要通过 main 方法直接或间接调用它。主要方法是这样写的:
public static void main(String[] args) {
// Do Stuff
}
Run Code Online (Sandbox Code Playgroud)
其次,您必须了解静态和非静态的含义。这意味着,您必须了解类和对象之间的区别。
类是蓝图。它们描述了如何构建特定类型的对象、它具有哪些属性(或字段)以及可以从中调用哪些方法。
对象是类声明的对象的实际实例。可以这样想:类就像智能汽车的蓝图。对象是智能汽车本身。
所以现在,静态与非静态。
静态意味着它属于类(蓝图),而不是实际的对象。的主要方法,你会发现,是静态的。它属于它所声明的类,而不是任何实例对象。这意味着,在其自身之外,main 方法只知道它所在的类,以及该类中的任何其他静态方法或对象。非静态的东西属于从类创建的实际对象——并且 main 方法对这些实际对象一无所知,除非它们是在 main 方法本身内部创建的。
所以,这样的事情是行不通的:
public class StuffDoer {
public void doStuff {
System.out.println("Doing Stuff");
}
public static void main(String[] args) {
doStuff(); // Won't work!
// You can't call a non-static, instance method in a static method!
}
}
Run Code Online (Sandbox Code Playgroud)
相反,您可以首先在 main 方法内创建类的新实例对象,然后从您的实例对象中调用非静态实例方法:
public class StuffDoer {
public void doStuff {
System.out.println("Doing Stuff");
}
public static void main(String[] args) {
new StuffDoer().doStuff(); // This will work,
// because now you have an instance to call the instance method off of.
}
}
Run Code Online (Sandbox Code Playgroud)
这通常不是一个好的选择,但也可以工作:
public class StuffDoer {
public static void doStuff { //Now, we make this method static
System.out.println("Doing Stuff");
}
public static void main(String[] args) {
doStuff(); // This will work now, because this method is static.
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31368 次 |
| 最近记录: |