美文网首页
构造方法、静态初始化块

构造方法、静态初始化块

作者: Yanl__ | 来源:发表于2019-11-18 00:20 被阅读0次

    构造方法

    构造器也叫构造方法(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();
        }
    }
    

    相关文章

      网友评论

          本文标题:构造方法、静态初始化块

          本文链接:https://www.haomeiwen.com/subject/eevmictx.html