您的位置:首页 > 编程语言 > Java开发

java类与对象

2015-10-17 21:27 417 查看
Java字段初始化 首先初始化块进行初始化,然后构造方法进行赋值,最后字段初始值赋值。

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

请自行编写示例代码验证以上结论。(博客作业)

package text1;

class father {

public static int n=56;

}

class son extends father

{

public static void out()

{

System.out.println(n);

}

}

public class Text {

public static void main(String args[])

{

son.out();

}

}



验证InitializeBlockDemo例子



在静态方法中用非静态的方法调用非静态的字段

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

package count;

public class Count {

public static void main(String[] args) {

Number a=new Number();

Number b=new Number();

System.out.println("你己经创建了" + Number.number+"个对象");

}

}

class Number

{

static int number;

public Number()

{

number++;

}

int getNumber()

{

return number;

}

}



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





静态初始化块在普通初始化块,无参数构造器,带参构造器之前执行,同是静态初始化块按照类的先后顺序执行。

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

请编写代码验证你的想法。(发表到博客

public class Search

{

private String name;

public Search(String name)

{

this.name=name;

}

public static void main(String args[])

{

Search s=new Search("李 ");

Search s2=new Search("总");

s.ask(s);

s.ask(s2);

}

public static void ask(Search s)

{

s.say();

}

public void say()

{

System.out.println(name);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: