本次项目是:以面向对象的思想设计动物乐园系统。 动物乐园中有猫,鸭子等成员,还可以增加新成员。 猫和鸭子都有自己的名字,都有自己的腿,但腿的条数不同,猫和鸭子会发出叫声,猫的叫声是:喵喵喵……,鸭子的叫声是;嘎嘎嘎……

public abstract class animal {

protected String name;

public animal(String name) {

super();

this.name = name;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public abstract void show();

}

---------------------------------2

public interface lu {

public int leg();

}

-------------------------3

public class cat extends animal implements lu{

private int leg;

public cat(String name, int leg) {

super(name);

this.leg = leg;

}

public int getLeg() {

return leg;

}

public void setLeg(int leg) {

this.leg = leg;

}

---------------------------------------------4

public class duck extends animal implements lu {

private int leg;

public duck(String name, int leg) {

super(name);

this.leg = leg;

}

public int getLeg() {

return leg;

}

public void setLeg(int leg) {

this.leg = leg;

}

@Override

public void show() {

// TODO Auto-generated method stub

System.out.println("嘎");

}

@Override

public int leg() {

return this.leg;

}

}

------------------5

public class hai extends animal {

public hai(String name) {

super(name);

}

@Override

public void show() {

System.out.println("海豚");

}

}

---------------

public class test {

private static Object lu;

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

animal[] a=new animal[3];

a[0]=new cat("小猫",4);

a[1]=new duck("鸭子",2);

a[2]=new hai("海豚");

System.out.println("动物的名字"+"\t"+"腿数"+"\t\t"+"动物叫");

for(int i=0;i<a.length;i++)

{

if(a[i] instanceof lu)

{

String name=a[i].getName();

int legnum=((lu)a[i]).leg();

//System.out.println(name+ "\t\t" +legnum+ "\t\t");

System.out.print(name + "\t\t" + legnum + "\t\t");

a[i].show();

}

else

{

String name=a[i].getName();

System.out.print(name+ "\t\t" +0+ "\t\t");

a[i].show();

}

}

}

}

时间: 2024-11-06 16:38:00

本次项目是:以面向对象的思想设计动物乐园系统。 动物乐园中有猫,鸭子等成员,还可以增加新成员。 猫和鸭子都有自己的名字,都有自己的腿,但腿的条数不同,猫和鸭子会发出叫声,猫的叫声是:喵喵喵……,鸭子的叫声是;嘎嘎嘎……的相关文章

python基础----以面向对象的思想编写游戏技能系统

1. 许多程序员对面向对象的思想都很了解,并且也能说得头头是道,但是在工作运用中却用的并不顺手. 当然,我也是其中之一. 不过最近我听了我们老师的讲课,对于面向对象的思想有了更深的理解,今天决定用一个实例跟大家分享一下. 欢迎各位前辈评论指正. 2.面向对象的三大特征:封装.继承.多态          六大原则: 开闭原则,单一职责,依赖倒置,组合复用,里氏替换,迪米特法则 3. 可是这三大特征和六大原则具体如何运用,又从哪里才能体现出我应用到了呢? 下面我就以一个游戏技能项目的代码实例,来讨

用面向对象的思想设计问题

本例子以一道面试题为例 农场一头小母牛, 每年生头小母牛, 母牛五岁产母牛, 二十年上多少牛? 在设计类以及设计对象的问题上.我们可能会以农场.母牛分别添加一个类,在分析类之后,对于该类的属性以及类的方法,又怎么分的呢? 由题目上所看出的,农场有牛,牛有岁数,岁数一到就又可以new 一头小牛. 然后以此类推,不妨我们可以用递归的方式来进行对牛进行判断循环并添加,题中求返回20年内农场里有多少头牛 因此我们可以对农场Farm的属性Cow以集合的方式定义,并且,农场必须还有添加小牛的方法,每年农场增

面向对象的几大设计原则

对于面向对象软件系统的设计而言,在支持可维护性的同时,提高系统的可复用性是一个至关重要的问题,如何同时提高一个软件系统的可维护性和可复用性是面向对象设计需要解决的核心问题之一.在面向对象设计中,可维护性的复用是以设计原则为基础的.每一个原则都蕴含一些面向对象设计的思想,可以从不同的角度提升一个软件结构的设计水平.       面向对象设计原则为支持可维护性复用而诞生,这些原则蕴含在很多设计模式中,它们是从许多设计方案中总结出的指导性原则.面向对象设计原则也是我们用于评价一个设计模式的使用效果的重

面向对象思想设计原则 及常见设计模式

1.面向对象思想设计原则 在实际的开发中,我们要想更深入的了解面向对象思想,就必须熟悉前人总结过的面向对象的思想的设计原则. 1)单一职责原则:就是开发人员经常说的”高内聚,低耦合”.也就是说,每个类应该只有一个职责,对外只能提供一种功能,而引起类变化的原因应该只有一个.在设计模式中,所有的设计模式都遵循这一原则. 2)开闭原则:一个对象对扩展开放,对修改关闭.也就是说,对类的改动是通过增加代码进行的,而不是修改现有代码.软件开发人员一旦写出了可以运行的代码,就不应该去改动它,而是要保证它能一直

