构造器的定义:
- constructor构造方法,一个在创建对象时被自动调用的特殊方法。
构造器作用:
- 为对象进行初始化(成员变量)工作。
构造器是一种特殊的方法:
- 构造器的方法名必须和类名一直
- 构造器虽然有返回值,但是不能定义返回类型(返回值的类型肯定是本类),不能在构造器里调用return
- 通过new关键字调用
- 如果我们没有定义构造器,则系统会自动定义一个无参的构造方法。如果已定义则编译器不会添加无参数构造方法
- 与普通方法一样,构造方法也可以重载
例题:
- 通过前面的学习来做一道题:定义一个“点”(Point)类用来表示二位空间中的点(有2个坐标)。要求如下:
- 可以生产具体特定坐标的点对象。
- 提供可以设置2个纵坐标的方法。
- 提供可以计算该“点”距另外点的距离
代码:
代码语言:javascript复制public class Point {
int x;
int y;
public void set(int xx, int yy){
x =xx;
y =yy;
}
public double calcDistance(Point p){
return Math.sqrt((p.x-x)*(p.x-x) (p.y-y)*(p.y-y));
}
public static void main(String[] args) {
Point p1 = new Point();
p1.set(3,5);
Point p2 = new Point();
p2.set(2,4);
System.out.println(p1.calcDistance(p2));
}
}
2. 代码实现交换point中两个左边的值(实现用对象作为参数)
代码语言:javascript复制public class Point {
int x;
int y;
public void set(int xx, int yy){
x =xx;
y =yy;
}
public double calcDistance(Point p){
return Math.sqrt((p.x-x)*(p.x-x) (p.y-y)*(p.y-y));
}
public void changePoint(Point p){
int a =p.x;
p.x = x;
x = a;
int b = p.y;
p.y = y;
y = b;
}
public void show(){
System.out.println("[" x "," y "]");
}
public static void main(String[] args) {
Point p1 = new Point();
p1.set(3,5);
Point p2 = new Point();
p2.set(2,4);
System.out.println(p1.calcDistance(p2));
p1.changePoint(p2);
p1.show();
p2.show();
}
}