public class Counter{
int num1;
int num2;
public Counter( int num1, int num2 ){
this.num1 = num1;
this.num2 = num2;
}
public Counter(){
}
public void plus(){
int result = num1 + num2;
System.out.println(result);
}
public void plus( int num1, int num2){
int result = num1 + num2;
System.out.println(result);
}
}
public class TestCounter{
public static void main(String[] args) {
Counter test1 = new Counter(5, 6);
test1.plus();
test1.plus(10,8);
System.out.println(test1.num1);
Counter test2 = new Counter();
test2.plus();
test2.plus(19, 58);
System.out.println(test2.num1);
}
}
代码如上所示
1 首先分析,需要解决的问题是 实现对两位数的四种运算,两位数为数值,可以用属性变量来表达;运算为操作,为进程,可以用方法(函数)来进行;
因此在类中首先需要对两个属性进行初始化;int num1; int num2;
2 进而需要对四种运算分别表达成四种方法,即public void plus(){表达式} public void sub(){表达式}......
在java中,在定义方法的时候需要考虑的是(1)方法有无返回值;(2)方法是否有入参,及入参的属性(参数的类型,数量,顺序);
更进一步的考虑是按照要求来决定是否赋予新建对象的两个属性初值,这就用到了构造方法(构造函数)
实现对两个变量进行四种方法运算,在学习中,为了简便,我们对定义的对象赋予初值(通过构造方法进行实现)。
3 四种运算具体化为四种方法的时候,我们采用了非静态无参方法与非静态有参方法进行实现;
非静态无参方法很简单,在创建对象的时候就给对象的两个属性变量赋予了初值(通过构造方法)。
非静态有参方法则是:对于给定的两个参数,进行方法进程。(注意,此时传递的是值,并不是对象的属性变量,因为方法是非静态的,所以在这里,构造的对象的作用仅仅是起到了提供方法入口的作用,无法通过参数对属性变量进行修改)
4 对于下面使用this关键字的代码
public Counter( int num1, int num2 ){
this.num1 = num1;
this.num2 = num2;
}
括号中的num1与num2仅表示入参不代表类中的属性,只是为了阅读的方便与习惯,this表示“当前对象”,这一常用句式一般用来利用构造函数在创建对象时对对象进行赋值。