我的作业需要帮助。请注意,我自己已经完成了下面的代码,但我不确定我是否正确地完成了这项工作,特别是我的家庭作业的最后一句话。
我的家庭作业:
使用以下属性定义名为Building的类。每栋建筑都有一个平方英尺(区域)和故事。构造函数使用这两个属性创建一个Building。方法get_squarefootage(),get_stories(),set_square_footage()和set_stories()将用于获取和设置相应的属性值。方法get_info()将返回Building的所有当前属性值。 编写一个程序,让用户创建构建对象并更改其属性值。
package building_hw2;
import java.util.Scanner;
public class Building {
int area;
int stories;
int get_squarefootage() { //get values of the area
return area;
}
int get_stories() { //get values of the stories
return stories;
}
void set_square_footage(int area) { //set values of the area
this.area = area;
}
void set_stories(int stories) { //set values of the stories
this.stories = stories;
}
void get_info() { //return all the current attribute balues of the building
System.out.println("The square footage of the building is " + area);
System.out.println("The building has " + stories + " stories");
}
//main method
public static void main(String[] args) {
Building Bldg = new Building(); //create a building object
Bldg.area = 40000;
Bldg.stories = 5;
Bldg.get_info(); //display the current values of the building
//get user input to create building object
Scanner keybd = new Scanner(System.in);
System.out.println("Please enter the square footage(area) of the building : ");
int bldgArea = keybd.nextInt();
System.out.println("Please enter the stories : ");
int bldgStories = keybd.nextInt();
Bldg.set_square_footage(bldgArea);
Bldg.set_stories(bldgStories);
Bldg.get_squarefootage();
Bldg.get_stories();
Bldg.get_info();
}
}
答案 0 :(得分:3)
你似乎正确地做到了。但是我想指出一些事情。首先,您应该将成员变量声明为私有,以便更好地封装您的类。您已经有了用于更改属性值的setter方法。
int area;
int stories;
在您的主体中,您可以按如下方式设置建筑物值:
Bldg.set_square_footage_area(40000);
Bldg.set_stories(5);
对get_info的要求不是很清楚你应该问究竟应该返回什么(属性的某些字符串表示或只是打印所有属性的当前值)
答案 1 :(得分:2)
你很困惑“返回”和“打印到控制台”。 get_info()方法应该返回一些东西。它不应该打印任何东西。
字段应该是私有的。在这种情况下,方法应该是公共的,因为您希望任何其他类能够调用它们。你忘了提供一个构造函数,虽然你的老师要求你提供一个。
请告知您的老师,Java中存在命名约定,并且教授其他约定根本不是一个好主意。许多框架和API都遵循标准约定。 get_squarefootage()
应命名为getSquareFootage()
。对于二传手也一样。为变量使用以小写字母开头的真实单词:building
,而不是Bldg
。
答案 2 :(得分:1)
get_info
应返回String
或重命名为printBuildingAttributes
。
你有Bldg.area
,但为什么没有这个字段的setter方法?那将与你的getter / setter范例相吻合。看起来你已经拥有它,所以使用它。使字段本身是私有的,只能通过getter / setter方法访问。
如果要检索建筑物的故事数或区域数,则需要将其存储在变量中。现在,你正在检索它并扔掉它。
此外,get_info
或get_area
不是方法命名的正确Java约定。