4-3面向对象程序设计

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);
    }
}
原文地址:https://www.cnblogs.com/lxh520/p/8144032.html