gpt4 book ai didi

java - Java 对象结构方面的帮助

转载 作者:太空宇宙 更新时间:2023-11-04 07:51:31 25 4
gpt4 key购买 nike

我必须编写一个封装类(class)的类。假设一门类(class)具有三个属性:代码名称、描述和学分。我必须包含构造函数、访问器和修改器以及方法 toStringequals

作为本次作业的一部分,我必须编写一个客户端类来测试 Course 类中的所有方法。我相信我已经完成了类(class)类(class),但在编写客户端时遇到困难。对于我尝试的所有操作,我收到错误“无法从静态上下文引用非静态变量”。我做错了什么?

好的,我已经重写了我的代码。我仍然不确定如何让更改器(mutator)方法发挥作用,也不知道如何要求用户输入来设置新类(class)的所有值,然后在使用访问器和更改器(mutator)方法时将它们输出到屏幕。请帮助我。谢谢

public class ManualClass 
{
public static void main(String[] args)
{
Course compSci = new Test2().new Course("Comp Sci","IT1101",3.0);
System.out.println(compSci+ "\n");


Course dave = new Test2().new Course("Hist1111","World History",4.0);
System.out.print(dave.getCourseCode() + " " + dave.getDescription()
+ " " + dave.getCreditHours() + "\n");
}

public class Course
{
//Instance Variables
private String courseCode;
private String description;
private Double creditHours;

public Course()
{
courseCode = null;
creditHours = 0.0;
description = null;
}

//Constructor
public Course(String courseCode, String description, double creditHours)
{
this.courseCode = courseCode;
this.description = description;
this.creditHours = creditHours;
}

//Accessors (Getters)
public String getCourseCode()
{
return courseCode;
}

public String getDescription()
{
return description;
}

public double getCreditHours()
{
return creditHours;
}

//Mutators (Setters)
public void setCourseCode(String CourseCode)
{
this.courseCode = courseCode;
}

public void setDescription(String description)
{
this.description = description;
}

public void setCreditHours(double creditHours)
{
this.creditHours = creditHours;
}

// toString Method
public String toString()
{
DecimalFormat creditsFormat = new DecimalFormat ("#0.0");

return "Code: " + courseCode + "; Description: "
+ description + "; creditHours: "
+ creditsFormat.format(creditHours);
}

// Equals Method
public boolean equals(Object o)
{
if (!(o instanceof Course))
return false;

else
{
Course objCourse = (Course) o;
if (courseCode.equals(objCourse.courseCode)
&& description == objCourse.description
&& creditHours == objCourse.creditHours)

return true;

else
return false;
}
}
}
}

最佳答案

由于Course是一个非静态内部类,因此您需要使用Manual_Class实例创建Course的合格实例:

Course csi = new Manual_Class().new Course("CSI", "Comp Sci", 3.0);

或者,您可以将 Course 的类声明移出顶级类 Manual_Class 的范围。在这种情况下,您可以使用当前的语法。

此外,每个文件只能有一个 public 类声明,它应该是您的顶级类。您可以从 Course 类声明中删除该关键字。

关于java - Java 对象结构方面的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14385093/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com