今日任务
Que 0x01 构造方法
- 用来创建对象的时候使用
- 如果不手动定义的话,系统会自动隐式书写一个不含任何参数的构造方法
- 如果手动定义构造方法则会覆盖掉隐式的构造方法
- 构造方法必须和类名一样,并且不含类型
- 构造方法够可以定义多个,需要参数不同(参数个数不同或参数类型不同)
// eg 定义
public class Ladder {
double top,bottom,height;
public Ladder(double x, double y, double z) {
top = x;
bottom = y;
height = z;
}
}
// 上面定义了了一个名为 Ladder 的类,并且定义了个一个构造方法,作用是为其中的三个成员变量赋值
// eg 使用
public class Overload {
public static void main(String[] args) {
Ladder myLadder = new Ladder(3, 7, 13);
}
}
// 上面在 main 中创建了一个对象,并且在创建对象的时候使用自己定义的构造方法为其中三个成员变量赋值
Que 0x02 方法重载
- 方法名相同,参数不同(参数个数不同或参数类型不同)
// eg 定义
public class People {
double calArae(Circle c) {
return c.getArea();
}
double calArae(Ladder l) {
return l.getArea();
}
}
// 上面定义了两个重载的方法,分别用于计算 Circle 和 Ladder 的area
// eg 使用
public class Overload {
public static void main(String[] args) {
Circle myCircle = new Circle();
myCircle.setRadius(17.3);
Ladder myLadder = new Ladder(3, 7, 13);
People myPeople = new People();
System.out.println(myPeople.calArae(myCircle));
System.out.println(myPeople.calArae(myLadder));
}
}
// 上面通过传入不同的对象来获取 Circle 和 Ladder 的 area