首页 > 代码库 > 类与对象归档

类与对象归档

1总结Java字段初始化的规律。

 

Java初始化的地方有两个:初始化块和构造函数,其中初始化又分为实例初始化块和静态初始化块,实例初始化块没有关键字修饰,而静态初始化块由static修饰。

 

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

 

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

 

 

 

2.当多个类之间有继承关系时,创建子类对象会导致父类初始化块的执行。请自行编写示例代码验证以上结论

 

示例代码:

 

public class Jicheng {

 

public static void main(String[] args){

 

Son a=new Son();

 

a.show();

 

}

 

}

 

class Father{

 

String name;

 

{

 

name="Father";

 

}

 

}

 

 

 

 

 

class Son extends Father{

 

int age=20;

 

void show()

 

{

 

System.out.println("名字"+name);

 

System.out.println("年龄"+age);

 

}

 

}

 

 

 

 

3.静态方法中只允许访问静态数据,那么,如何在静态方法中访问类的实例成员(即没有附加static关键字的字段或方法)?请编写代码验证你的想法。

 

 代码

 

class Exercise{

 

int a=0;

 

static int b;

 

static public int getb(int newb)

 

{

 

b=newb;

 

System.out.println(b);

 

return b;

 

}

 

public int num()

 

{

 

int a=1;

 

return a;

 

}

 

}

 

public class Shi {

 

public static void main(String[] args){

 

Exercise e=new Exercise();

 

e.getb(10);

 

e.num();

 

}

 

 

 

}

 

 

 

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

 

代码:

 

class Jishu{

 

private static int a;

 

public Jishu()

 

{

 

a++;

 

}

 

public static int get()

 

{

 

return a;

 

}

 

}

 

public class DuixiangNum {

 

public static void main(String[] args){

 

Jishu j1=new Jishu();

 

Jishu j2=new Jishu();

 

 

 

System.out.println("创建对象的个数为:"+Jishu.get());

 

}

 

}技术分享

 

类与对象归档