`
aiyanbo
  • 浏览: 64257 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

超好玩的oop题目

    博客分类:
  • java
阅读更多

题目内容:在一个公寓里,小红是一个学生,另外还有一个建筑工人,平时帮助别人换锁,有一个是医生。请用oop的思想用   代码实现小红家的情况!

 

Java参考答案:( 为了方便,我把所有的类都放在一个文件里面了)

 

public class Test{
   public static void main(String[] args){
      House h=new House();
      h.setStu(new Student("0001","小红",'女'));
      h.setDoc(new Doctor("丽丽",'女'));
      h.list(h.getStu());
      h.list(h.getDoc());
      Lock l=new Builder("老明",'男');
      h.list(l);
   }
}
class Person{
   private String name;
   private char sex;
   public void setName(String name){
     this.name=name;
   }
   public String getName(){
     return name;
   }
   public void work(){
     System.out.println("努力工作!");
   }
   public Person(String name,char sex){
     this.name=name;
     this.sex=sex;
   }
}
class Student extends Person{
   private String sid;
   public void setSid(String sid){
      this.sid=sid;
   }
   public String getSid(){
      return sid;
   }
   public void work(){ //使用继承
     System.out.println(getName()+"学习很用功!");
   }
   public Student(String sid,String name,char sex){
     super(name,sex);
     this.sid=sid;
   }
}
interface Lock{
   void job();
}
class Builder extends Person implements Lock{ //使用继承,和实现接口
   public void work(){
     System.out.println(getName()+"是建筑工人,工作挺累的!");
   }
   public void job(){
     System.out.println(getName()+"是开锁专家,为人民服务!");
   }
   public Builder(String name,char sex){
     super(name,sex);
   }
}
class Doctor extends Person{ //使用继承
   public void work(){
     System.out.println(getName()+"是一个医生,人们的白衣天使!");
   }
   public Doctor(String name,char sex){
     super(name,sex);
   }
}
class House{  //使用合成
   private Student stu;
   private Builder bui;
   private Doctor doc;
   public void list(Person per){
      per.work();
   }
   public void list(Lock lock){
      lock.job();
   }
   public void setStu(Student stu){
      this.stu=stu;
   }
   public Student getStu(){
     return stu;
   }
   public void setBui(Builder bui){
      this.bui=bui;
   }
   public Builder getBui(){
     return bui;
   }
   public void setDoc(Doctor doc){
      this.doc=doc;
   }
   public Doctor getDoc(){
     return doc;
   }
}

 

在C#中也是大同小异,因我我只装了jdk,没有装vs 所以在这里我就不演示C#代码了。­

   

   为了方便,我把所有的类都放在一个文件里面了

 

 

 

 

 

 

 

 

 

 

 

1
0
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics