易截截图软件、单文件、免安装、纯绿色、仅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的容器 List,Map,Set

JAVA的容器---List,Map,Set
Collection
├List
│├LinkedList
│├ArrayList
│└Vector
│ └Stack
└Set
Map
├Hashtable
├HashMap
└WeakHashMap
Collection接口
  Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements)。一些 Collection允许相 ......

java设计模式一窥1

  Design Patterns in Java
-----------------------------------------
Steven John Metsker 
William C.Wake
-----------------------------------------
龚波等译
--------一、二章读书记录------
模式是集体智慧的结晶。它给出了相关行业中经验丰富的从业者所应用的所有的概念和方 ......

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


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

利用JAVA语言实现支持视频点播的WEB服务器

一.项目简介:
  JAVA语言是一种可移植的,简单的,健壮的嵌入式语言。并且对网络,数据库有很好的支持,基于JAVA语言的这种特性可以十分容易地建立一个小型INTERNET服务器。
  本项目中,作者用JAVA语言编写了一个WEB微型服务器,对简单的HTTP请求进行响应,并通过后端数据库对用户的查询进行处理,从而动态地返回HT ......

Assert 在Java和Groovy中的区别

对于防御性编程而言,assert一直都是非常重要的工具。但对于熟悉-ea参数的Java程序员而言,当他们看到所有Groovy断言无论是否有-ea都照样执行时一定会非常困惑。
事实上,Groovy的断言是无条件开启的!
对此,开发人员Roshan Dawrani做了如下解释:(原文)
The JDK documentation has a long chapter on assertions tha ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号