Java 编程思想第二章总结
第一篇博客,用来记录 Java 圣经的开始吧,这些东西之前已学过,但对一些细节并不了解(这也是让我决心读下去的关键,不愧是圣经,讲得真的透彻)。
用引用操作对象
一般的
这是我刚学 Java 时最搞不清的,什么是引用?什么是对象?书中用遥控器和电视机来举例子,原文如下:
尽管将一切都看作对象,但操纵的标识符实际上是对象的一个“引用(reference)”。可以将这一情形想象成用遥控器(引用)来操纵电视机(对象)。只要握住这个遥控器,就能保持与电视机的连接。当有人想改变频道或减小音量时,实际操控的是遥控器(引用),再由遥控器来调控电视机(对象)。如果想在房间里四处走走,同时能遥控电视机,那么只需携带遥控器(引用)而不是电视机(对象)。
遥控器可以随便拿,但想要操纵电视机,便需要让遥控器和电视机连在一块,也就是要 new 一个电视机(对象),让其和遥控器(引用)绑在一起。如果创建的引用没有给其 new 对象,便无法对这个引用发送消息。所以最安全的做法是创建引用的同时对其进行初始化。
特例:基本类型
对于基本类型我们并不会用 new 来创建其对象,其实此时我们创建的是一个并非是引用的“自动变量”。
基本类型具有的包装器类,使得可以在堆中创建一个非基本对象,用来表示对应的基本类型。例如:
char c='x';
Character ch=new Character(c);
注意:Java 中两个用于高精度计算的类 BigInteger 和 BigDecimal,他们大体上属于“包装器类”范畴,但二者都没有对应的基本类型。
static 关键字
通常来说,当创建类时,就是在描述那个类的对象的外观与行为。除非用 new 来创建那个类的对象,否则,实际上并未获得任何对象。执行 new 来创建对象时,数据空间才被分配,其方法才供外界调用。
但是,当声明一个事物是 static 时,就意味着这个域或方法不会与包含它的那个类的任何对象实例关联在一起。所以,即使从未创建某个类的任何对象,也可以调用其 static 方法或访问其 static 域。而非 static 域域和方法则必须知道它们一起运作的特定对象。
作用于字段:static int i=66;
作用于方法:
class MyClass{
static void test(){
...
}
}
当 static 作用于某个字段时:一个 static 字段对每个类来说都只有一份存储空间,而非 static 字段则是每个对象有一个存储空间。
当 static 作用于某个方法:static 方法的一个重要用法就是在不创建任何对象的前提下就可以调用它。所以,这一点定义对 main()方法很重要,因为 main()方法是应用的入口,在没有任何对象的情况下就得到了执行。
由于这一章是最常见的东西,所以阅读时困意并不那么明显,但随着章节的推进,困意已愈加严重,唉,一天读太多是不可能的,这辈子都不可能一天读太多,只能每天读一点才能维持的了学习这样子。不说了,小生继续修炼了。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于