我是Java新手,這是我正在閱讀的書中找到的一個示例。在此代碼中有幾件事我不明白。請幫助我理解它。瞭解java中的類和變量
/*
* CalculatorModel
* Encapsilates the data model used by the calculator Application
*/
public class CalculatorModel{
private double operand1;
private double operand2;
public void setOperand1(double value){
operand1=value;
}
public void setOperand2(double value){
operand2=value;
}
public double getOperand1(){
return operand1;
}
public double getOperand2(){
return operand2;
}
public String toString(){
String s = "operand 1=" + operand1 + "operand 2=" + operand2;
return s;
}
}
/*
* CalculatorHelper
* A class that performs mathematical functions for a calculator program
*/
public class CalculatorHelper{
private CalculatorModel calcModel;
public CalculatorHelper(){
calcModel=new CalculatorModel();
}
public void setOperand1(double value){
calcModel.setOperand1(value);
}
public void setOperand2(double value){
calcModel.setOperand2(value);
}
public double add(){
return calcModel.getOperand1()+calcModel.getOperand2();
}
public double subtract(){
return calcModel.getOperand1()-calcModel.getOperand2();
}
public double multiply(){
return calcModel.getOperand1()*calcModel.getOperand2();
}
public double divide(){
return calcModel.getOperand1()/calcModel.getOperand2();
}
}
請幫助我瞭解什麼是
private CalculatorModel calcModel;
public CalculatorHelper(){
calcModel=new CalculatorModel();
}
在calculatorHelper
類完成。是calcModel
變量是CalculatorModel
類型的變量嗎?將對象作爲數據類型而不是基本數據類型與變量相比有什麼區別?
如果calcModel是一個變量,那麼行calcModel = new CalculatorModel();
我不明白爲什麼重要的是要有兩個類CalculatorModel
和CalculatorHelper
。
什麼與方法
public void setOperand1(double value){
calcModel.setOperand1(value);
}
在輔助類做的已經有一個setmethod
在CalculatorModel
類。
這是我試過的,這個代碼有什麼問題?
public class Calculator{
private double num1,num2;
public void setValue1(double value1){
num1=value1;
}
public void setValue2(double value2){
num2=value2;
}
public double getValue1(){
return num1;
}
public double getValue2(){
return num2;
}
public double add(){
return getValue1()+getValue2();
}
public double subtract(){
return getValue1()-getValue2();
}
public double multiply(){
return getValue1()*getValue2();
}
public double divide(){
return getValue1()/getValue2();
}
}
那段代碼確實有點奇怪。這是我無法遵循的面向對象設計的嘗試。 – zapl
這本書應該解釋它。如果沒有,你可以嘗試另一種(更友好)的書。 – Christian
也許更好地解釋OOP是需要的:http://docs.oracle.com/javase/tutorial/java/concepts/object.html –