在面向对象的设计过程中,一个非常重要的一点就是要将发生变化的东西和保持不变的东西分隔开。

包是Java中一个很重要的概念,在用Java进行软件开发的时候,经常会使用到包,不同的包里面可能会存在名字相同的类,因此要注意冲突处理。正是由于这种潜在的名字冲突,因此要对Java中的命名空间进行完整的控制。

创建Java源码文件的时候,通常叫一个编辑单元(编译单元),它必须以.java作为文件名的后缀,并且编译单元里只有一个public类,它必须与编译文件有相同的名字(包括大小写)。编译一个.Java文件时,会生成一系列.class文件,对应于.Java文件中的每个类。这样最终从少量的.,Java文件中得到了很多.class文件,可以将它们封装、压缩到一个jar文件中。

package语句必须作为java源文件的第一个非注释语句,它的作用是指出这个源文件属于哪一个库,库的名字中所有单词都应该小写。

作为一名库设计者,一定要记住package和import关键字允许我们做的事情就是分割单个全局命名空间,保证我们不会遇到命名冲突。

命名中的冲突:
导入语句:

import com.bruceeckel.util.*;

import java.util.*;

如果这两个包里面都包含一个Vector类,那么就会造成潜在的冲突,如果现在试着生成一个Vector类的对象,就会存在冲突,因为编译器不知道要用哪个包里面的Vector类来生成对象。因此,这时可以采用这种形式:

java.util.Vector oVector = new java.util.Vector()。

转载于:https://www.cnblogs.com/superhuake/archive/2012/06/27/2566110.html

Think in Java读书笔记--隐藏实施过程相关推荐

  1. Effective Java 读书笔记(七):通用程序设计

    Effective Java 读书笔记七通用程序设计 将局部变量的作用域最小化 for-each 循环优于传统的 for 循环 了解和使用类库 如果需要精确的答案请避免使用 float 和 doubl ...

  2. think in java 读书笔记 2 —— 套接字

    目录 think in java 读书笔记 1 --移位 think in java 读书笔记 2 -- 套接字 think in java 读书笔记 3 -- 数据报 概要 1. 套接字基本知识 2 ...

  3. Effective Java读书笔记(二)

    Effective Java 读书笔记 (二) 创建和销毁对象 遇到多个构造器参数时要考虑使用构建器 创建和销毁对象 何时以及如何创建对象? 何时以及如何避免创建对象? 如何确保它们能够适时地销毁? ...

  4. head first java读书笔记

    head first java读书笔记 1. 基本信息 页数:689 阅读起止日期:20170104-20170215 2. 标签 Java入门 3. 价值 8分 4. 主题 使用面向对象的思路介绍J ...

  5. #java读书笔记#面向对象2

    上一篇java读书系列笔记文章:#java读书笔记#面向对象1 14.Math类的使用(重点) (1)数学操作类:该类没有构造函数,方法均为静态的 (2)掌握内容 A:成员变量 **E:比任何其他值都 ...

  6. Java读书笔记(4)-多线程(二)

    Java读书笔记(4)-多线程(二) 2016-1-2 线程通信 传统的线程通信 Object类提供了wait(),notify()和notifyAll三个方法 适用情况:synchronized修饰 ...

  7. Java读书笔记(8)-单例模式

    Java读书笔记(8)-单例模式 今天在阅读<Effective Java 2>第3条时,获知一种使用枚举enum实现单例模式的新方法,然而书上并没有就此展开深入说明,于是上网查阅了一些资 ...

  8. 图像工程的读书笔记 图像成像过程

    图像工程的读书笔记  图像成像过程 成像是一个复杂的过程,当成像的目的是图像分析时,常需考虑下面的三个问题: 1几何关系:在图像中什么地方可发现目标,这需要了解图像的成像的变换的知识. 2放射性质:图 ...

  9. Effective Java读书笔记完结啦

    Effective Java是一本经典的书, 很实用的Java进阶读物, 提供了各个方面的best practices. 最近终于做完了Effective Java的读书笔记, 发布出来与大家共享. ...

最新文章

  1. e.V4p.C0/index.php,php-fpm进程在Kubernetes中接收SIGKILL信号
  2. [NOI2015]程序自动分析
  3. jsonp跨域原理_【网站技术解读①】Javascript实现跨域请求
  4. Vue实现仿音乐播放器14-实现搜索页面以及功能
  5. Centos升级Python 2.7并安装pip、ipython
  6. 快速创建 IEqualityComparer 实例:改进
  7. django-models类索引外键时候的related_name属性作用
  8. 是什么使波西米亚狂想曲成为杰作-数据科学视角
  9. 编写高质量代码的50条黄金守则-Day 03(首选is或as而不是强制类型转换)
  10. 共享共建会让中国的5G加速吗?
  11. 【C++】用sort函数产生的段错误问题
  12. SpringBoot + Mybatis 多模块( module )项目搭建教程
  13. google浏览器添加抓包插件
  14. 糯米网电子商务模式:上线当天销售额600多万元的缘由
  15. 云化Web IDE,在线开发新模式
  16. 技.艺.道:器-python一站式平台Jupyter(丘比特)入门
  17. 2021年安全生产模拟考试(全国特种作业操作证电工作业-电气试验模拟考试题库二)安考星
  18. 无需建网站,不用发帖,持续获取搜索引擎流量的方法(灰白项目皆可)
  19. Hyperledger Fabric2中文文档-修改通道配置
  20. 源代码静态检测分析技术浅析

热门文章

  1. An example of EXPORT / IMPORT usage - in office integration and odata metadata model cache
  2. NPM useful library path: request.js
  3. 使用nodejs消费SAP Cloud for Customer上的Web service
  4. 乾坤大挪移:SAP CRM WebClient UI 和 SAP Fiori UI 混搭并存
  5. 非域计算机上模拟域用户,App-V如何让非域内(工作组)PC 也能享受应用程序虚拟化...
  6. Loadrunner--运行场景报Socket descriptor not found错误
  7. codis配置_codis 源码理解
  8. mysql 5.5 重新编译_源码编译mysql5.5过程记录
  9. 2个字节能存多少个16进制_MySql中的varchar长度究竟是字节还是字符
  10. c语言顺序查找算法,c语言实现排序和查找所有算法