• 动手动脑


    【final对象的用法】
    public class lianxi(){
    public static void main(String[] args) {
    final lianxi obj =new lianxi();
    //添加final,obj不能指向另一个对象, "obj=ojk;"错误但可以修改对象
    lianxi ojk =new lianxi();
    //obj=ojk;若没有final则obj和ojk都指向ojk的值,这种特殊的现象通常也叫作“别名”,是Java操作对象的一种基本方式
    }
    }
     【private私有变量,用get set 函数设置,读取】
    package
    lianxi; public class lianxi { public String information="初值"; public void mymethod(String argu) { System.out.println(argu); } private int value;//私有变量value不能直接访问,通过get,set访问 public void setValue(int value) { this.value = value; } public int getvalue() { return value; }
    【equals函数的重载,构造函数的使用】
    package lianxi;

    public class lianxi {

        public int num;
        public boolean equals(lianxi obj)//重载equals函数
        {
            return obj.num==this.num;
        }
        lianxi (int initnum)//自己定义的构造函数,给num赋值,则系统不在提供默认的构造函数
        {
        num=initnum;
        }
        lianxi()
        {
            this(2);//构造函数之间可以相互调用,this(),调用lianxi(int initnum)构造函数,将2的值赋给num
        }
        public static void main(String[] args) {
            // TODO 自动生成的方法存根
    lianxi a=new lianxi(2);
    lianxi b=new lianxi();//先调用构造函数lianxi(),lianxi()中的this(),调用lianxi(int initnum)构造函数,将2的值赋给num
    if(a.equals(b))
        System.out.println("相等");
    else
        System.out.println("不相等");
        }

    }
    【静态初始化块,static{}非静态初始化块{},构造函数的调用顺序】
    package
    lianxi; //静态初始化块都优先执行,其次才是非静态的初始化块和构造函数 public class lianxi { static int num=1; int shuzi=21;//这句话在初始化块之前,或之后,会影响shuzi的值,在前则最终结果以初始化块为止,在后则以“int shuzi=21;”为止。 static //每个类的静态初始化块都只在第一次实例化该类对象时执行一次,静态初始化块初始化静态变量 { num=1; System.out.println("调用一次静态初始化块"); } //只要实例化对象时就调用非静态初始化块 { shuzi=2; System.out.println("调用初始化块"); } public lianxi(int initnum,int initshuzi) { this.num=initnum; this.shuzi=initshuzi; System.out.println("调用自定义的构造函数"); } public lianxi() { System.out.println("调用默认的构造函数"); } public static void main(String[] args) { // TODO 自动生成的方法存根 lianxi a=new lianxi(4,4); System.out.println("num的值为"+a.num); System.out.println("shuzi的值为"+a.shuzi); lianxi b=new lianxi(); //lianxi.num=0;//用类名(对象名)访问static int num System.out.println("num的值为"+b.num); System.out.println("shuzi的值为"+b.shuzi); } }
    1. 静态初始化块的优先级最高,也就是最先执行,并且仅在类第一次被加载时执行;
    2. 非静态初始化块和构造函数后执行,并且在每次生成对象时执行一次;
    3. 非静态初始化块的代码会在类构造函数之前执行。因此若要使用,应当养成把初始化块写在构造函数之前的习惯,便于调试;
    4. 静态初始化块既可以用于初始化静态成员变量,也可以执行初始化代码
    5. 非静态初始化块可以针对多个重载构造函数进行代码复用
     
  • 相关阅读:
    后端PHP框架laravel学习踩的各种坑
    IE6、IE7兼容querySelectorAll和querySelector方法-最终版本
    package.json保存
    原生javascript兼容性总结
    原生javascript代码懒加载
    禁止选择文本样式
    xml转实体类的实现
    kendo ui editor 文本编辑器 自定义高度的实现
    setTimeout执行时带参数,并且带的是object对象类型的参数
    KendoUi listview template的用法记录
  • 原文地址:https://www.cnblogs.com/zql98/p/9824847.html
Copyright © 2020-2023  润新知