Java 从多个类重写的方法
我很难理解如何使用来自两个不同类的同名多个方法(在本例中,是两个相同的方法)。驱动程序类(计算机)利用Model和Laptop类显示用户输入的信息。在Model和Laptop中,有两种名称相同但参数不同的方法。我对笔记本电脑中setModel方法的三个参考变量的设置感到困惑。我已尝试为setModel方法操作模型对象,但未成功 我是从一个UML图上写的。笔记本电脑和模型之间有一种聚合关系,特别是模型和笔记本电脑之间有一种关系(笔记本电脑上有一个菱形,通过一条线连接到模型) } }Java 从多个类重写的方法,java,Java,我很难理解如何使用来自两个不同类的同名多个方法(在本例中,是两个相同的方法)。驱动程序类(计算机)利用Model和Laptop类显示用户输入的信息。在Model和Laptop中,有两种名称相同但参数不同的方法。我对笔记本电脑中setModel方法的三个参考变量的设置感到困惑。我已尝试为setModel方法操作模型对象,但未成功 我是从一个UML图上写的。笔记本电脑和模型之间有一种聚合关系,特别是模型和笔记本电脑之间有一种关系(笔记本电脑上有一个菱形,通过一条线连接到模型) } } }如果方法在不
}如果方法在不同的类中声明,您甚至不需要不同的参数,您只需使用对象名调用,并且响应的方法会自动调用。这就是让我困惑的地方,我本来不会以这种方式实现它,但我必须这样做 我用我最初的实现找到了解决方案
public void setModel(String newModel, double newCPU, int newRAM)
{
model.setModel(newModel);
model.setCPU(newCPU);
model.setRAM(newRAM);
}
然后,我修复了模型对象的实例化
private Model model = new Model();
我不知道你在问什么。您可以使用为
Laptop
的setModel
方法提供的参数创建一个新的Model
实例,并将Laptop
的Model
实例变量设置为新创建的Model
实例。也就是说,通常setModel
会采用Model
,而不是作为模型的工厂,但这是一个不同的讨论,没有单一的答案。我尝试了这个方法,但得到了一个NullPointerException{Model.setModel(newModel);Model.setCPU(newCPU);Model.setRAM(newRAM);}Nevermind,我删除了NullPointerException。我没有完全实例化模型类
import java.text.DecimalFormat;
public class Model {
private String modelName;
private double cpuSpeed;
private int ramSize;
// TODO Auto-generated method stub
public Model()
{
this.modelName = "?";
this.cpuSpeed = 0.0;
this.ramSize = 0;
}
public String getModel()
{
return modelName;
}
public double getCPU()
{
return cpuSpeed;
}
public int getRAM()
{
return ramSize;
}
public void setModel(String newModel)
{
modelName = newModel;
}
public void setCPU(double newCPU)
{
cpuSpeed = newCPU;
}
public void setRAM(int newRam)
{
ramSize = newRam;
}
public String toString()
{
DecimalFormat df = new DecimalFormat("0.00");
return ("Model:\t" + modelName + "\n CPU:\t " + df.format(cpuSpeed) + "\n RAM:\t " + ramSize+"GB" + "\n" );
}
public void setModel(String newModel, double newCPU, int newRAM)
{
model.setModel(newModel);
model.setCPU(newCPU);
model.setRAM(newRAM);
}
private Model model = new Model();