《Java编程思想》学习笔记【六+七】

…烦人



第六章 访问权限控制
当编写一个Java源代码文件时,此文件通常被称为编译文件。每个编译单元都必须要有一个后缀名.java,而在编译单元内则可以有一个public类,该类的名称必须与文件的名称相同public类,该类的名称必须与文件的名称相同。

在这里插入图片描述

private对于多线程有用,可能想控制如何创造对象,并组织别人直接访问某个特定的构造器(或全部构造器)。

接口和实现

访问控制的控制常被称为是具体实现的隐藏。把数据和方法包装进类中,以及具体实现的隐藏,常共同被称为是封装
出于两个原因,访问权限控制将权限的边界划在数据类型内部:1.要设定客户端程序员可以使用和不可以使用的界限。2.接口和具体实现进行分离



第七章复用类

组合:在新类中产生现有类的对象,由于新的类是由现有类的对象所组成,所以这种方法被称为组合。
继承:按照现有类的类型来创建新类,无需改变现有类的形式,采用现有类的形式并在其中添加新代码,这种方式被称为继承。

当创建一个类时,总是在继承,因此,除非已经明确指出要从其他类中继承,否则就是在隐式地从Java的标准根类object进行继承。

如果没加任何访问权限修饰词,那么成员默认的访问权限就是包访问权限。

为了继承,一般是将所有数据成员都指定为private,将所有方法都指定为public
使用基类方法及对它进行修改是可行的。

你可能想要在新版本中调用从基类继承而来的方法,但是不能直接调用例如:在f()内调用f();,因为会产生递归问题。应当用super关键字表示超类,所以super.f()
在这里插入图片描述
Java自动在导出类的构造器中插入对基类构造器的调用。


第三种关系叫代理。继承与组合的中庸之道。
我们将一个方法成员对象置于所要构造的类中(就像组合),但与此同时,我们在新类中暴露了该成员对象的所有方法(就像继承)
(不是很懂)

有时候类可能要在其生命周期内执行一些必需的清理活动,但我们并不知道垃圾回收器何时被调用,或它是否被调用。因此我们可以显式编写一个特殊方法来清理,并确保客户端程序员知晓他们必须调用这个方法。其首要任务就是:必须将这一清理动作置于finally子句中,以预防异常的出现。

组合和继承都允许在新的类中放置子对象。
组合通常用于想在新类中使用现有类的功能而非它的接口。




在这里插入图片描述

必须在域的定义处或者每个构造器中用表达式对finally进行赋值,这正是finally域在使用前总是被初始化的原因所在。

在这里插入图片描述
类中所有的private方法都隐式指定为是final的。
当将某个类的整体定义为final时,表明不打算继承该类,而且也不允许别人这样做。

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值