构造方法
构造器也叫构造方法(constructor),用于对象的初始化。构造器是一个创建对象时被自动调用的特殊方法,目的是对象的初始化。构造器的名称应与类的名称一致。Java通过new关键字来调用构造器,从而返回该类的实例,是一种特殊的方法。
- 通过new关键字调用!!
- 构造器虽然有返回值(返回创建对象的地址),但是不能定义返回值类型(返回值的类型肯定是本类),不能在构造器里使用return返回某个值。
- 如果我们没有定义构造器,则编译器会自动定义一个无参的构造函数。如果已定义则编译器不会自动添加!
class Point {
public Point() {
}
}
public class TestConstructor {
public static void main(String[] args) {
// Point p = new Point();
//把自己定义的构造器注释掉,相当于我们没有定义构造器,编译器会自动定义一个无参的构造器
}
}
- 构造器的方法名必须和类名一致!
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成员。
静态初始化块执行顺序:
- 上溯到Object类,先执行Object的静态初始化块,再向下执行子类的静态初始化块,直到我们的类的静态初始化块为止。
- 构造方法执行顺序和上面顺序一样!!
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();
}
}
网友评论