面向对象编程(五)——构造方法

时间:2021-07-30 17:22:54

构造器

构造器,又称构造方法(constructor).  构造器用于构造该类的实例(对象)。

格式如下:

面向对象编程(五)——构造方法

构造方法是一种特殊的方法:

  ①通过new关键字调用

  ②构造器虽然有返回值,但不能定义返回类型(返回值类型肯定是本类),不能在构造器里调用return

  ③如果我们没有定义构造器,则系统会自动定义一个无参的构造函数。如果已定义,则编译器不会添加无参的构造器。

  ④构造器的方法名必须和类名一致

  ⑤作用:构造该类的对象,经常也用来初始化对象的属性。

【例子1】

定义一个“点”(point)类来表示三维空间中的点(有三个坐标)。要求如下:

①可以生成具有特定坐标的点对象;

②提供可以设置三个坐标的方法;

③提供可以计算该“点”距离平方的方法。

面向对象编程(五)——构造方法面向对象编程(五)——构造方法
 1 public class Point {
 2     double x,y,z;
 3     
 4     //构造方法与类名相同
 5     //通过构造方法初始化对象的属性
 6     public Point(double _x,double _y,double _z){
 7         x = _x;
 8         y = _y;
 9         z = _z;
10     }
11     
12     public void setX(double _x){
13         x=_x;
14     }
15     
16     public void setY(double _y){
17         y=_y;
18     }
19     
20     public void setZ(double _z){
21         z=_z;
22     }
23     
24     public double distance(Point p) {
25         double result= Math.sqrt((x-p.x)*(x-p.x)+(y-p.y)*(y-p.y)+(z-p.z)*(z-p.z));//java.lang.Math.sqrt(double a) 返回正确舍入的一个double值的正平方根
26         return result;
27     }
28     
29     public static void main(String[] args) {
30         //如果我们没有定义构造器,则系统会自动定义一个无参的构造函数。如果已定义,则编译器不会添加无参的构造器。
31 //        Point p=new Point();//如果此处这样写,会报红。
32         Point p=new Point(2, 4, 2);
33         System.out.println(p.x);
34         
35         Point p2=new Point(240,40,80);
36         System.out.println(p.distance(p2));
37         
38         
39     }
40 }
View Code

运行结果:

2.0
253.02964253225352