2 回答
TA贡献1799条经验 获得超6个赞
除了 Dmitry 指出的错误外,您main还有以下错误:
public static void main(String args[]){
//Create lions and assign attributes
Lion lion1 = new Lion();
lion1.numTeeth = 12;
lion1.spots = 1;
lion1. weight = 86;
lion1.age = 7;
lion1.cubs = 3;
numTeeth spots weight并且所有其他字段都设置为私有。您的Lion班级无法直接访问这些字段。你应该使用你的 getters 和 setters 你从Animal
同样在打印属性时Lion:
//Print attributes
System.out.println("Lion1 attributes:");
System.out.println("Number of teeth : " + numTeeth);
System.out.println("Number of spots : " + spots);
System.out.println("Weight of lion : " + weight + " kgs");
System.out.println("Age : " + age);
System.out.println("No of cubs : " + cubs);
System.out.println(" ");
您的字段是对象的属性。尝试直接打印字段会给你一个编译器错误,因为这些是你的Lion1对象的属性。您需要像这样使用点运算符:
System.out.println("Number of Teeth" + Lion1.getNumTeeth());
TA贡献1806条经验 获得超5个赞
是的,你的代码中有很多问题会在编译阶段得到。也许您错误地指定了示例。因此,请提供您的问题的详细信息。
我会指出一些显而易见的:
你声明了局部变量
年龄 = 0; 国际幼崽= 0;
在实际上不使用Lion
新属性扩展类的构造函数中。将这些属性作为字段添加到类中Animal
:
private int age = 0; private int cubs = 0;
然后在类的构造函数中初始化它们Lion
(如果需要)。
在方法中
public static void main(String args[])
,您试图使用 它没有的Lion
类字段。age, cubs
见第 1 点。该类有
public Integer getWeight()
2Liontype
个错误。首先,变量weight
未定义,其次缺少返回语句,尽管该方法必须返回一个Integer
值。
添加回答
举报