动手动脑和课后作业
2015-10-17 09:57
295 查看
1.以下代码为何无法通过编译?哪儿出错了?
原因:对象变量不能相等
2.当多个类之间有继承关系时,创建子类对象会导致父类初始化块的执行。
3.静态初始化块的执行顺序。
如果定义初始化块时使用了static修饰符,则变成了静态初始化块。静态初始化块时类相关的,系统将在类初始化阶段执行静态初始化块,而不是在创建对象时才执行。
静态初始化块总是比普通初始化块先执行。与普通初始化块类似的是,系统在类初始化阶段执行静态初始化块时,不仅会执行本类的静态初始化块,而且还会一直上溯到java.lang.Object类,先执行java.lang.Object类中的静态初始化块,然后执行其父类的静态初始化块,最后才执行该类的静态初始化块。经过这个过程,才完成了该类的初始化过程。
4.请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象?
源代码:
package boke;
public class Student{
public static void main(String[] args){
Information a = new Information();
a.OutputInformation();
Information b = new Information();
b.OutputInformation();
} }
class Information{
static int num=0;
Information()
{ num++;
}
public void OutputInformation()
{
System.out.println("你已经创建了"+num+"个对象!");
}
}
原因:对象变量不能相等
2.当多个类之间有继承关系时,创建子类对象会导致父类初始化块的执行。
3.静态初始化块的执行顺序。
如果定义初始化块时使用了static修饰符,则变成了静态初始化块。静态初始化块时类相关的,系统将在类初始化阶段执行静态初始化块,而不是在创建对象时才执行。
静态初始化块总是比普通初始化块先执行。与普通初始化块类似的是,系统在类初始化阶段执行静态初始化块时,不仅会执行本类的静态初始化块,而且还会一直上溯到java.lang.Object类,先执行java.lang.Object类中的静态初始化块,然后执行其父类的静态初始化块,最后才执行该类的静态初始化块。经过这个过程,才完成了该类的初始化过程。
4.请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象?
源代码:
package boke;
public class Student{
public static void main(String[] args){
Information a = new Information();
a.OutputInformation();
Information b = new Information();
b.OutputInformation();
} }
class Information{
static int num=0;
Information()
{ num++;
}
public void OutputInformation()
{
System.out.println("你已经创建了"+num+"个对象!");
}
}
相关文章推荐
- Glide加载圆形图片
- keepalived+nginx 双主模型实现高可用服务
- 电子电路的识图
- button按钮与submit按钮误用(韩顺平时尚购物网)
- C语言——存储类和动态内存分配
- 1045 Bode Plot
- HDU1035 Robot Motion(java)
- 客户端服务端交互
- Java字段初始化
- ios 为什么拖拽的控件为weak 手写的strong
- 懂得放弃,才会拥有!
- 浅析MySQL Replication(复制)原理
- Spring3系列10- Spring AOP——Pointcut,Advisor拦截指定方法
- 1690: [Usaco2007 Dec]奶牛的旅行
- Linux下安装ruby
- jquery-qrcode生成二维码
- 编写更好 Bash 脚本的 8 个建议
- 如何更改MFC对话框默认的窗口类名
- shell学习的点点滴滴―启动脚本
- C++中的RAII机制 http://www.jellythink.com/archives/101