2. Java基础和细节-对象与类
1. 类之间的关系
1)依赖(uses-a)
2)聚合(has-a)
3)继承(is-a)
类关系的UML符合如下:
2. 时间
1)Date用来表示时间点
2)GregorianCalendar日历表示法,继承Calendar
3)不同地区的输出,在main方法的第一行添加:
Locale.setDefault(Locale.ITALY);
3. 重载
1)相同的函数名字,不同的参数,可以是个数不同或者参数类型不同
2)返回值不同不是重载
4. 调用构造器步骤
1)所有数据域被初始化为默认值(0、false或null)
2)按照在类声明中出现的次序,依次执行所有域初始化语句和初始化块
3)如果构造器第一行调用了第二个构造器,则执行第二个构造器主体
4)执行这个构造器的主体
5)Random
5. 关闭钩子
Runtime.addShutdownHook
6. 包作用域
1)public任意使用
2)private只能被定义它们的类使用
3)什么都不指定,可以被同一个包中的所有方法访问
4)protected继承,同一个包
public | protected | default | private | |
同类 | T | T | T | T |
同包 | T | T | T | |
子类(不同包) | T | T | ||
不同包中无继承关系的类 | T |
7. 设置类路径
java -cp/-classpath c:\classdir:.:c:\archives\archive.jar MyProg.java
8. 文档注释
1)插入注释,/**开始,*/结束,中间是*格式文本;或者以@开始。*格式文本可以使用html修饰符,用于强调的<em></em>,等宽"打字机"字体的<code></code>,着重强调的<strong></strong>以及包含图像的<img src="doc-files/uml.png" alt="UML diagram" >,图像文件放在子目录doc-files中
2)方法注释
@param variable description
@return description
@throws class description
3)域注释,只需要对公有域(通常是静态常量)建立文档
/** * The "Hearts" card suit */ public static final int HEARTS = 1;4)通用注释
@author name
@version text 当前版本描述
@since text 对引入特性的版本描述 @since version 1.7.1
@deprecated text 取代的建议@deprecated Use<code>setVisible(true)</code>instead
@see reference 在see also部分增加一个超级链接reference可以选用
package.class#feature label
<a href="...">label</a>
"text"
@see com.horstmann.corejava.Employee#raiseSalary(double)
@see <a href="www.horstmann.com/corejava.html">The Core Java page</a>
@see "Core Java 2 volume 2"
@link,用法同see的第一种用法
5)包与概述注释
提出一个以package.htm命名的文件,在标记<BODY>...</BODY>之间的所有文本会被抽出来
提供一个以package-info.java命名的Java文件,该文件以/**开头以*/结束
概况性注释,放在overview.html的文件中,该文件位于包含所有源文件的父目录中。在标记<BODY>...</BODY>之间的所有文本会被抽出来
6)注释的抽取,切换到project目录下
project
|-- com
|-- horst
|--mann
|--overview.html
javadoc -d docDirectory nameOfPackage
javadoc -d docDirectory nameOfPackage1 nameOfPackage2...
javadoc -d docDirectory *.java
1)一定将数据设计为私有
2)一定要对数据初始化
3)不要在类中使用过多的基本数据类型,可以使用类组织进行代替
4)不是所有的域都需要独立的get/set方法
5)使用标准格式进行类的定义,公有域->包作用域->私有域->实例方法->静态方法->实例域->静态域
6)将职责过多的类进行分解
7)类名和方法名要能够体现它们的职责
javadoc - The Java API Documentation Generator
推荐阅读
-
java面试必备之类和对象 博客分类: java基础 java类和对象
-
java中子类与父类中的静态代码块、非静态代码块和构造函数的加载顺序 博客分类: JAVA基础 静态代码块非静态代码块加载顺序
-
java中子类与父类中的静态代码块、非静态代码块和构造函数的加载顺序 博客分类: JAVA基础 静态代码块非静态代码块加载顺序
-
Java面向对象与类(一):类与对象,封装和构造方法
-
Java基础篇(一):类与对象--------总结小归纳
-
Java基础知识 || 06_类与对象、封装、构造方法
-
Java基础知识 六 类与对象、封装、构造方法
-
Java基础知识Day07--类与对象
-
Java入门基础之数组以及类与对象 个人笔记
-
阿里Java学习路线:阶段 1:Java语言基础-Java面向对象编程:第1章:类与对象:课时5:对象内存分析