作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我正在构建一个 FoodItem,我想输入一个新项目,我想确保项目的名称不能更改,它的价格也是如此(这意味着我不能使用 Setter 来更改它)但我可以更改数量。
我的问题如下:通过在构造函数中声明 finals NAME 和 COST,我无法在它之外访问它们,例如对于像 getName() 或 getCost() 这样的方法。我希望我的问题足够清楚,如果不只是提问,我会回复。
我仍然是 Java 的初学者,所以如果我遗漏了一些明显的东西,请原谅我,我是来学习的!
public class FoodItem {
private int _quantity;
public FoodItem (String name, int cost, int quantity){ //
final String NAME = name;
final int COST = cost;
_quantity = quantity;
}
public String getName(){ return NAME;} //<-- obviously cannot be found
public int getCost(){ return _cost;}
public int getNumber(){ return NUMBER;}
public void setCost(int newCost){ _cost = newCost;}
最佳答案
NAME 和 COST 声明在错误的位置。将他们的声明移至声明 _quantity 的位置。
private int _quantity;
private final String NAME;
private final int COST;
public FoodItem (String name, int cost, int quantity){
NAME = name;
COST = cost;
_quantity = quantity;
}
查看答案 here .
关于java - 如何将输入(int、String 等)转换为同类最终变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38423242/
我是一名优秀的程序员,十分优秀!