【发布时间】:2014-09-01 13:33:50
【问题描述】:
所以,我有两节课。一个类称为 Data,另一个类称为 Part。 (用于库存跟踪程序)。数据处理信息的序列化和程序操作的数据处理。 Part 本质上只是包含一个构造函数。我知道这不是最理想的面向对象设置,但以后的程序功能将使这种设置非常方便。
无论如何,Part 类有以下构造函数:
Part(String partName, String Make, String PartNumber,
String altPartNumber, BigDecimal price, int quantity,
String description, boolean automotive, boolean marine,
boolean industrial)
{
}
Data 类包含这个 ArrayList,稍后将在 JTable 中使用:
protected ArrayList<Part> parts;
Part 类中有几个访问器方法,其中包括访问存储在 ArrayList 中的 Part 对象的每个参数的方法。预期的功能是能够访问(以及稍后设置,如果您预见到任何潜在的困难,任何提示也会有所帮助)parts ArrayList 中任何给定 Part 对象的参数。
我尝试执行此操作的当前代码:
protected String getPartName(Part part)
{
return part.partName;
}
NetBeans 抱怨它在 Part 类中找不到变量 partName。
我该如何解决这个问题? / 为什么要这样做?
编辑:新问题:
我有以下 switch 语句:
@Override
public Object getValueAt(int row, int column)
{
Part part = getRow(row); // Gets the part in question
switch(column)
{
case 0:
return Part.getPartName(part);
case 1:
return Part.getMake();
case 2:
return Part.getPartNumber();
case 3:
return Part.getAltPartNumber();
case 4:
return Part.getPrice();
case 5:
return Part.getQuantity();
case 6:
return Part.isAutomotive();
case 7:
return Part.isMarine();
case 8:
return Part.isIndustrial();
default:
return null; // This shouldn't ever be called.
}
}
但是,NetBeans 现在抱怨“不能从静态上下文引用非静态方法 getPartName。我应该将我的访问器/修改器方法声明为静态吗?
【问题讨论】:
-
您是否将 partName 声明为 Part 类中的变量?我不确定您是否故意将构造函数留空
-
@Steven 我知道这应该是基本的 Java OOP 知识,但我画的是空白。我一定只是累了。如果我创建了一个 partName 变量,它不会与 Part 对象的任何特定实例相关联吗?如果没有,我会在类或构造函数中这样做吗?可以用一小段代码解释一下吗?
-
“我知道这不是最理想的面向对象设置” 相反!这是一个非常好的面向对象设计,IMO。
-
@Code-Apprentice 谢谢你,现在清理这些变量名:我知道那个camelCase发生了什么......
-
@Steven 你能看看我的问题编辑吗?
标签: java oop object arraylist visibility