headfirst java ( 第 10 章 )

- Math为例

  在math这个类中有很多静态方法,而且你不能对Math进行实例化,即 Math mathObject = new Math();

  会提示错误信息是,构造函数为 private,你不能调用构造函数(看到私有构造函数的作用了吧,关于private的构造函数,向后再说?)

- 静态方法

  通常是使用方法, 则不需要类得实例. static 一种不依靠实例变量也就不需要对象的行为。用类名调用 Math.min(88, 77);

- 带有静态方法的含义 

  通常这种带有静态方法的类是不打算初始化的,我们可以通过私有的构造函数来限制非抽象类被初始化。 (类似Math类这种,如果定义成抽象类是不合适的,因为抽象类的特点是没有被继承的话就完全没用,但是Math还有很多方法是我们想使用的,而我们又不想创建Math的实例,所以,我们的解决方式是静态方法)。 静态方法是在类得基础上操作的,而非静态方法必须要实例化才能操作。

  静态方法不能调用非静态变量,静态方法无法引用到该类的任何实例变量(实例变量是只有创建对象时才会初始化,而静态方法是在类得模板里的,同样静态方法不能调用非静态方法)

  如果类只有静态方法,你可以将构造函数标记为 private 以免被初始化。

- 静态变量:它的值对所有实例来说都相同

  静态变量,就是共享变量,静态方法,也是共享方法,这样做是有意义的,比如你想知道有多少这个类的对象被创建了,怎么办,就是放一个共享的静态变量,创建一个,这个变量++,就可以了。

- 静态变量的作用

  静态变量会在该类得说任何静态方法执行之前就初始化。静态变量是类被加载时初始化的,通常,JAVA虚拟机会加载某个类是因为第一次有人尝试要创建该类的新实例,或是使用该类的静态方法或变量。

- 静态常数 final

  public static final double PI = 3.1415926;

  常量的名称应该都用大写字母

  类似 PI 这种还是用静态的比较好,如果是实例常量,那岂不是每个实例对象里边都有一个这么个常量,而它又是不变化的。

- 静态常量 初始化

  1. 声明的时候: public class Foo { public static final int FOO_X = 25; }

  2. 在静态初始化程序中:

     public class Bar {

         public static final double BAR_SIGN;

         static {    // 这段程序会在类加载时执行

              BAR_SIGN = (double)Math.random();

         }

     }

- final

  final的变量代表你不能改变它的值

  final的方法代表你不能覆盖掉该方法

  final的类代表你不能继承该类(也就是创建它的子类)

- 原子类型的包装, int, char, double 等等

  当你想以对象的方式来处理原子类型时,就使用包装

  image

  image

  image

  以上的包装是很重要的,因为在 ArrayList一定要对象的类型。

- autoboxing

  从 java 5.0 开始加入的 autoboxing 功能 能够自动的将 原子类型转换成包装对象,例如:

  image

  其他使用的 autoboxing 情况:

  image

  image

  image

  image

  image

  包装类型的静态实用方法,例如 Integer.parseInt(s); Double.toString(d);

- 数字的格式化 

  在java5.0之后通过 java.util的Formatter这个类来提供的。

  1. 将数字以带逗号的形式格式化,String s = String.format(“%, d”, 10000000); // 显示结果是 1,000,000,000 这里的%表示把参数放在这里的意思,

  image

  image

  很明显,%符号后面不可以随便填上任意的字符,格式化的语法

  image

  image

  超过一项以上的参数时

  image

  日期格式化

  image

  image

  image

  image

  操作日期

  java.util.Date 和 java.util.Calendar

  image

  Calendar 有很多 API, 直接调用就可以操作

posted @ 2013-04-09 10:54  神之一招  阅读(677)  评论(0编辑  收藏  举报