Java一些动手动脑实验
一、Java字段初始化的规律:


输出结果为:100 和 300
当把{filed=200}放在public int field=100之后输出结果为:200 和 300
所以执行类成员定义时指定的默认值或类的初始化块,到底执行哪一个要看哪一个“排在前面”。
类的初始化块不接收任何的参数,而且只要一创建类的对象,它们就会被执行。因此,适合于封装那些“对象创建时必须执行的代码”。
二、当多个类之间有继承关系时,创建子类对象会导致父类初始化块的执行。请自行编写示例代码验证以上结论。
代码:


结果:

三、请运行TestStaticInitializeBlock.java示例,观察输出结果,总结出“静态初始化块的执行顺序”。
代码:


结果:

所以,先执行static“静态初始化块”,并且静态初始化块只执行一次。创建子类型的对象时,也会导致父类型的静态初始化块的执行。
四、静态方法中只允许访问静态数据,那么,如何在静态方法中访问类的实例成员(即没有附加static关键字的字段或方法)?请编写代码验证你的想法。
静态方法不能直接访问同一类中的非静态成员,所以必须先创建对象,再通过对象访问成员,即将实例成员值赋给静态成员,静态方法通过访问静态成员来访问实例成员。
代码如下:
package yanzheng;
public class Er
{
int i =123;
static int Temp;
public static void A()
{
System.out.println(Temp);
}
public int B()
{
int x = 100;
return x;
}
public static void main(String args[])
{
Er e = new Er();
Temp = e.B();
e.A();
}
}
五、使用类的静态字段和构造函数,我们可以跟踪某个类所创建对象的个数。请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象?”。
代码:

结果:

Java一些动手动脑实验的更多相关文章
- JAVA课堂动手动脑实验--方法的重载定义,组合数的递归算法
		
1. 请看以下代码,你发现了有什么特殊之处吗? 答:此程序中的两个方法虽然方法名一样,但是参数的数据类型不同: 这是方法的重载,方法的重载需要满足的条件: 1)方法名相同: 2)参数类型不同,参数个数 ...
 - java课堂动手动脑及课后实验总结
		
动手动脑一:枚举 输出结果: false false true SMALL MEDIUM LARGE 分析和总结用法 枚举类型的使用是借助ENUM这样一个类,这个类是JAVA枚举类型的公共基本 ...
 - Java的动手动脑
		
动手动脑及课后实 仔细阅读示例: EnumTest.java,运行它,分析运行结果? public class EnumTest { public static void main(String[] ...
 - Java之动手动脑(三)
		
日期:2018.10.12 星期五 博客期:017 这次留了两个动手动脑作业!我需要一个一个来说!先说第一个吧! Part 1 :随机生成1000个随机数 代码: //以下为 RandomMaker. ...
 - java的动手动脑10月20日
		
(1)动手动脑 该函数没有赋初值再就是如果类提供一个自定义的构造方法,将导致系统不在提供默认的构造方法. (2) public class test { /*** @param args*/publi ...
 - java异常处理动手动脑问题解决和课后总结
		
动手动脑 一.问题:请阅读并运行AboutException.java示例,然后通过后面的几页PPT了解Java中实现异常处理的基础知识. 1.源代码 import javax.swing.*; cl ...
 - java课java方法动手动脑
		
动手动脑: import java.util.Scanner; public class Random { public static void main(String[] args) { ...
 - Java的动手动脑(七)
		
日期:2018.11.18 博客期:025 星期日 Part 1:使用 Files.walkFileTree()来找出指定文件夹下大小大于1KB的文件 package temp; import jav ...
 - Java的动手动脑(六)
		
日期:2018.11.8 星期四 博客期:022 --------------------------------------------------------------------------- ...
 
随机推荐
- 夺命雷公狗---DEDECMS----6快速入门之总结篇
			
我们dedecms四大表分别是: dede_channeltype(模型表) dede_arctype(栏目表) dede_archives(文章主表) dede_addonXXXX(附加表) 使用d ...
 - com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException
			
Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You ...
 - HTML输入框点击内容消失
			
在input标签中这样写 type='text' onfocus='if(this.value=='请输入内容以搜索') this.value=''' onblur='if(this.value==' ...
 - 【linux】xx is not in the sudoers file 解决办法
			
原帖地址:http://blog.sina.com.cn/s/blog_4ef045ab0100j59t.html 我用的是redhat5.4,在一般用户下执行sudo命令提示llhtiger is ...
 - Workspace Cloning / Sharing in Jenkins
			
http://lwandersonmusings.blogspot.com/2011/06/workspace-cloning-sharing-in-hudson.html What's insi ...
 - 关键词:ACM & 大小端 & 面试官
			
关于“ACM” fender0107401 :面试了一个在ACM拿过奖的人 我问了他几个问题: 读取数组中的一个元素,计算复杂度是多少,回答不清楚. 往链表里面存一个数,不排序的情况下,计算复杂度是多 ...
 - DIB位图文件的格式、读取、保存和显示(转载)
			
一.位图文件结构 位图文件由三部分组成:文件头 + 位图信息 + 位图像素数据 1.位图文件头:BitMapFileHeader.位图文件头主要用于识别位图文件.以下是位图文件头结构的定义: type ...
 - maven相关
			
1. 创建/导入maven项目时 eclipse默认jdk版本配置:http://blog.csdn.net/lzj0470/article/details/42292021 2. eclipse 使 ...
 - JNI开发流程-JNI/NDK【转】
			
本文转载自:http://wiki.jikexueyuan.com/project/jni-ndk-developer-guide/workflow.html 开发流程 JNI 全称是 Java Na ...
 - 161121、hibernate导致数据出错的两个地方
			
一.在查询出来的对象上直接设置属性(该属性配置了可以持久化,如果不是可持久化的就没有关系). 出错的代码:(查询用的不好也会导致数据更新哦) Pagination pagination = group ...