从零开始学java(十四)--构造方法
构造方法
构造器也叫构造方法(constructor),用于对象的初始化。构造器是一个创建对象时被自动调用的特殊方法,目的是对象的初始化。构造器的名称应与类的名称一致。Java通过new关键字来调用构造器,从而返回该类的实例,是一种特殊的方法。
注意事项
- 通过new关键字调用!!(也就是在创建对象时就默认调用)
- 构造器虽然有返回值,但是不能定义返回值类型(返回值的类型肯定是本类),不能在构造器里使用return返回某个值。
- 如果我们没有定义构造器,则编译器会自动定义一个无参的构造函数。如果已定义则编译器不会自动添加!
- 构造器的方法名必须和类名一致!
练习:
定义一个“点”(Point)类用来表示二维空间中的点(有两个坐标)。要求如下:
(1) 可以生成具有特定坐标的点对象。
(2) 提供可以设置坐标的方法。
(3)提供可以计算该“点”距另外一点距离的方法。
参考答案:
package Chapter_4;
class Point {
double x , y ;
public Point(double _x,double _y) {
x=_x;
y=_y;
}
public double getDistance(Point p) {//p为传入一个新的Point对象
创建一个Point类的对象后,再传入另一个Point对象,↓
//就可以求本点(调用本方法的Point对象)与目标点的距离(作为传入参数的Point对象)
double result;
result = Math.sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y));
//x代表构造方法的Point的x坐标
return result;
}
}
public class TestConstructor{
public static void main(String[] args) {
Point p = new Point(3.0,4.0);
Point origin = new Point(0,0);
System.out.println(p.getDistance(origin));
}
}
构造方法的重载(创建不同的对象)
public class User {
int id; // id
String name; // 账户名
String pwd; // 密码
public User() {
}
public User(int id, String name) {
super();
this.id = id;
this.name = name;
}
public User(int id, String name, String pwd) {
this.id = id;
this.name = name;
this.pwd = pwd;
}
public static void main(String[] args) {
User u1 = new User();
User u2 = new User(101, "高小七");
User u3 = new User(100, "高淇", "123456");
}
}