不好意思有点标题党了。不过你要是能在5分钟之类不用调试工具就非常正确的写出下面代码执行的结果,我就可以很负责任的告诉你:你已经不是菜菜了。:)class base0{
{
System.out.println("base0初始化块1");
}
base0(){
System.out.println("base0构造函数");
}
{
System.out.println("base0初始化块2");
}
static {
System.out.println("base0静态方法1");
}
{
System.out.println("base0初始化块3");
}
static {
System.out.println("base0静态方法2");
}
}class base1 extends base0{
{
System.out.println("base1初始化块1");
}
base1(){
System.out.println("base1构造函数");
}
{
System.out.println("base1初始化块2");
}
static {
System.out.println("base1静态方法1");
}
{
System.out.println("base1初始化块3");
}
static {
System.out.println("base1静态方法2");
}
}class base2 extends base1{
{
System.out.println("base2初始化块1");
}
base2(){
System.out.println("base2构造函数");
}
{
System.out.println("base2初始化块2");
}
static {
System.out.println("base2静态方法1");
}
{
System.out.println("base2初始化块3");
}
static {
System.out.println("base2静态方法2");
}
}public class Test extends base2{
{
System.out.println("Test初始化块1");
}
private Test( int ix){
System.out.println("Test数据成员ix:" + this.ix);
System.out.println("Test构造函数ix:" + ix);
}
{
System.out.println("Test初始化块2");
}
static {
System.out.println("Test静态方法1");
}
{
System.out.println("Test初始化块3");
}
static {
System.out.println("Test静态方法2");
}
private int ix = 100; public static void main(String[] args) {
System.out.println("开始Test类的main方法");
Test t1;
System.out.println("开始Test类第一个对象的实例化");
t1 = new Test(1);
Test t2;
System.out.println("开始Test类第二个对象的实例化");
t2 = new Test(2);
}
}
{
System.out.println("base0初始化块1");
}
base0(){
System.out.println("base0构造函数");
}
{
System.out.println("base0初始化块2");
}
static {
System.out.println("base0静态方法1");
}
{
System.out.println("base0初始化块3");
}
static {
System.out.println("base0静态方法2");
}
}class base1 extends base0{
{
System.out.println("base1初始化块1");
}
base1(){
System.out.println("base1构造函数");
}
{
System.out.println("base1初始化块2");
}
static {
System.out.println("base1静态方法1");
}
{
System.out.println("base1初始化块3");
}
static {
System.out.println("base1静态方法2");
}
}class base2 extends base1{
{
System.out.println("base2初始化块1");
}
base2(){
System.out.println("base2构造函数");
}
{
System.out.println("base2初始化块2");
}
static {
System.out.println("base2静态方法1");
}
{
System.out.println("base2初始化块3");
}
static {
System.out.println("base2静态方法2");
}
}public class Test extends base2{
{
System.out.println("Test初始化块1");
}
private Test( int ix){
System.out.println("Test数据成员ix:" + this.ix);
System.out.println("Test构造函数ix:" + ix);
}
{
System.out.println("Test初始化块2");
}
static {
System.out.println("Test静态方法1");
}
{
System.out.println("Test初始化块3");
}
static {
System.out.println("Test静态方法2");
}
private int ix = 100; public static void main(String[] args) {
System.out.println("开始Test类的main方法");
Test t1;
System.out.println("开始Test类第一个对象的实例化");
t1 = new Test(1);
Test t2;
System.out.println("开始Test类第二个对象的实例化");
t2 = new Test(2);
}
}
楼主【redbridge】截止到2008-07-19 22:17:13的历史汇总数据(不包括此帖):
发帖的总数量:22 发帖的总分数:480 每贴平均分数:21
回帖的总数量:40 得分贴总数量:6 回帖的得分率:15%
结贴的总数量:21 结贴的总分数:460
无满意结贴数:5 无满意结贴分:210
未结的帖子数:1 未结的总分数:20
结贴的百分比:95.45 % 结分的百分比:95.83 %
无满意结贴率:23.81 % 无满意结分率:45.65 %
值得尊敬
base0静态方法2
base1静态方法1
base1静态方法2
base2静态方法1
base2静态方法2
Test静态方法1
Test静态方法2
base0初始化块1
base0初始化块2
base0初始化块3
base1初始化块1
base1初始化块2
base1初始化块3
base2初始化块1
base2初始化块2
base2初始化块3
Test初始化块1
Test初始化块2
Test初始化块3
开始Test类的main方法
开始Test类第一个对象的实例化
base0构造函数
base1构造函数
base2构造函数
Test数据成员ix:100
Test数据成员ix:1
开始Test类第二个对象的实例化
base0构造函数
base1构造函数
base2构造函数
Test数据成员ix:100
Test数据成员ix:2
base0静态方法1
base0静态方法2
base1静态方法1
base1静态方法2
base2静态方法1
base2静态方法2
Test静态方法1
Test静态方法2
开始Test类的main方法
开始Test类第一个对象的实例化
base0初始化块1
base0初始化块2
base0初始化块3
base0构造函数
base1初始化块1
base1初始化块2
base1初始化块3
base1构造函数
base2初始化块1
base2初始化块2
base2初始化块3
base2构造函数
Test初始化块1
Test初始化块2
Test初始化块3
Test数据成员ix:100
Test构造函数ix:1
开始Test类第二个对象的实例化
base0初始化块1
base0初始化块2
base0初始化块3
base0构造函数
base1初始化块1
base1初始化块2
base1初始化块3
base1构造函数
base2初始化块1
base2初始化块2
base2初始化块3
base2构造函数
Test初始化块1
Test初始化块2
Test初始化块3
Test数据成员ix:100
Test构造函数ix:2
基础不成问题,把这些语句挨着看下来,再把结果写出来比较郁闷,呵呵
说原理倒是easy