类与对象

(一)以下代码输出结果是什么?

Java字段初始化的规律:上述程序中既有初始化块,又有构造方法,同时还设定了字段的初始值,显然在没有调用构造函数时,哪个排在前面哪个先使用,调用函数是根据参数个数确定使用哪个构造函数。

执行类成员定义时指定的默认值或类的初始化块,到底执行哪一个要看哪一个“排在前面”。

执行类的构造函数。

类的初始化块不接收任何的参数,而且只要一创建类的对象,它们就会被执行。因此,适合于封装那些“对象创建时必须执行的代码”。

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

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

验证代码:

public class Father {

 

public static void main(String[] args) {

// TODO 自动生成的方法存根

Son yu=new Son();

System.out.println(yu.a);

 

}

 

}

class Son{

int a=100;

{

a=200;

}

}

运行结果:

(三)静态方法中只允许访问静态数据,那么,如何在静态方法中访问类的实例成员(即没有附加static关键字的字段或方法)?

只要定义一个类的对象在通过对象调用即可。

示例程序:

class Eg{

static int a=100;

int b=50;

}

public class Exercise2 {

 

public static void main(String[] args) {

// TODO 自动生成的方法存根

System.out.println(Eg.a);

// System.out.println(Eg.b);    报错,因为不能用静态方法访问实例变量

Eg e=new Eg();

System.out.println(e.b);     //可以运行

}

 

}

运行结果截图:

(四)使用类的静态字段和构造函数,我们可以跟踪某个类所创建对象的个数。请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象?”。

程序代码:

//张雪晴 20142992  2015/10/17

class Nut{

static int a=0;//计数

public Nut()

{

a++;

}//每创建一个对象就会调用一次构造函数,所以调用构造函数的次数就是创建对象的个数

 

}

public class WorkOne {

 

public static void main(String[] args) {

// TODO 自动生成的方法存根

Nut a=new Nut();

Nut b=new Nut();

System.out.println("你已经创建了"+Nut.a+"个对象。");

}

 

}

结果截图:

转载于:https://www.cnblogs.com/1443188449qq/p/4887199.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值