当我编译时,我得到:错误,预期;喵喵()之后。这段代码有什么问题
public class Cat
{
public static void main(String[]args){
String name;
String colour;
int age;
Cat c = new Cat();
c.nome = "Muffin";
System.out.println(c.name);
meow(){
System.out.println("Meow! Meow!");
}
}
}
答案 0 :(得分:2)
看起来您将Cat
的属性定义为main方法的局部变量,而不是类的成员。
并且您的meow
方法不应该在main方法中,并且它应该具有返回类型。
public class Cat
{
String name;
String colour;
int age;
public static void main(String[]args)
{
Cat c = new Cat();
c.name = "Muffin";
System.out.println(c.name);
}
void meow()
{
System.out.println("Meow! Meow!");
}
}
答案 1 :(得分:0)
您似乎正在“尝试”在方法中定义方法,这在Java中是非法的
应该更像......
public class Cat
{
public static void main(String[]args){
String name;
String colour;
int age;
Cat c = new Cat();
c.nome = "Muffin";
System.out.println(c.name);
c.meow();
}
public void meow(){
System.out.println("Meow! Meow!");
}
}
现在,已经说过,Cat
的属性被定义为main方法中的局部变量,并且实际上不是Cat
类的一部分,应该定义为public class Cat
{
String name;
String colour;
int age;
public static void main(String[]args){
Cat c = new Cat();
c.nome = "Muffin";
System.out.println(c.name);
c.meow();
}
public void meow(){
System.out.println("Meow! Meow!");
}
}
类的一部分。 class(或实例字段)
Cat
好的,看起来更好,但还有一个问题,字段nome在c.name = "Muffin";
中未定义,可能应该是名称
{{1}}
您要了解的下一件事是保护类字段值并通过方法管理访问,通常称为encapsulation
答案 2 :(得分:0)
这堂课里面有几个错误。让我们仔细看看:
1)您已在主要功能中定义了Cat的属性,但您想要的是将它们作为对象属性。 main方法的静态上下文是在没有具体对象的情况下使用(并且对于每个实例化的类都是相同的(值和方法)
2)您已分配到c.nome而不是c.name
3)meow()错过了返回类型(除非对于构造函数(喵喵不是),否则这是必要的)
4)meow()必须在main方法之外
public class Cat {
String name;
String colour;
int age;
public static void main(String[]args){
Cat c = new Cat();
c.name = "Muffin";
System.out.println(c.name);
}
void meow() {
System.out.println("Meow! Meow!");
}
}