易截截图软件、单文件、免安装、纯绿色、仅160KB

JAVA初始化顺序略谈

package com.wensefu.constructor;
class Meal{
Meal(){
System.out.println("Meal()");
}
}
class Bread{
Bread(){
System.out.println("bread()");
}
}
class Chesse{
Chesse(){
System.out.println("Chesse()");
}
}
class Lettuce{
Lettuce(){
System.out.println("Lettuce()");
}
}
class Lunch extends Meal{
Lunch(){
System.out.println("Lunch()");
}
}
class PortableLunch extends Lunch{
PortableLunch(){
System.out.println("PortableLunch()");
}
}
/*
* 1,调用基类构造器,此过程会反复递归下去
* 2,按照声明顺序调用成员的初始化方法
* 3,调用导出类构造器的主体
*/
public class Demo extends PortableLunch{

private Bread b=new Bread();
private Chesse c=new Chesse();
private Lettuce l=new Lettuce();

public Demo() {
// TODO Auto-generated constructor stub
System.out.println("Demo()");
}
public static void main(String[] args) {
new Demo();
}

}

输出:
Meal()
Lunch()
PortableLunch()
bread()
Chesse()
Lettuce()
Demo()
package com.wensefu.duotai;
abstract class Glyph{
abstract void draw();
Glyph(){
System.out.println("Glyph() before draw()");
draw();
System.out.println("Glyph() after draw()");
}
}
class RoundGlyph extends Glyph{
private int radius=1;
RoundGlyph(int r){
radius=r;
System.out.println("RoundGlyph.RoundGlyph(), radius="+radius);
}
@Override
void draw() {
// TODO Auto-generated method stub
System.out.println("RoundGlyph.draw(),radius="+radius);
}
}
/*
* 初始化实际过程:
* 1,在其他任何事物发生之前,将分配给对象存储空间初始化成二进制的零
* 2,调用基类构造器,此时,调用被覆盖后的draw()方法,(在调用RoundGlyph构造器之前调用),
* 3,按照声明的顺序调用成员的初始化方法
* 4,调用导出类的构造方法
*/
public class PolyConstructors {

public static void main(String[] args) {
new RoundGlyph(6);
}
}

输出:
Glyph() bef


相关文档:

深入理解java反射


一、什么是反射:
      反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。这一概念的提出很快引发了计算机科学领域关于应用反射性的研究。它首先被程序语言的设计领域所采用,并在Lisp和面向对象方面取得了成绩。其中LEAD/LEAD++ 、Open ......

传智播客java培训 Java编程基础


1.Java的代码一般分为两大类:一种是结构定义语句;一种是功能语句(功能语句要用分号结尾)。
2.用/*    内容 */注释,内容里面是不能存在/*  */的;但是可以存在//;因为这样就不会发生系统不知道哪个*/才是真的结束符。
3.变量使用前必须初始化,使用单引号的作用就是把里面的字 ......

【调查数据】2010年 JAVA工作者收入调查! javaCS.cn

java工作者社区主办
 
1.  【复选】收入有涨,有干头
 
 
22.22%
2.  【复选】收入不乐观,没干头
 
 
8.89%
3.  【单选】年收入50万以上
 
 
2.22%
4.  【单选】年收入20万~50万
 
 
4.44%
5.  【单选】年收入10万~20万 ......

Java: @Override must override a superclass method

如果你用的是myeclipse 6.0 而且 在使用
@Override 时出现以下错误:
The method XXXXXX   of type XXXXXXXXX must
override a superclass method
那是因为你的Compiler 是jdk1.5,只要把它改为 1.6就可以了
方法:
1. window ->preferences... -> java -> Compiler
2. Compiler compliance lev ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号