栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

《On Java 8》(Java编程思想第五版)学习笔记 第七章封装

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

《On Java 8》(Java编程思想第五版)学习笔记 第七章封装

第七章 封装
  • 重构概念:
    • 重构就是重写可工作的代码,使之更加可读,易懂,因而更易维护。
  • 重构时遇到的问题:
    • 要避免修改客户端程序员依赖引用的代码,可在实现代码前通过权限修饰符指明哪些类对于客户端程序员是可用的,哪些是不可用的。
7.1 包的概念
  • 包内包含一组类,它们被组织在一个单独的命名空间(namespace)下
  • package 包名 这行代码必须是文件中非注释的第一行代码。
  • 举例:使用java.util包中的ArrayList类时有两种方法:
    • 一是用包名.类名创建
    • 二是先导包,直接用类名创建
public class FullQualification {
	public static void main(String[] args) {
		java.util.ArrayList list = new java.util.ArrayList(); //包名.类名
	} 
}
--------------------------------------------------------------
import java.util.ArrayList; //先导包
public class Singleimport {
	public static void main(String[] args) {
		ArrayList list = new ArrayList();  //直接用类名创建
	} 
}
  • 通过包,解决了类名冲突。
7.1.1 代码组织
  • .java 编译后得到 .class
  • 在 Java 中,可运行程序是一组 .class 文件,它们可以打包压缩成一个 Java文档文件(JAR,使用 jar 文档生成器)。Java 解释器负责查找、加载和解释这些文件。
  • package 和 import 这两个关键字将单一的全局命名空间分隔开,从而避免名称冲突。
7.1.2 创建独一无二的包名
  • 按照惯例,package 名称反顺序的 Internet域名。例如域名为 xxit.com ,则包名则为com.xxit.。
7.1.3 冲突
import com.mindviewinc.simple.*;
import java.util.*;
  • 如果上面导入的两个包中都有一个Vector类,则存在类名冲突。
  • 要想使用这个Vector类则必须是包名.类名的形式。
7.1.4 定制工具库 7.1.5 使用import改变行为 7.1.6 使用包的忠告 7.2 访问权限修饰符
  • public protected 空(包权限) private
修饰符本类中同一个包中不同包(子类)不同包(无关类)
public
protected×
××
private×××
7.2.1 包访问权限 7.2.2 public:接口访问权限 7.2.3 默认包 7.2.4 private:你无法访问 7.2.5 protected:继承访问权限 7.2.6 包访问权限 Vs Pulic构造器
  • 在一个具有包访问权限的类中定义一个 public 的构造器并不能真的使这个构造器成为 public,在声明的时候就应该标记为编译时错误。
package hiding.packageaccess;
class PublicConstructor {
	public PublicConstructor() {}
}
7.3 类访问权限
  • 类权限修饰符只有:包访问权限或者 public。
7.3.1 接口和实现
  • 访问控制通常被称为隐藏实现(implementation hiding)。将数据和方法包装进类中并把具体实现隐藏被称作是封装(encapsulation)。其结果就是一个同时带有特征和行为的数据类型。
7.4 类访问权限
  • 包访问权限或者 public
7.5 本章小结
  • 控制成员访问权限有两个原因。
    • 第一个原因是使用户不要接触他们不该接触的部分
    • 第二个是为了让类库设计者更改类内部而不用担心会影响到客户端程序员。比如最初以某种方式创建一个类,随后发现如果更改代码结构可以极大地提高运行速度。如果接口与实现被明确地隔离和保护,你可以实现这一目的,而不必强制客户端程序员重新编写代码。访问权限控制确保客户端程序员不会依赖某个类的底层实现的任何部分。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/531945.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号