摘要:
- Math为例 在math这个类中有很多静态方法,而且你不能对Math进行实例化,即 Math mathObject = new Math(); 会提示错误信息是,构造函数为 private,你不能调用构造函数(看到私有构造函数的作用了吧,关于private的构造函数,向后再说?)- 静态方法 通常是使用方法, 则不需要类得实例. static 一种不依靠实例变量也就不需要对象的行为。用类名调用 Math.min(88, 77);- 带有静态方法的含义 通常这种带有静态方法的类是不打算初始化的,我们可以通过私有的构造函数来限制非抽象类被初始化。 (类似Math类这种,如果定义成抽象类是不合适 阅读全文
posted @ 2013-04-09 10:54
神之一招
阅读(686)
评论(0)
推荐(0)
摘要:
- 接口是抽象类, 抽象类无法初始化. 综合以上动物类, 你可以写: wolf aWolf = new Wolf(); Animal aHippo = new Hippo(); 但是这样会很奇怪: 如下: Animal anim = new Animal(); // anim 长什么样子… 所以, 有些类不应该被初始化 ! 所以, 这个 Animal 类就是我们想要的, 可以作为基类来多态, 同时又不想它被“new”出实例来. 你可以用这个类来做引用, 这就是当初为何要有抽象类型的目的. 当你设计好继承结构时, 你必须要决定哪些类是抽象的, 哪些是具体的. abstract class Can 阅读全文
posted @ 2013-04-09 09:12
神之一招
阅读(492)
评论(0)
推荐(0)
摘要:
- 栈和堆 当java虚拟机启动时, 它会从底层的操作系统取得一块内存, 并以此区段来执行java程序. 栈: 主要用来保存方法和局部变量. 堆: 保存所有对象. 实例变量存在于对象所属的堆空间上. 编译器会根据实例变量所需要的空间分配, 例如int类型需要32位等等, 如果变量本身是个对象的引用, 那也没关系, 只是分配能够装下引用的 空间就可以了, 至于该引用所指向的空间, 要看程序是否分配(即用 new 来创建对象), 例如: private Antenna ant; 只是创建了一个引用 private Antenna ant = new Antenna(); 才是在堆内存中分配了空间. 阅读全文
posted @ 2013-04-09 09:12
神之一招
阅读(325)
评论(0)
推荐(0)