Head First Java读书笔记

2017-02-06  本文已影响0人  西门吹灰

2.类与对象

P_41

全局对象表示方法:加上public, static, final;
Java程序中如果类非常多时,可以包装成jar文件

3.primitive主数据类型和引用

P_51
数据类型:boolean, char(0 ~ 65535), byte(-128 ~ 127)

4.方法操作实例变量

P_78
Java中所传递的所有东西都是值,方法传入的参数是引用对象的变量时,引用对象的变量所携带的时远程控制而不是对象本身,实际传入的是远程控制的拷贝。

如果有混合不同类型的值要返回时,需要用到ArrayList

P_81
将实例变量标记为private,将getter和setter标记为public

P_84
实例变量永远有默认值,局部变量没有默认值

P_86
== 判断两个引用对象是否引用到堆上的同一个对象
equals() 判断两个对象是否真的相等

7.继承与多态

方法的覆盖 Override,不能更改存取权限
方法的重载 Overload, 不能只改变返回值类型,可以更改存取权限

8.接口与抽象类

 * 接口 interface
 * 1.解决多重继承的问题。把全部的方法设为抽象的
 * 2.接口方法是抽象的必须以;结尾,没有内容
 * 3.>当你把一个类当做多态类型运用时,相同的类型必定来自同一个继承树,
 *    而且必须是该多态类型的子类 
 *   >当你使用接口来作为多态类型时,对象可以来自任何地方。
 *    该对象必须是来自有实现此接口的类
 * 4.将对象的状态保存在文件中,实现Serializable
 *   让对象的方法以单独的线程执行,实现Runnable
 * ########### 1.抽象类 abstract
 * 1.抽象的类代表此类必须要被extend过,抽象的方法代表此方法一定要被覆盖过
 * 2.抽象的方法没有实体
 * 3.不能在非抽象类中拥有抽象方法
 * 4.在第一个继承树下的第一个具体类必须实现所有抽象的方法
 * 5.如果声明出一个抽象的方法,就必须将类也标记为抽象的。不能在非抽象类中拥有抽象方法
 * 6.抽象类可以带有抽象和非抽象的方法
 *      abstract Animal --> abstract Canine --> Dog
 *      Canine可以实现Animal的抽象方法,让Dog不必实现这个部分
 * 
 * 抽象方法的意义:就算无法实现出方法的内容,但还是可以定义出一组子型共同的协议
 * 
 * ########### 2.根类 Object
 * 所有类均继承于Object, 不是抽象类
 * 1.包含的方法:equals(), getClass(), hashCode(), toString()
 * 2.Object实例的应用时机:线程的同步化
 * 3.用途:1.作为多态让方法可以应付多种类型的机制。
 *        2.提供Java在执行期对任何对象都有需要的方法的实现程序代码(让所有的类都继承到)。
 *          有一部分的方法与线程有关。
 * 
 * ########### 3.运算符 instanceof
 *  if (o instanceof Dog) {
 *      Dog d = (Dog)o;
 *  }

9.构造器与垃圾收集器

1.如果我们没有调用super(), 编译器会帮我们加上super()调用
2.每个构造函数可以选择调用this()或super(),必须是第一行语句
3.null是代表“空”的字节组合。
4.对null引用使用圆点运算符会在执行期遇到NullPointerException

10.数字与静态

1.使类不能被初始化:
> 使用abstract标记类
> 使用私有的构造函数
2.取得新对象的方法: new, 序列化(deserialization), Java Reflection API
3.静态的方法不能调用非静态的变量,方法
4.可以用 引用变量 代替 类名称 调用 静态方法。但不推荐
> Duck d = new Duck();
String[] s = { };
d.main(s);
5.静态变量
> 被同类的所有实例共享的变量
> 静态变量会在该类的 任何对象创建之前,任何静态方法执行之前 就完成初始化
6.public static final double PI = 3.14...
> public 可供各方读取
> static 不需要Math实例
> final 一个被标记为final的变量代表它一旦被初始化之后就不会改动
> 常熟变量的名称应该要都是大写字母
7.final 值一旦被赋值就不能更改。
的方法不能被覆盖。
的类不能被继承。
> 类被标记为final,方法就不用标记了
> 如果类只有静态的方法,可将构造函数标记为 private 的以避免初始化
8.Math random(), abs(), round(), min(,), max(,)
9.Boolean, Character, Byte, Short, Integer, Long, Float, Double

  * 静态初始化程序 static initializer 是一段在加载类时会执行的程序代码,
  * 它会在其他程序可以使用该类之前就执行,所以很适合放静态final变量的起始程序

P_299
格式化

1.png

P_301
常用:%d, %f, %x, %c
日期:%tc, %tr, %tA %tB %td

P_307
静态import

11.异常处理

P_343
MidiEvent

12.图形用户接口

* 以add开头的Listener且取用listener接口参数的方法,
* eg. addKeyListener(KeyListener k)
* 有这种 method 的 class 就是 KeyEvent 的来源

Graphics: drawImage, drawLine, drawPolygon, drawRect, drawOval, fillRect, fillRoundRect, setColor

Graphics2D: fill3DRect, draw3DRect, rotate, scale, sheer, transform, setRenderingHints

P_368
总结

上一篇下一篇

猜你喜欢

热点阅读