有一个小问题?请教??

来源:百度知道 编辑:UC知道 时间:2024/06/07 17:04:13
设计一个四则运算类,该类包含两个属性a和b,一个带两个参数的构造方法用于给a b 赋值 两个方法 setA(int n)
setB(int n)用于给a b 赋值,

调用的时候通过setA(int n) setB(int n)重新给a b赋值

有些看不明白,构造方法和setA setB 不是重复了吗?应该怎么做呢?

构造方法是用来和new一起使用来声明对象的,当声明对象时将对象的a和b初始化,调用setA方法时更改属性a的值,调用方法setB时更改属性b的值。看下面的例子:
public class Operation {
int a;
int b;
Operation (int _a, int _b) {
a = _a;
b = _b;
}

void setA(int n) {
a = n;
}

void setB(int n) {
b = n;
}

public static void main(String args[]) {
Operation o = new Operation(5,8);//声明对象并赋初始值
o.setA(7);//改变属性a的值
o.setB(9);//改变属性b的值
System.out.println(o.a +" " + o.b);
}
}

构造方法是在创建新对象的时候给两个属性赋值的,也就是 类 类的实例= new 类(参数1,参数2) 这时候给属性赋值就是初始化属性。
而setA和setB是在创建完对象后,可以用这两个方法给对象的属性赋值
比如你 类 类的实例= new 类(参数1,参数2)创建了一个类的实例。你可以用 类的实例.setA(参数) 来给属性a赋值 这样被初始化的属性a就被setA方法传的参数重新赋值了.
你可以不定义给属性赋值的构造方法,而使用默认的构造方法。

补充一下,每个类在被实例化的时候,构造函数只会被调用一次(如果有多个构造函数,在实例化时要指定一个构造函数)
而setA(int n)方法是给类里变量(a b)赋值用的,因为一般在类里的变量都是private类型的,属于私有,外界无法直接改变值,所以才出现了set get方法专门用来解决这个问题。
举一个以前我们老师给我举的例子,类就是你的钱包,里面的钱就是类的变量,钱是