这段代码有什么问题? (猫类)

时间:2015-01-02 21:24:53

标签: 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);

        meow(){
            System.out.println("Meow! Meow!");
        }
    }
}

3 个答案:

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