美文网首页
Head First Java读书笔记

Head First Java读书笔记

作者: 西门吹灰 | 来源:发表于2017-02-06 19:03 被阅读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
    总结

    相关文章

      网友评论

          本文标题:Head First Java读书笔记

          本文链接:https://www.haomeiwen.com/subject/umxuittx.html