美文网首页
2019-05-19 jave核心代码看书笔记(四)

2019-05-19 jave核心代码看书笔记(四)

作者: 张开翔 | 来源:发表于2019-05-20 00:10 被阅读0次

    第四章 对象和类

    1.面向对象的程序是由对象组成,每个对象包含对用户公开的特定功能部分和隐藏的实现部分。
    2.类 :实例域(数据) + (操作数据的)方法
    3.封装 :绝不让类中的方法直接访问其他类的实例域 “黑盒“特征-----提高了重用性和可靠性也就是在同样的处理方法下,只需要改变存储数据的方式就可以,不需要发生大的变化
    4.类之间的关系
    依赖: 类A的方法操纵类S的对象 A依赖于S 应尽可能减少依赖(降低耦合度)
    聚合:类A的对象包含类S的对象
    继承: 类A扩展类B 类A不但包含从类B继承的方法 还可以有一些新的方法、属性
    5.构造器与类同名
    每个类可以有一个以上的构造器
    构造器可以有0个、1个或1个以上的参数
    构造器没有返回值
    构造器总是伴随着new操作一起调用
    隐式参数与显式参数
    6.私有方法
    public -----> private 数据一般都为私有的 方法可以公有,也可以私有
    7.Final实例域
    final 基本数据类型域 或 不可变类的域
    private final Date hiredate;
    意味着存储在hiredate变量中的对象引用在对象构造之后不能被改变。
    任何方法都可以对hiredate引用的对象调用setTime更改器。
    8.Main方法 -------静态方法
    启动程序时还没有任何一个对象,静态的main方法将执行并创建程序所需要的对象
    9.方法参数
    参数传递:①、传递的是值(值调用)、布尔类型(true、false)
    ②、传递的是变量地址(引用调用)
    传递的值不能改变其内容。 只是将值传递过来。

    在Java程序设计语言中,方法参数的使用情况:

    一个方法不能修改一个基本数据类型的参数(即数值型和布尔型)
    一个方法不能改变一个对象参数的状态
    一个方法不能实现让对象参数引用一个新的对象
    11.重载
    这种叫做重载 :有相同的名字,但是参数不同(参数类型、个数不同,且都要指明) 指出方法名以及参数类型------方法的签名
    编译器根据所提供的构造方法找到与其对应的;若编译器找不到匹配的或者找到多个,就会产生编译时错误(该过程为重载解析)
    注意:返回类型不是方法签名的一部分(不能有两个名字相同、参数类型也相同却返回不同类型值的方法)

    12.默认域初始化
    若构造其中没有显式地进行赋值,那么会自动度为默认值:数值=0,布尔值=false,对象引用=null
    不明确地对域进行初始化,会影响代码可读性

    13.默认构造器
    没有参数的构造器
    若在类中没有提供任何一个构造器,则系统会自动提供一个默认构造器,所有实力域的值均为默认值
    注意:若类中提供了一个及以上构造器,但是没有编写默认的构造器(也就是无参的构造器),而在构造对象时还想使用默认的,则不合法,会产生错误
    14显示域初始化
    在调用构造器时,应到确保不管怎样调用,每个实例域都可以被设置为一个有意义地初值。
    赋初值:初始值是常量的情况
    初始值可以不是常量。调用方法对域进行初始化
    15.参数名
    参数命名时技巧:
    1、在参数前加上前缀或者后缀之类的 , _xxx,(固定字母)xsalary,msalary
    2、参数变量用同样的名字将实例域屏蔽起来
    16.调用构造器的具体处理步骤:
    1、所有数据域被初始化为默认值(0、false或null)
    2、按照在类声明中出现的次序,依次执行所有域初始化语句和初始化块
    3、若构造器第一行调用了第二个构造器,则执行第二个构造器的主体
    4、执行这个构造器的主体
    17对象析构与finalize方法
    析构器最常见操作:回收分配给对象的存储空间
    由于Java有自动的垃圾回收器,不需要人工回收内存,所以Java不支持析构器

    若特殊情况(资源不再需要,将其回收和再利用),可为类添加finalize方法—将在垃圾回收器清除对象之前调用。实际应用中,因很难知道什么时候才能调用,故而不要用这个方法回收短缺资源 不鼓励使用

    若某资源需使用完毕后立即关闭,则需要人工应用类似dispose或close的方法来完成相应的清理操作。
    注意:若该类使用了这样的方法,对象不再使用时一定要调用它
    18.包
    包 用于存放类 确保类名的唯一性 每个包之间独立
    在包中定位类 是 编译器的工作。
    优点:便于组织代码,当与被人代码合并时方便分开管理
    Java类库,包括java.lang、java.util和java.net等 具有层次结构
    所有标准的Java包都处在java和javax包层次中
    一个类可使用所属包中的所有类与其他包中的公有类
    19.文档注释
    /** 开始
    这种注释的方式将代码和注释保存在同一文件中,在代码修改时,重新运行javadoc就可轻而易举保持二者的一致性
    注释的插入
    javadoc实用程序(utility)在下面特性中抽取信息:
    20.包
    公有类与接口(接口见第六章)
    公有的和受保护的方法(受保护特性见第五章)
    公有的和受保护的域
    注释应当放在所描述特性的前面。以/*开始,/结束

    21.通用注释
    可用在类文档的注释中:
    @author name
    产生一个作者条目。可使用多个@author标记,每个@author标记对应一个作者
    @version text
    产生一个版本条目。text可以是对当前版本的任何描述
    可用于所有文档的注释中
    22.类设计技巧
    ①一定将数据设计为私有
    不要破坏封装性
    可编写访问器方法getXXX或者更改其方法setXXX,以保持实例域的私有性

    ②一定要对数据初始化
    Java不对局部变量进行初始化,但对对象的实例域进行初始化。
    不要依赖于系统提供的默认值,程序员应设置默认值或在所有构造器中设置默认值

    ③不要在类中使用过多的基本数据类型
    用其他类代替多个相关的基本数据类型的使用。

    ④不是所有的域都需要独立的域访问器和域更改器

    ⑤使用标准格式进行类的定义

    23类内容顺序:

    1 公有访问特性部分
    2 包作用域访问特性部分
    3 私有访问特性部分

    24每一部分的顺序:

    1 实例方法
    2 静态方法
    3 实例域
    4 静态域

    相关文章

      网友评论

          本文标题:2019-05-19 jave核心代码看书笔记(四)

          本文链接:https://www.haomeiwen.com/subject/eyiczqtx.html