package valuetest;
import java.util.Random;
public class ValueTest2 {
private String field1="aa"; // 5.可以在类定义时将一个值赋值给任何域(显式域初始化),使用场景:任何构造器想给某个实例域赋相同的值
int z;
private static int m;
public static void main(String[] args) {
/*
* 1.构造器可以重载
*
* 2.没有构造器方法的时候会默认给一个无参构造器方法
*
* 3.声明了构造方法,无参的构造方法不会默认了
*
*/
/*
* 4.参数名,参数变量用同样的名字将实例域隐藏起来,可以通过this访问实例域
*
* 6.this 调用另外一个构造器
*/
/*
* 7.初始化块
* 声明数据的方式::
* 1)在构造器中赋值
* 2)在声明中赋值
* 3)初始化块:一个类的声明中包含多个代码块,只要构造类的对象,就会被赋值
* 先运行块,再运行构造器
* 无论调用哪个构造器,块中的代码都会执行
*/
/*
* 执行顺序:
* 所有数据域被初始化默认值(0,null,false)
* 执行块语句
* 构造器初始化
*/
/*
* 8.如果静态域的初始化比较复杂,可以使用静态块
*/
System.out.println("ValueTest2.m=="+ValueTest2.m);
ValueTest2 v1 = new ValueTest2(1,2);
System.out.println(v1.z);
}
//4.参数名
private void method1(String field1){
this.field1 = field1;
}
//6.
private ValueTest2(){}
public ValueTest2(int x){
System.out.println("z2=="+z);
z++;
System.out.println("z2=="+z);
}
public ValueTest2(int x, int y){
this(x);
System.out.println("z1=="+z);
}
//7.块
{
int m = 1;
z = 3;
}
//8.静态块
static{
Random random = new Random();
m= random.nextInt(100);
}
}