您的位置:首页 > 编程语言 > Java开发

headfirst java ( 第 10 章 )

2013-04-09 10:54 399 查看
- 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 等等

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













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

- autoboxing

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





其他使用的 autoboxing 情况:





















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

- 数字的格式化

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

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









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









超过一项以上的参数时





日期格式化

















操作日期

java.util.Date 和 java.util.Calendar





Calendar 有很多 API, 直接调用就可以操作
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: