原样,它确实编译。
Bug =在同一行上打印品种和声明的语句。由于某种原因无法摆脱这个错误
Bug =无法获取编译和打印的结果逻辑 console(newb)
有一些例子有点像我的帖子,但他们真的没有做任何事情来帮助,因为他们并不完全是我认为我应该去的地方。一个工作完美,但使用和阵列,我们甚至没有在我的课程中的那一部分。这是老师的指示和他给我的一些提示,然后我的代码到目前为止。其中一些是注释掉的,因为我在打印结果之前试图摆脱错误。此外,为了方便,我确实更改了一些名称,直到作业完成。对不起任何格式问题。有什么建议吗?
按此顺序:
驱动程序文件代码
创建一个名为Cat的新类,其中包含以下功能
新类具有以下属性: name - 类型String 年龄 - 类型整数 重量 - 型双 品种 - 类型字符串 declawed - 类型boolean - true表示没有爪子,false表示有爪子
确保您的类具有合理的构造函数,访问器和mutator方法。每个成员变量必须至少有一个独立的访问者和一个独立的mutator。
实施例: public void setName(String name)mutator用于设置名称 public void setBreed(String breed)mutator用于设置品种 public void set(布尔声明)用于设置爪子与否 ****(你必须重载set方法来设置deClawed值)**这是什么?** public String getName()访问器用于获取名称 public String getBreed()访问器用于获取品种 public boolean getBoolean()访问用于获取声明的值
在引用当前对象的每个实例变量或实例方法时,请确保在此类中使用“this”引用。
教师的提示: 对于你的IF语句,你只会使用Age和Claw方法 然后在你打印出所有东西的最后,你将需要其余的 方法。您可以创建显示方法以显示所有打印 每个类别的陈述,如姓名,年龄等......然后就变成了 更容易在main方法中显示 - 这将是你的代码 主要方法:
System.out.println("输入的cat数据为:\ n"); myCat1.display(); myCat2.display(); myCat3.display();
类文件的代码
/ ********************************************** ************************************************** * * Cat.java * Jonathan Nees * *茶。 6 OOP ************************************************** *************** /
import java.util.Scanner;
public class Cat
{
private String name;
private int age;
private double weight;
private String breed;
private boolean declawed;
public void setName(String name)
{
this.name = name;
}
public String getName()
{
return this.name;
}
public void setAge(int age)
{
this.age = age;
}
public int getAge()
{
return this.age;
}
public void setWeight(double weight)
{
this.weight = weight;
}
public double getWeight()
{
return this.weight;
}
public void setBreed(String breed)
{
this.breed = breed;
}
public String getBreed()
{
return this.breed;
}
public void setDeclawed(boolean declawed)
{
this.declawed = declawed;
}
public boolean isDeclawed()
{
if (!this.declawed == false)
{
return true;
}
else
{
return false;
}
}
Scanner input = new Scanner(System.in);
public void display()
{
System.out.print("Enter the name of Cat: ");
this.name = input.nextLine();
System.out.print("Enter the age of Cat: ");
this.age = input.nextInt();
System.out.print("Enter the weight of Cat: ");
this.weight = input.nextDouble();
System.out.print("Enter the breed of Cat: ");
this.breed = input.nextLine();
System.out.print("Does the cat have claws? True or False?: ");
this.declawed = input.nextBoolean();
}
}
编写一个驱动程序,读取3只猫类型的宠物,并打印出所有带有爪子且超过3岁的猫的名字和年龄。
应阅读以下信息: 名称(作为字符串) 年龄(以int为单位) 重量(双倍) 品种(如弦) DeClawed(作为布尔值)
确保使用存取方法检查年龄和爪子。
/ ********************************************** ************************************************** * * CatDriver.java * Jonathan Nees * *茶。 6 OOP驱动程序 ************************************************** *************** /
import java.util.Scanner;
public class CatDriver
{
public static void main(String[] args)
{
Scanner input = new Scanner(System.in);
Cat Cat1 = new Cat();
Cat Cat2 = new Cat();
Cat Cat3 = new Cat();
Cat1.display();
System.out.println();
Cat2.display();
System.out.println();
Cat3.display();
System.out.println();
//*for (int i=0; i<3; i++)
//{
// System.out.println("The cats over 3 with claws are:");
// if ((!this.age() <= 3) && (this.Declawed() == true))
// {
// System.out.println("Name: " + this.name);
// System.out.println("Age: " + this.age + "Years Old");
// }
//}
}
}
就像我说的那样,在评估结果之前我已经评论了一些错误。
它几乎可以工作!几分...
答案 0 :(得分:0)
我能够让它发挥作用。我使用setter方法重写了你的显示方法,它就可以了。另外,你的声明的setter方法有点混乱,所以你可能想修改它。 试试这个:
public void display()
{
System.out.print("Enter the name of Cat: ");
this.setName(input.nextLine());
System.out.print("Enter the age of Cat: ");
this.setAge(Integer.valueOf(input.nextLine()));
System.out.print("Enter the weight of Cat: ");
this.setWeight(Double.valueOf(input.nextLine()));
System.out.print("Enter the breed of Cat: ");
this.setBreed(input.nextLine());
System.out.print("Does the cat have claws? True or False?: ");
this.setDeclawed(!Boolean.valueOf(input.nextLine()));
}