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);
}
}
当多个类之间有继承关系时,创建子类对象会导致父类初始化块的执行。
请自行编写示例代码验证以上结论。(博客作业)
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);
}
}
相关文章推荐
- Java 正则表达式
- 常用 Java 静态代码分析工具的分析与比较
- java练习
- Spring 通过配置向 Quartz定时任务 注入service
- Java中的ConcurrentHashMap
- MyEclipse设置JAVA选中高亮显示
- java线程池的简单使用
- spring IOC源码分析(3)
- Java相对路径总结
- json对象转java对象
- struts2+ajax实现异步验证实现
- 使用递归算法结合数据库解析成java树形结构
- Java常用的设计模式10:设计模式之 值对象
- 信号量在Java线程中的应用
- struts2+ajax实现异步验证
- Eclipse中使用kindeditor插件
- CSDN,我焦辉林来啦!我必须战胜自己学会java没有退路!
- eclipse 操作HDFS时出现Permission denied的三个解决方法
- Eclipse使用问题——web程序部署问题
- Java IO1:IO和File