构造方法、静态初始化块

2019-11-18  本文已影响0人  Yanl__

构造方法

构造器也叫构造方法(constructor),用于对象的初始化。构造器是一个创建对象时被自动调用的特殊方法,目的是对象的初始化。构造器的名称应与类的名称一致。Java通过new关键字来调用构造器,从而返回该类的实例,是一种特殊的方法。

  1. 通过new关键字调用!!
  2. 构造器虽然有返回值(返回创建对象的地址),但是不能定义返回值类型(返回值的类型肯定是本类),不能在构造器里使用return返回某个值。
  3. 如果我们没有定义构造器,则编译器会自动定义一个无参的构造函数。如果已定义则编译器不会自动添加!
class Point {
    public Point() {

    }

}
public class TestConstructor {
    public static void main(String[] args) {
//        Point p = new Point();
//把自己定义的构造器注释掉,相当于我们没有定义构造器,编译器会自动定义一个无参的构造器
    }
}
  1. 构造器的方法名必须和类名一致!
class Point {
    double x, y;
    //构造方法名称必须和类名保持一致
    public Point(double _x, double _y) {
        x = _x;
        y = _y;  
    }
    public double getDistance(Point p) {
        return Math.sqrt((x - p.x) * (x - p.x) + (y - p.y) * (y - p.y));
    }
}
public class TestConstructor {
    public static void main(String[] args) {
        Point p = new Point(3.0, 4.0);
        Point origin = new Point(0.0, 0.0);
        System.out.println(p.getDistance(origin));
    }
}

静态初始化块

构造方法用于对象的初始化!静态初始化块,用于类的初始化操作!在静态初始化块中不能直接访问非static成员。

静态初始化块执行顺序:

  1. 上溯到Object类,先执行Object的静态初始化块,再向下执行子类的静态初始化块,直到我们的类的静态初始化块为止。
  2. 构造方法执行顺序和上面顺序一样!!
public class User3 {
    int id;        //id
    String name;   //账户名
    String pwd;   //密码
    static String company = "北京尚学堂"; //公司名称
    static {
        System.out.println("执行类的初始化工作");

        printCompany();
    }  
    public static void printCompany(){
        System.out.println(company);
    }  
    public static void main(String[] args) {
        User3  u3 = new User3();
    }
}
上一篇下一篇

猜你喜欢

热点阅读