• java 编程思想笔记(二)——初始化


    一.问题

      随着计算机革命的发展,“不安全”的编程方式已逐渐成为编程代价高昂的主因之一。

      初始化清理正是涉及安全的两个问题。

    二.java 解决方案

      构造器:一种特殊的方法。java 中”初始化“和”创建“捆绑在一起,两者不能分离。

      垃圾回收器:释放无用的对象。

    三.方法重载

      为什么要在这里讲方法重载?我觉得首先:构造器是一种特殊的方法,再一个,构造器除了默认构造器还有有参构造器。为了让方法名称相同而形式参数不同的构造器同时存在,就必须用到方法重载。

      区分方法重载的判决条件

      1.参数的数量是否相同

      2.参数的类型是否相同

      只要其中一条为否,则就是方法重载,必须记住重载的前提:方法名称必须相同。

    四.构造器中调用构造器

      1.尽管可以用this调用一个构造器,但却不能调用两个。此外,必须将构造器调用置于最起始处,否则编译错误。

      2.除构造器之外,编译器禁止在其他任何方法中调用构造器。

    五.成员初始化途径

      1.所有变量在使用前都能得到恰当的初始化,类的基本类型默认为基本类型的默认值,局部变量必须由编程者指定初始值,在类中,一个对象引用不将其初始化,就会获得特殊的null值。

      2.编程者指定变量初始化值

      3.通过构造器初始化变量值,但是自动初始化在构造器初始化之前完成。

    六.变量初始化顺序

     变量定义的顺序决定了初始化的顺序,即使变量定义散步于方法定义之间。

    七.静态数据初始化

      无论创建多少个对象,静态数据都只占用一份存储区域,static 关键字不能用于局部变量,因此只能作用于域。

    八.非静态实例初始化

      代码如下:

    Class Mug{
    
       Mug(int maker){
              print("Mug("+maker+")");    
    
        }               
       void f(int maker){
              print("f("+maker+")");          
        }
    }
    public  Class Mugs{
    
        Mug mug1;
        Mug mug2;
       {
           mug1= new Mug(1);
           mug2= new Mug(2);
           print("mug1&mug2 initial");
        }
       
       Mugs()
        {
              print("Mugs(int)");
        }
    
       public static void main(String[] args)
        {
              print("Inside main()");
              new Mugs();
              print("new Mugs()  completed");
              new Mugs(1);
              print("new Mugs(1)  completed");
        }
    
    
    }                  

    从输出结果可以看出,实例初始化子句是在两个构造器之前执行的。

    九,对六七八的总结

      1.首先初始化静态的变量(第一次访问.class文件时初始化,只初始化一次),然后初始化非静态变量

      2.非静态变量会被创建对象时复制给默认值。

      3.执行编程值为变量指定的初始值。

      4.执行构造器。

  • 相关阅读:
    关于导出数据库提示 outfile disabled的解决方案
    mysql的日志管理
    Node.js aitaotu图片批量下载Node.js爬虫1.00版
    Node.js umei图片批量下载Node.js爬虫1.00
    Node.js abaike图片批量下载Node.js爬虫1.01版
    JS 数字左补零函数
    Node.js 向一个文件添加内容
    JS 取得当前日期时间(文本形式)
    Node.js abaike图片批量下载Node.js爬虫1.00版
    Node.js nvshens图片批量下载爬虫 1.00
  • 原文地址:https://www.cnblogs.com/wwyx-xi/p/6345289.html
Copyright © 2020-2023  润新知