Java核心技术读书笔记02
第四章 对象和类
类之间的关系
最常见的三种关系
- 依赖("uses-a") Order依赖Account类看信息
- 聚合("has-a") Order包含多个Item
- 继承("is-a")
知识点:所有Java对象都存在堆中。
GregorianCalendar类所包含的方法要比Date类多得多。
public避免标记实例域,public数据域允许程序中的任何方法对其进行读取和修改,这破坏了封装。强烈建议用private。
- 构造器和类同名
- 每个类中有一个以上的构造器
- 构造器的参数可以有0个,1个或多个参数
- 构造器没有返回值
- 构造器总是伴随着new操作一起调用
如果需要返回一个可变对象的引用,应该先对它进行克隆。
静态方法:
- 一个方法不需要访问对象状态,其所需参数都是显示参数
- 一个方法只需要访问类中的静态域
静态代码块是在类被加载时被创建,非静态代码块是对象被创建时被加载的,不创建不会执行该类的非静态代码块。
·
public class TestA {
public static void main(String[] args) {
B b=null;
b=new B();
}
}
class B{
public static int numB=1;
static{
System.out.println("static block: "+numB);
}
{
System.out.println("block: "+numB);
}
public B(){
System.out.println("no parameter constructor");
}
public B(String string){
System.out.println(" str parameter constructor");
}
}
·
结果:
·
public class TestA {
public static int numB=1;
static{
System.out.println("static block: "+numB);
}
{
System.out.println("block: "+numB);
}
public TestA(){
System.out.println("no parameter constructor");
}
public TestA(String string){
System.out.println(" str parameter constructor");
}
public static void main(String[] args) {
TestA a=null;
System.out.println("1111111111111");
a =new TestA();
}
}
·
结果:
类的导入
- java.util.Date today=new java.util.Date()
- impory java.uril.*;
如果一个类要使用2个相同的Date 则选择第一种
java.util.Date deadline=new java.util.Date();
java.sql.Date today =new java.sql.Date();
import 语句不仅可以导入类,还增加了导入静态方法和静态域的功能。
classpath
(1).何时需要使用-classpath:当你要编译或执行的类引用了其它的类,但被引用类的.class文件不在当前目录下时,就需要通过-classpath来引入类
(2).何时需要指定路径:当你要编译的类所在的目录和你执行javac命令的目录不是同一个目录时,就需要指定源文件的路径(CLASSPATH是用来指定.class路径的,不是用来指定.java文件的路径的)
类的设计技巧
- 一定要保证数据私有。
- 一定要对数据初始化。
- 不要在类中使用过多的基本类型。
- 不是所有的域都需要独立的域访问器和域更改器。
- 将职责过多的类进行分解。
- 类名和方法名要能够体现它们的职责。
public:public表明该数据成员、成员函数是对所有用户开放的,所有用户都可以直接进行调用
private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,私有财产神圣不可侵犯嘛,即便是子女,朋友,都不可以使用。
protected:protected对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private。
Java核心技术读书笔记02的更多相关文章
- Java核心技术读书笔记01
Volume I Chapter 1 An Introduction to Java • 1.1 Java as a Programming Platform• 1.2 The Java ‘Whi ...
- Java核心技术-读书笔记
基本语法 Java中的所有函数都属于某个类的方法 Java没有任何无符号的int.long.short 或 byte 类型 浮点数值不适用于无法接受舍入误差的金融计算中,比如2.0-1.1不会输出想要 ...
- 《The Linux Command Line》 读书笔记02 关于命令的命令
<The Linux Command Line> 读书笔记02 关于命令的命令 命令的四种类型 type type—Indicate how a command name is inter ...
- java effective 读书笔记
java effective 读书笔记 []创建和销毁对象 静态工厂方法 就是“封装了底层 暴露出一个访问接口 ” 门面模式 多参数时 用构建器,就是用个内部类 再让内部类提供构造好的对象 枚举 si ...
- 强化学习读书笔记 - 02 - 多臂老O虎O机问题
# 强化学习读书笔记 - 02 - 多臂老O虎O机问题 学习笔记: [Reinforcement Learning: An Introduction, Richard S. Sutton and An ...
- 深入理解Java虚拟机 -- 读书笔记(1):JVM运行时数据区域
深入理解Java虚拟机 -- 读书笔记:JVM运行时数据区域 本文转载:http://blog.csdn.net/jubincn/article/details/8607790 本系列为<深入理 ...
- Java并发读书笔记:线程安全与互斥同步
目录 导致线程不安全的原因 什么是线程安全 不可变 绝对线程安全 相对线程安全 线程兼容 线程对立 互斥同步实现线程安全 synchronized内置锁 锁即对象 是否要释放锁 实现原理 啥是重进入? ...
- 单元测试之道Java版——读书笔记
单元测试知道Java版读书笔记 首先我们必须要知道我们所写的代码,它的功能是什么,如果我们不了解代码的行为,那么也就无从测试. 我们测试的目的,是为了我们整个程序架构的稳定,代码其实就是欧文要实现功能 ...
- Java:并发笔记-02
Java:并发笔记-02 说明:这是看了 bilibili 上 黑马程序员 的课程 java并发编程 后做的笔记 3. 共享模型之管程-1 本章内容-1 共享问题 synchronized 线程安全分 ...
随机推荐
- [Tool] Open Multiple Terminal Tabs on npm Start with ttab and npm-run-all
Often times when developing web applications, you need to open multiple tabs to run different script ...
- [WebGL入门]二十三,反射光的光照效果
注:文章译自http://wgld.org/,原作者杉本雅広(doxas).文章中假设有我的额外说明.我会加上[lufy:],另外,鄙人webgl研究还不够深入.一些专业词语.假设翻译有误.欢迎大家指 ...
- 通过buildpath 导入jar和在lib下导入的jar包区别
jar包放置在WEB-INF/lib下和通过build path导入的区别是什么? jar包直接拷贝到WEB-INF/lib下和以userLibrary形式引入的区别? jar包放置在WEB-INF/ ...
- xtrabackup 2.3.3编译安装
***************************************************************** 安装 ******************************* ...
- NoSQL数据库:Redis内存使用优化与存储
Redis常用数据类型 Redis最为常用的数据类型主要有以下五种: ●String ●Hash ●List ●Set ●Sorted set 在具体描述这几种数据类型之前,我们先通过一张图了解下Re ...
- 每日总结-05-19(AC自己主动机结束)
今天下午讨论了一下校赛的题,最终最终拍板,把校赛的题目定下来了. 然后今天A掉了4个AC自己主动机的题目.最终完毕了AC自己主动机专辑里面的15个题.至此AC自己主动机全然结束. 明天开启线段树专题. ...
- WCF学习笔记——不支持内容类型 text/xml; charset=utf-8
我在使用WCF的时候,客户端运行报错: 不支持内容类型 text/xml; charset=utf-8 原因是WCF服务做了修改.刷新客户端的服务引用,问题消失 =================== ...
- Mac safari 下iframe的hash取不到BUG
RT http://192.168.1.66/salaryl#abc 这样的链接是取不到hash的, 需要在最后加上斜杠,如下:http://192.168.1.66/salaryl/#abc fuc ...
- UESTC--1253--阿里巴巴和n个大盗 (博弈)
阿里巴巴和n个大盗 Time Limit: 1000MS Memory Limit: 65535KB 64bit IO Format: %lld & %llu Submit St ...
- 自适应阈值分割—大津法(OTSU算法)C++实现
大津法是一种图像灰度自适应的阈值分割算法,是1979年由日本学者大津提出,并由他的名字命名的.大津法按照图像上灰度值的分布,将图像分成背景和前景两部分看待,前景就是我们要按照阈值分割出来的部分.背景和 ...