`

第五章 初始化与清理

阅读更多
2013年6月15日 星期六 16时30分20秒


5.1 用构造器确保初始化
      public class Rock {

                public Rock() {
                        super();
                }

        }

5.2 方法重载
        5.2.1 区分重载方法
                通过参数类型来区分

        5.2.2 设计基本类型的重载
                如果传入的实际参数类型较大,就得通过类型转换来执行窄化转换。
                如果传入的数据类型(实际参数类型)小于方法中声明的形式参数类型,实际数据类型就会被提升。
       
        5.2.3 以返回值区分重载方法
                根据返回值来区分重载方法是行不通的。

5.3 默认构造器
        如果已经定义了一个构造器,编译器就不会帮你自动创建默认构造器了。

5.4 this关键字
        5.4.1 在构造器中调用构造器
       
        5.4.2 static含义
5.5 清理,终结处理和垃圾回收
        5.5.1 垃圾回收只与内存有关
        5.5.2 你必须实施清理
        5.5.3 终结条件
        5.5.4 垃圾回收器如何工作
                垃圾回收器的原理分类: 1.引用计数
                        “标记--扫清”,“停止--复制”
                JIT(Java In Time )“即时”编译技术
                Lazy evaluation 惰性评估
                Java HotSpot技术
5.6 成员初始化
        5.6.1 指定初始化

5.7 构造初始化
        5.7.1 初始化顺序
        5.7.2 静态数据的初始化
        5.7.3 显式的静态初始化 (静态子句 或 静态块)
                        public class Spoon {
                        static int i;
                        static int a;
                        static{
                                i=47;
                                a=56;
                        }
                     }
        5.7.4 非静态实例初始化
               
5.8 数组初始化
                        class other{
                        public static void main(String[] args){
                                for(String s:args){
                                System.out.print(s+" ");
                                }
                        }
                     }

                     public class DynamicArray {
                        public static void main(String[] args){
                        other.main(new String[]{"a","b","c"});
                        }
                     }

        5.8.1 可变参数列表
                        package chapter5;

                     class A{}

                     public class VarArg {
                        //before SE5
                        /*static void printArry(Object[] args){
                          for(Object b:args){
                          System.out.print(b+" ");
                        }
                        System.out.println();       
                       }*/
       
                        //after SE5
                       static void printArry(Object... args){
                        for(Object b:args){
                                System.out.print(b+" ");
                        }
                        System.out.println();       
                        }
       
                        public static void main(String[] args){
                        //VarArg.printArry(new String[]{"one","two","three"});
                        //VarArg.printArry(new Object[]{new A(),new A(),new A()});
                        VarArg.printArry("one","two","three");
                        }
                }
       
5.9 枚举类型
        枚举和switch的结合使用
       package chapter5;
        public class SimpleEnum {
        public enum Spiciness{
                NOT,MILD,MEDIUM,HOT,FLAMING
        }
       
        Spiciness degree;
        public SimpleEnum(Spiciness degree){
                this.degree=degree;
        }

        public void describe(){
                System.out.println("This SimpleEnum is ");
                switch(degree){
                case NOT: System.out.println("This SimpleEnum is "+degree);break;
                case MILD: System.out.println("This SimpleEnum is "+degree);break;
                case MEDIUM: System.out.println("This SimpleEnum is "+degree);break;
                case HOT: System.out.println("This SimpleEnum is "+degree);break;
                case FLAMING: System.out.println("This SimpleEnum is "+degree);break;
                default: System.out.println("This SimpleEnum is default");
                }
        }
       
        public static void main(String[] args){
                Spiciness Hot=Spiciness.HOT;
                /*System.out.print(Hot);
                for(Spiciness s: Spiciness.values()){
                        System.out.println(s+" "+s.ordinal());
                }*/
                SimpleEnum s= new SimpleEnum(Spiciness.HOT),
                                   s1=new SimpleEnum(Spiciness.MEDIUM),
                                   s3=new SimpleEnum(Spiciness.FLAMING);
                s.describe();
                s1.describe();
                s3.describe();
               
        }
       
        }

5.10 总结
分享到:
评论

相关推荐

    Java编程思想第05章初始化与清理.ppt

    《Java编程思想》第五章主要讨论的是对象的初始化与清理,包括构造器的使用、方法重载以及默认构造器的概念。下面将详细阐述这些知识点。 ### 一、构造器确保初始化 1. **为什么要引入构造器**:在Java中,构造器...

    C++编程思想--第4章 初始化与清除

    C++通过引入构造函数和析构函数来解决这个问题,以确保对象在创建和销毁时能够正确地进行初始化和清理。 构造函数是C++中一种特殊的成员函数,它的主要任务是在对象创建时执行初始化操作。构造函数的名称与类名相同...

    编程思想下篇

    第5章 初始化与清理 5.1 用构造器确保初始化 5.2 方法重载 5.2.1 区分重载方法 5.2.2 涉及基本类型的重载 5.2.3 以返回值区分重载方法 5.3 缺省构造器 5.4 this关键字 5.4.1 在构造器中调用构造器 5.4.2 static的...

    Thinking in java4(中文高清版)-java的'圣经'

    4.4 Foreach语法 4.5 return 4.6 break和 continue 4.7 臭名昭著的“goto” 4.8 switch 4.9 总结 第5章 初始化与清理 5.1 用构造器确保初始化 5.2 方法重载 5.2.1 区分重载方法 5.2.2 涉及基本类型的重载 5.2.3 以...

    java基础补足和thinking In Java学习.rar

    第五章 初始化与清理 5.1 用构造器确保初始化 1.构造器命名必须与类名相同 2.构造器也是方法,满足方法的各种特征,无参数的构造器称为默认构造器,默认构造方法或者无参构造器。在没有其他构造方法的时候可以...

    《Java编程思想》学习笔记1(操作符、控制语句、对象、初始化与清理).doc

    ### Java编程思想学习笔记知识点...以上是《Java编程思想》学习笔记中关于操作符、控制语句、对象、初始化与清理等关键知识点的总结。通过理解这些基础概念和技术细节,可以更好地掌握 Java 编程的核心原理和技术实践。

    Linux系统初始化相关脚本分析

    `rc.sysinit`是Linux系统初始化的核心脚本,通常位于/etc目录下,它是系统引导过程中的第一步。这个脚本主要负责进行一些系统级别的设置和初始化工作,例如: 1. **硬件检测**:对系统硬件进行检测,包括磁盘、内存...

    3DsMaxReset1.3初始化插件

    《3DsMaxReset1.3初始化插件:深入解析与应用》 3DsMax是一款广泛应用于游戏开发、影视特效、建筑可视化等领域的三维建模和动画软件。其强大的功能和丰富的自定义性使得用户能够根据自己的需求进行各种复杂的操作。...

    Swift 初始化语法糖,更简介的语法实现组件初始化.zip

    虽然不是初始化的一部分,但与初始化过程紧密相关。析构函数在对象即将被销毁时执行,提供了清理资源的机会。在Swift中,使用`deinit`关键字定义。 5. **类型别名(Type Aliases)** 通过类型别名,我们可以为...

    数据库初始化/清除/备份/恢复工具包

    本工具包专注于数据库的初始化、清除、备份与恢复功能,对于任何依赖于数据库的应用来说,这些都是核心的操作需求。以下是对这些关键知识点的详细阐述: 1. **数据库初始化**:数据库初始化是指在新安装或重新配置...

    DLL初始化.rar

    5. **易语言DLL初始化**:易语言是一种中文编程语言,它的DLL开发允许程序员用易语言编写函数库,供其他程序调用。在易语言中,创建DLL时,同样需要定义一个类似`DllMain`的入口点函数,来处理DLL的加载和卸载事件。...

    C++Primer第五章习题答案

    第五章主要涉及C++的基础语法和编程技巧,包括类的使用、对象的创建与初始化、成员函数、友元、构造函数与析构函数等核心主题。下面,我们将对这些习题答案中的知识点进行详细阐述。 1. **类与对象**:C++中,类是...

    易语言源码易语言DLL初始化源码.rar

    6. **注销函数**:与初始化相对应,DLL卸载时通常会调用一个注销函数。在易语言中,这个函数用于释放初始化时分配的资源,关闭打开的文件等,确保程序退出时不会留下任何残留。 7. **调用约定**:在易语言中,我们...

    Vxworks BSP文件对串口及时钟初始化流程

    `usrKernelInit()`配置Wind内核,`kernelInit()`初始化多任务环境,而`usrRoot()`则作为系统的第一个任务运行,负责初始化I/O系统,安装驱动,创建设备,以及初始化网络系统。 关于串口和时钟的初始化,具体流程...

    JBPM3.2 表初始化,流程发布第一课

    4. 数据清理与重建:在升级或调试过程中,可能需要清空已有数据并重新初始化。此时,应谨慎操作,确保不会丢失重要信息,或者在测试环境中进行此类操作。 二、流程发布 1. 设计流程模型:使用JBPMSuite提供的GPD...

    tcp\ip初始化

    TCP/IP初始化是一个重要的网络配置过程,它涉及到计算机与网络之间的通信协议设置。TCP/IP(Transmission Control Protocol/Internet Protocol)是互联网上最广泛使用的通信协议栈,由多个协议组成,包括TCP、IP以及...

    thinkinjava源码-Thinking-in-Java:ThinkingInJava源代码和练习题

    初始化与清理(18年6月) 第6章 访问权限控制(18年6月) 第7章 复用类(18年6月) 第8章 多态(18年7月) 第9章 接口(18年10月) 第10章 内部类 第11章 持有对象 第12章 通过异常处理错误 第13章 字符串 第14章 类型信息 第...

    凉山州烟叶收购一卡通卡片初始化工具

    卡片初始化是这个过程中的第一步,它确保每张卡片在使用前都处于未分配状态,且所有必要的数据区都被清零或填充了预设信息。 卡片初始化通常涉及以下几个步骤: 1. **身份登记**:首先,需要将烟农的个人信息录入...

    北大青鸟C#第六章 初始继承和多态参考答案.zip

    5. 构造函数(Constructor)和析构函数(Destructor):构造函数用于初始化类的新实例,而析构函数则在对象生命周期结束时自动调用,通常用于资源的清理。C#中的构造函数可以通过`this`关键字调用其他构造函数,而析...

Global site tag (gtag.js) - Google Analytics