面向对象 - 构造方法

返回目录

构造器

    • 构造器:构造器也叫构造方法(constructor),用于对象的初始化,构造器是一个创建对象时被自动调用的特殊方法,目的是对象的初始化,构造器的名称应与类的名称一致,Java通过new关键字来调用构造器,从而返回该类的实例,是一种特殊的方法。
      编辑器会自动定义一个无参构造函数,如果已手动添加则编辑器不会自动添加,
      构造器虽然有返回值,但是不能定义返回值类型(返回值的类型肯定是本类),不能在构造器里使用return返回某个值。

      public class Test{
        public static void main(String[] args){
          Point p = new Point(3.0, 4.0); //创建Point类的对象,赋值传给Point的double _x,_y
          Point origin = new Point(0.0, 0.0); //再创建一个Point类的对象,赋值传给Point的double _x,_y
          System.out.println(p.getDistance(origin)); //计算距离,将origin赋值传给getDistance方法的p
        }
      }
      class Point{
        double x,y;
        // 构造方法必须和类名保持一致
        public Point(double _x,double _y) {
          x = _x; //_x赋值给x
          y = _y; //_y赋值给y
        }
        // 计算二维距离的方法
        public double getDistance(Point p) { //这里的Point p用于传入origin的数据 
          System.out.println("x,y的值:" + x + "\t" + y);
          System.out.println("p.x,p.y的值:" + p.x + "\t" + p.y);
          // 这里的x,y是Point类的x,y;p.x, p.y是getDistance方法的x,y
          return Math.sqrt((x - p.x) * (x - p.x) + (y - p.y) * (y - p.y)); //开方(乘方逆运算),(x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)=2点距离
        }
      }
    • 构造器的重载:构造方法也是方法,只不过有特殊的作用而已,与普通方法一样,构造方法也可以重载。
      public class Test{
        int id;
        String name;
        String pwd;
        public static void main(String[] args) {
          test u1 = new test(); //构造方法1
          test u2 = new test(101, "黄泽雨"); //构造方法2
          test u3 = new test(100, "老A", "123456"); //构造方法3
        }
        public test() {} //构造方法1
        public test(int id, String name) { //构造方法2,方法名称相同,形参列表不用,进行重载
          super();
          this.id = id;
          this.name = name;
        }
        public test(int id, String name, String pwd) { //构造方法3,方法名称相同,形参列表不用,进行重载
          this.id = id;
          this.name = name;
          this.pwd = pwd;
        }
      }