1 编写程序,实现一个“学生”类继承"人"类
具体要求:
(1)声明一个类Person,该类拥有三个成员变量,分别是private修饰的String类型的id,String的name,int的age,三个成员方法getId()和setId()以及public修饰的printName()方法。
(2)声明类Student继承自Person,子类也有自己的变量,String类型的school和printSchool()成员方法。
(3)声明测试主类T01,在main()中声明Student对象s,直接设置该对象的id、name和age是你的名字、学校是河南应院;调用成员方法输出该对象的姓名和学校。
- Person类
package hati.lsz.ch02;
/**
* (1)声明一个类Person,该类拥有三个成员变量,分别是private修饰的String类型的id,String的name,int的age,
三个成员方法getId()和setId()以及public修饰的printName()方法。
* @author
*
*/
public class Person {
private String id;
private String name;
private int age;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void printName() {
System.out.println( "Person [id=" + id + ", name=" + name + ", age=" + age + "]");
}
}
- Student 类
package hati.lsz.ch02;
/**
*
* @author
* (2)声明类Student继承自Person,子类也有自己的变量,String类型的school和printSchool()成员方法。
*/
public class Student extends Person{
private String school;
public String getSchool() {
return school;
}
public void setSchool(String school) {
this.school = school;
}
public void printSchool() {
System.out.println("Student [school=" + school + "]");
}
}
- T01类
package hati.lsz.ch02;
import java.util.Date;
/**
*
* 1 编写程序,实现一个“学生”类继承"人"类
* 具体要求:
* (1)声明一个类Person,该类拥有三个成员变量,分别是private修饰的String类型的id,String的name,int的age,
* 三个成员方法getId()和setId()以及public修饰的printName()方法。
*
* (2)声明类Student继承自Person,子类也有自己的变量,String类型的school和printSchool()成员方法。
*
* (3)声明测试主类T01,在main()中声明Student对象s,直接设置该对象的id、name和age是你的名字、学校是河南应院;
* 调用成员方法输出该对象的姓名和学校。
* @author
*
*/
public class T01 {
public static void main(String[] args) {
// (3)声明测试主类T01,在main()中声明Student对象s,直接设置该对象的id、name和age是你的名字、学校是河南应院;
// 调用成员方法输出该对象的姓名和学校。
Student s = new Student();
s.setId("1");
s.setName("小明");
s.setAge(13);
s.setSchool("河南应院");
s.printName();
s.printSchool();
}
}
- 效果图
2 多态性练习(可用于借鉴):
编写程序实现工厂生产产品。
工厂可以生产不同的产品:
包括打印机、手机,这些产品有共同属性:类型、厂商、价格,
打印机有自己的特性:
打印色彩、打印纸张大小;
手机有自己的特性:屏幕大小、CPU。
工厂根据产品类型生产不同的产品。
- 效果
- 结构图
- T01类
package hati.lsz.ch02;
/**
* 多态性练习:
编写程序实现工厂生产产品。
工厂可以生产不同的产品:
包括打印机、手机,这些产品有共同属性:类型、厂商、价格,
打印机有自己的特性:
打印色彩、打印纸张大小;
手机有自己的特性:屏幕大小、CPU。
工厂根据产品类型生产不同的产品。
* @author
*
*/
public class T01 {
public static void main(String[] args) {
Factory f = new Phone1();// 向上转型
f.factory(); 调用的是 Factory 的 factory
Phone1 phone1 = new Phone1(); //向下转型
phone1.character(); // 调用的是 Phone1 的 character
getshow(new Phone2()); //以 Phone2 对象调用 show 方法
System.out.println();
getshow(new Printer1());//以 Printer1 对象调用 show 方法
System.out.println();
getshow(new Printer2());//以 Printer2 对象调用 show 方法
System.out.println();
}
public static void getshow(Factory f) {
f.factory();
// 类型判断
if (f instanceof Phone1) { // 猫做的事情
Phone1 c = (Phone1)f;
c.character();
} else if (f instanceof Phone2) { // 猫做的事情
Phone2 c = (Phone2)f;
c.character();
} else if (f instanceof Printer1) { // 猫做的事情
Printer1 c = (Printer1)f;
c.character();
} else if (f instanceof Printer2) { // 猫做的事情
Printer2 c = (Printer2)f;
c.character();
}
}
}
- Factory 类
package hati.lsz.ch02;
/**
* 工厂可以生产不同的产品:
包括打印机、手机,这些产品有共同属性:类型、厂商、价格,
* @author
*
*/
public abstract class Factory {
abstract void factory();
}
- Phone1 类
package hati.lsz.ch02;
/**
* 手机有自己的特性:屏幕大小、CPU。
工厂根据产品类型生产不同的产品。
* @author dell
*
*/
public class Phone1 extends Factory {
public void factory() {
System.out.println("手机类型:X1 /t 厂商:高通 /t 价格:2000");
}
public void character() {
System.out.println("屏幕大小:4.5*6");
System.out.println("CPU:F468");
}
}
- Phone2 类
package hati.lsz.ch02;
/**
* 手机有自己的特性:屏幕大小、CPU。
工厂根据产品类型生产不同的产品。
* @author dell
*
*/
public class Phone2 extends Factory{
public void factory() {
System.out.println("手机类型:Q1 /t 厂商:三星 /t 价格:1000");
}
public void character() {
System.out.println("屏幕大小:5*7");
System.out.println("CPU:猎户座");
}
}
- Printer1 类
package hati.lsz.ch02;
/**
*
* @author
* 打印机有自己的特性:
* 打印色彩、打印纸张大小;
*/
public class Printer1 extends Factory{
public void factory() {
System.out.println("打印机类型:W1 /t 厂商:WW1 /t 价格:500");
}
public void character() {
System.out.println("打印色彩:红色");
System.out.println("打印纸张大小:A4");
}
}
- Printer2 类
package hati.lsz.ch02;
/**
*
* @author
* 打印机有自己的特性:
* 打印色彩、打印纸张大小;
*/
public class Printer2 extends Factory{
public void factory() {
System.out.println("打印机类型:EE /t 厂商:EE1 /t 价格:600");
}
public void character() {
System.out.println("打印色彩:紫色 ");
System.out.println("打印纸张大小:A5");
}
}