java 28 - 1 设计模式 之 面向对象思想设计原则和模版设计模式概述

在之前的java 23 中,了解过设计模式的单例模式和工厂模式.在这里,介绍下设计模式 面向对象思想设计原则 在实际的开发中,我们要想更深入的了解面向对象思想,就必须熟悉前人总结过的面向对象的思想的设计原则 单一职责原则 开闭原则 里氏替换原则 依赖注入原则 接口分离原则 迪米特原则 单一职责原则 其实就是开发人员经常说的"高内聚,低耦合" 也就是说,每个类应该只有一个职责,对外只能提供一种功能,而引起类变化的原因应该只有一个.在设计模式中,所有的设计模式都遵循这一原则. 开闭原则 核

面向对象编程思想的哲学起源(转载)

http://www.xuebuyuan.com/566309.html 本来想象着写一整篇「面向对象编程思想的哲学起源」这样的题目,笔走纸上,方才发现这样的题目足够出本书,知识不够,写不动.但心里还是想写点自己的所思所想. 全篇就拿JAVA来举例了.众所周知,面向对象的四大基本要素:抽象(Abstract).封装(Encapsulation).继承(Inheritance).多态(Polymorphism). 很多人坚持<逻辑学>是唯物哲学的基础,不懂,姑且不论.哲学就是对自然学科的抽象,看

以一个简单的项目来学习面向对象编程(设计模式和多线程)

下面的项目是两年前学校老师布置的一个小项目,当时自己用了一种很笨拙的方式实现了,现在用面向对象的思想和多线程重构这个项目. 问题描述: 西宝高速仿真模拟 西安市到宝鸡市之间是我省主要的高速公路客运路线之一,经过简化后的客运路线端点.中途停靠点和里程如下图所示(括号里是简称,里程的单位是公里): 限定条件 (1) 从XN始发至BJ的客车和从BJ始发至XN的客车均有两种车型:沃尔沃(限定乘客人数为40人):依维柯(限定乘客人数为21人).沃尔沃的速度为2公里/分钟,依维柯的速度为1.4公里/分钟.

75.JAVA编程思想——设计范式

75.JAVA编程思想--设计范式 向大家介绍重要但却并不是那么传统的"范式"(Pattern)程序设计方法. 在向面向对象程序设计的演化过程中,或许最重要的一步就是"设计范式"(Design Pattern)的问世.它在由Gamma,Helm 和Johnson 编著的<DesignPatterns>一书中被定义成一个"里程碑"(该书由Addison-Wesley 于1995 年出版).那本书列出了解决这个问题的23 种不同的方法.我

Python3+Selenium2完整的自动化测试实现之旅(五):自动化测试框架、Python面向对象以及POM设计模型简介

前言 之前的系列博客,陆续学习整理了自动化测试环境的搭建.IE和Chrome浏览器驱动的配置.selenium-webdriver模块封装的元素定位以及控制浏览器.处理警示框.鼠标键盘等方法的使用,这些内容还需要后续多加练习掌握,以达到灵活运用的程度.but,这仅仅只是开始,说明咱们能够使用selenium框架下的webdriver写出一个个测试用例脚本,也仅仅写给自己看看,如果需要写100条.1000条测试脚本,并能够高效快速的编写完成并批量执行,且要看到完整的执行结果,失败多少,成功多少,等