我的第一个java项目——面向对象设计。

这个项目模拟了一个基于控制台的新闻/视频+留言版应用,使用面向对象设计,包括人类、运动员、各领域运动员和粉丝的类。运动员类继承自人类,实现了接口以展示不同运动行为。粉丝类同样继承自人类,表达对喜欢和不喜欢的明星的情感。代码展示了继承、多态和接口的概念,并提供了具体类的实现,如足球运动员、篮球运动员和游泳运动员。
摘要由CSDN通过智能技术生成

1.  需求(转化成用户故事

想象一下,经常有新闻/视频+留言版这种常见的网页形式,现在我们用控制台(console)来模拟这种网页,在console中,首先2名足球明星、2名篮球明星、1名游泳明星登场,然后明星展示才艺,最后粉丝表达感情。

要求用面向对象的思想来实现这一功能。

2.  思路(转化成backlog)

(1)各位明星都是各领域的运动员,他们都属于运动员,而运动员又是人类,那么我们设计的时候,设计两次继承,人类->运动员->各领域运动员。

(2)不同领域的运动员,他们所从事的项目有其特别性,比如足球篮球以进球为胜负标准,田径一般以时间、长度或高度为胜负标准,因此他们的行为也各不相同,比如足球篮球有射门或投篮的行为,田径运动员有强力冲刺、跳跃的行为,但相似的项目又有类似的行为,因此,我们用接口来模拟这种行为的多样性。

(3) 粉丝继承于人类,他们对喜欢的明星很喜爱,对不喜欢的明星黑得体无完肤。

3. 类的设计(转化成具体的Process)(类图可以手画)

由于时间原因,类的设计较好的体现了继承和多态的思想,但没有很好的体现封装,同学们可以在设计的时候补齐这一块。

代码文件解释:

(1)Person:人类,抽象类

(2)Athlete:运动员类,继承自Person

(3)GoalAthlete:接口,具备得分行为的运动员,体现多态的思想

(4)SportsFan:粉丝类,继承自Person

(5)SoccerAthlete:足球运动员,继承自Athlete,实现GoalAthlete接口

BasketBallAthlete:篮球运动员,继承自Athlete,实现GoalAthlete接口

Swimmer:游泳运动员,继承自Athlete

图注:实线箭头是继承关系,虚线箭头是接口实现,斜体的是抽象对象或抽象方法。

 

 

附:代码导入方法:

1.  新建java工程,在src上右键,选择import

2.  选择File System,选择代码所在的目录,选中左侧的文件夹,确保所有.java文件被选中,点finish。

 

 


1.package intermediateDemo_OOP;

public class Athlete extends Person {
 
 private String value;//身价
 private String specialTechnique;//特别的技能
 
 public Athlete(String myValue, String mySpecialTechnique,String myName, int myAge, char myGender){
  super(myName, myAge, myGender);//显示调用父类的构造函数
  value=myValue;
  specialTechnique=mySpecialTechnique;
 }
 
 @Override
 //重写父类的getName方法
 public String getName(){
  return super.getName();
 }
 
 //获取特殊技能
 public String getSpecialTechnique(){
  return this.specialTechnique;
 }
 
 @Override
 //重写父类的抽象方法
 public void think() {
  System.out.println("竞技就是我的灵魂,永远追求更完美的自己!"); 
 }
 
 //问好
 public void sayHello(String specialHello){
  System.out.println(specialHello);
 }
 
 //秀一下
 public void showOff(String specialShowOff){
  System.out.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值