快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

java 多态与抽象工厂-----------菜鸟学飞第二步

win2000 AdvSer
JCreator Pro 2.5
JDK 1.4.2
================================
/*
* @(#)ClsDyna.java 1.0 04/12/25
*
* You can modify the template of this file in the
* directory ../JCreator/Templates/Template_1/Project_Name.java
*
* You can also create your own project template by making a new
* folder in the directory ../JCreator/Template/. Use the other
* templates as examples.
*
*/
package myprojects.clsdyna;
import java.util.*;

class ClsDyna {

public ClsDyna() {

}

public static void main(String args[]) {
System.out.println("Starting ClsDyna...");
person pr=new boy("万青");
person pg=new girl("李敏");
System.out.println(pr.toString());
System.out.println(pg.toString());
System.out.println("==========");
personFactory pc=new personFactory("吴波",true,33);
person tc=pc.GetPerson();
System.out.println(tc.getName());
System.out.println(tc.toString());


}
}
abstract class person
{
protected String name;
protected boolean sex;
protected int age;
protected int id;
private static int pid;
static {
pid=1000;
}
public static int PersonID()
{
return pid++;
}
public person(String na,boolean sx,int ag)
{
/*
//it also can write like this
name=na;sex=sx;
age=ag;
id=person.PersonID();

*/
this(na,ag);
if(!sx)
this.setSex(false);



}
public person(String na,int ag)
{
name=na;age=ag;sex=true;//this(na);
id=person.PersonID();
}
public person(String na)
{
name=na;age=18;sex=true;
id=person.PersonID();
}
public int getId()
{
return id;
}
public String getName()
{
return name;
}
public void setName(String na)
{
name=na;
}
public int getAge()
{
return age;
}
public void setAge(int dg)
{
age=dg;
}
public boolean isSex()
{
return sex;
}
protected void setSex(boolean sx)
{
sex=sx;
}
public String toString()
{
return "ID:"+id+";Name:"+name+";Age:"+age+";Sex:"+ (sex?"男":"女");
}
abstract void sayHello();

}
class boy extends person
{

public boy(String na,int age)
{
super(na,age);
this.setSex(true);
}
public boy(String na)
{
super(na);
this.setSex(true);

}
public void sayHello()
{
System.out.println(this.toString());
}

}
class girl extends person
{
public girl(String na,int age)
{
super(na,age);
this.setSex(false);
}
public girl(String na)
{
super(na);
this.setSex(false);

}
public void sayHello()
{
System.out.println(this.toString());
}

}
class personFactory
{
protected person pBoyGirl;
public personFactory(String na,boolean sx,int ag)
{
if(sx)
pBoyGirl=new boy(na,ag);
else
pBoyGirl=new girl(na,ag);



}
public person GetPerson()
{
return pBoyGirl;
}

}





返回类别: 教程
上一教程: 纪念Java经典的SandBox概念
下一教程: JUnir源码分析(一)

您可以阅读与"java 多态与抽象工厂-----------菜鸟学飞第二步"相关的教程:
· java 多态与抽象工厂-----------菜鸟学飞第二步
· java接口用法学习----------------java菜鸟学飞第一步
· java接口用法学习----------------java菜鸟学飞第一步
· 《Java编程思想》(第二版)第7章:多态(polymorphism)
· 《Java编程思想》(第二版)第07章:多态(polymorphism)
    微笑服务 优质保证 索取样品