类与对象

 类与对象

1、以下代码为何无法通过编译?哪儿出错了?

 

截图:

错误原因:构造方法与类名相同,系统已经由一个默认构造函数,给他设置一个形参即可。

2、使用上页幻灯片中定义的类,以下代码输出结果是什么?

 

请依据代码的输出结果,自行总结Java字段初始化的规律。

运行结果:

规律:初始化有两块:静态初始化和实力初始化。执行类成员定义时指定的默认值或类的初始化块,到底执行哪一个要看哪一个“排在前面”。执行类的构造函数。

3、当多个类之间有继承关系时,创建子类对象会导致父类初始化块的执行。

请自行编写示例代码验证以上结论。

代码:package hhhh;

class StaticDemo{

static int x;//静态变量x

int y;//实例变量 y

static public int getX()

{

return x;

}

static public void setX(int newX)

{

x=newX;

}

public int getY()

{

return y;

}

public void setY(int newY)

{

y=newY;

}

}

public class ShowDemo {

public static void main(String[] args)

{

// TODO Auto-generated method stub

StaticDemo pro=new StaticDemo();

System.out.println("静态变量x="+StaticDemo.getX());

System.out.println("实例变量y="+pro.getY());//false

StaticDemo a=new StaticDemo();

StaticDemo b=new StaticDemo();

a.setX(1);

a.setY(2);

b.setX(3);

b.setY(4);

System.out.println("静态变量a.x="+a.getX());

System.out.println("实例变量a.y="+a.getY());

System.out.println("静态变量b.x="+b.getX());

System.out.println("静态变量b.x="+b.getY());

}

}

原文地址:https://www.cnblogs.com/jingjing0629/p/4887669.html