有一个小问题?请教??
来源:百度知道 编辑:UC知道 时间:2024/06/07 17:04:13
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方法专门用来解决这个问题。
举一个以前我们老师给我举的例子,类就是你的钱包,里面的钱就是类的变量,钱是