12.1.2 抽象的综合实例

12.1.2 抽象的综合实例 - 图1

图 12.1 抽象分析图

【实例12.2】本节将列举一个包含前面很多知识点的综合实例,其中有接口、抽象、继承等概念。下面先了解这个综合实例的流程,如图12.2所示。

12.1.2 抽象的综合实例 - 图2

图 12.2 抽象综合实例的流程图

上面流程图所对应的代码如下所示。


01 ///这是一个主运行类

02 ///通过构造函数创建f1和f2两个花的对象

03 ///通过设置器分别设置两个对象的参数

04 ///通过tostring输出对象

05 public class flowertest

06 {

07 public static void main(String[]args)

08 {

09 flower1 f1=new flower1();

10 flower1 f2=new flower1();

11 f1.setcolor("红色");

12 f1.setname("牡丹");

13 f1.setcountry("中国");

14 f1.setcity("沈阳");

15 f2.setcolor("黄色");

16 f2.setname("玫瑰");

17 f2.setcountry("美国");

18 f2.setcity("拉斯维加斯");

19 System.out.println(f1.tostring());

20 System.out.println(f2.tostring());

21 }

22 }

23 ///这是一个花的接口

24 ///其中的方法没有被实现

25 interface flower

26 {

27 void setcolor(String color1);

28 void setname(String name);

29 String getcolor();

30 String getname();

31 }

32 ///这是一个花的类,实现了上面的那个接口

33 ///通过设置器来设置对象的参数

34 ///通过访问器来获得对象的参数

35 ///通过tostring方法来让对象以字符串的形式输出

36 class flowers implements flower

37 {

38 private String color1;

39 private String name;

40 public void setcolor(String color1)

41 {

42 this.color1=color1;

43 }

44 public void setname(String name)

45 {

46 this.name=name;

47 }

48 public String getcolor()

49 {

50 return color1;

51 }

52 public String getname()

53 {

54 return name;

55 }

56 public String tostring()

57 {

58 String information="花的名称是:"+name+";"+""+"花的颜色是:"+color1;

59 return information;

60 }

61 }

62 ///这是一个花的类,继承了上面的那个类

63 ///通过设置器来设置对象的参数

64 ///通过访问器来获得对象的参数

65 ///通过tostring方法来让对象以字符串的形式输出

66 class flower1 extends flowers

67 {

68 private String country;

69 private String city;

70 public void setcountry(String country)

71 {

72 this.country=country;

73 }

74 public void setcity(String city)

75 {

76 this.city=city;

77 }

78 public String getcountry()

79 {

80 return country;

81 }

82 public String getcity()

83 {

84 return city;

85 }

86 public String tostring()

87 {

88 String information=super.tostring()+""+"这种花出自的国家:"+country+";

89 "+""+"出自的城市:"+city;

90 return information;

91 }

92 }


【代码说明】第5~22行是主运行程序,第25~31行定义一个接口flower,第36~61行定义了一个类flowers实现接口flower。第66~92行定义了一个类flower1继承类flowers。

【运行效果】


花的名称是:牡丹;花的颜色是:红色这种花出自的国家:中国;出自的城市:沈阳

花的名称是:玫瑰;花的颜色是:黄色这种花出自的国家:美国;出自的城市:拉斯维加斯


这个程序通过抽象的思维方式,将花类抽象成只有两个属性的类,一个是颜色,一个是名称。如果要涉及个性,就使用继承的关系,或覆盖的方法来创建其他的类。其实抽象只是一个思路,不是一个具体的概念。养成抽象的思维方式,对于开发工作十分重要。