Java 这个代码怎么了?(猫类)

Java 这个代码怎么了?(猫类),java,Java,当我编译时,我得到:error,expected;在喵喵之后。这个代码怎么了 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.na

当我编译时,我得到:error,expected;在喵喵之后。这个代码怎么了

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!");
        }
    }
}

看起来您将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!");
     }
 }

您似乎试图在一个方法中用定义一个方法,这在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!");
    }
}
好的,看起来好多了,但还有一个问题,字段nome在Cat中没有定义,可能应该是name

c.name = "Muffin";

接下来您要了解的是保护类字段值并通过方法(通常称为

)管理访问。该类中有几个错误。让我们仔细看看:

1您已经在main函数中定义了Cat的属性,但是您希望将它们作为对象属性。main方法的静态上下文用于不使用具体对象的情况,并且对于每个实例化的类,其值和方法相同

2您分配给c.nome而不是c.name

3 meow忽略了必需的返回类型,除非对于meow不是必需的构造函数

4喵喵必须在主方法之外

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点、第3点和第4点。对于2,我是意大利人,意大利语的名字是nome:。我是个新手,我犯了很多错误……我们都开始过一次;非常感谢你。我使用您的帮助来处理另一个具有相同问题的代码。你帮了大忙,很高兴能帮上忙。别忘了你可以选择有用的答案,当你可以选择问题旁边的勾选框时,你应该接受最有用的答案;