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
相关文档:
先来了解一下链表模式的原理:
首先写一个JavaBean,内容是要添加的元素和该元素的节点。
public class NodeBean implements Serializable
{
private Object data; //元素本身
private NodeBean next; //下一个节点
&n ......
1.Java的代码一般分为两大类:一种是结构定义语句;一种是功能语句(功能语句要用分号结尾)。
2.用/* 内容 */注释,内容里面是不能存在/* */的;但是可以存在//;因为这样就不会发生系统不知道哪个*/才是真的结束符。
3.变量使用前必须初始化,使用单引号的作用就是把里面的字 ......
除 八个基本类型(Long ,short,int ,float,double,char,byte,boolean)外,其他的数据类型都被称为“引用类型”,也即:Object。Object的操作全是通过对象的引用(Object references),引用可以理解为指针,容易让人对应到C++的传址上面去。所以,大家要注意喽!java里面虽说没指针,其实却不然。 ......
java工作者社区主办
1. 【复选】收入有涨,有干头
22.22%
2. 【复选】收入不乐观,没干头
8.89%
3. 【单选】年收入50万以上
2.22%
4. 【单选】年收入20万~50万
4.44%
5. 【单选】年收入10万~20万 ......
package bag;
import java.util.*;
public class Dou {
/*
* 生成扑克牌
*/
public String[] puke() {
String[] s1 = { "黑桃", "红桃", "梅花", "方片" };
String[] s2 = { "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J",
  ......