一、构造代码块(实际运用的时候比较少)
public class A6_8{
public static void main(String[] args){
Person A=new Person();
Person B=new Person("小李");
System.out.println(A.country);
System.out.println(B.country);
}
}
/*构造代码块的特点:对像一建立就运行了,而且优先于构造函数执行
作用:给对像进行初始化的
构造代码块和构造法方的区别:
构造方法是对应的对象进行初始化,
构造代码块是给所有的对像进行统一的初始化
构造代码块中定义是不同对象共性的初始化内容
*/
class Person{
String name;
String country;
Person(){
System.out.println("我是无参构造法方");
System.out.println("我在跑步");
country="中国"
}
Person(String name){
this.name=name;
System.out.println("我是有参构造法方");
System.out.println("我在跑步");
country="中国"
}
{
System.out.println("我在跑步");
}
}
二、构造函数之间的调用
public class A6_9{
public static void main(String[] args){
Student S=new Student("王晓东");
Student B=new Student("fd,32");
}
}
/*
this:看上去,用来区分局部变量和成员变量同名的情况。
this:就是代表本类对象,this代表它所在的函数(方法)所属对象的引用。
构造函数之间的调用只能通过this语句来完成。
构造函数之间进行调用时this语句只能出现在第一行,初始化要先执行,如果
初始化当中还有初始化,那就去执行更细节的初始化。
*/
class Student{
String name;
int age;
Student(){
System.out.println("无参构造方法");
}
Student(String name){
this();
this.name=name;
System.out.println("asds");
}
Student(String name,int age){
this(name);
this.age=age;
}
}