您的位置:首页 > 运维架构 > Linux

面向对象---day3

2009-09-23 19:33 274 查看
一、使用面向对象思想,编写下列代码。
1.       写一个形状类Shape ,有两个方法一个求周长,一个求面积
       2. 写一个长方形类Rect继承于形状类
         增加属性长和宽
         分别去覆盖求周长和求面积的方法
       3.写一个圆形类Circle
         增加属性半径
         分别去覆盖求周长和求面积的方法
 
         写一个测试类,在测试类中分别创建不同的对象放入进一个Shape
         数组中进行,循环数组中的元素求周长和面积
 
二、根据题目要求完成代码
定义一个描述 Book 的类,要求 Book 有以下属性,书名,价格,描述,出版社,作者,印刷时间。每个属性都有各自的读取和设置的方法。
定义书店类,有一个静态的数组保存当前书店所有的书名。
定义一个描述 Person 的类,要求 Person 有以下属性,人名,性别,年龄,爱好。人还有一些能够做的事情,选书,拿书,计算书的价格,买书。
定义一个测试类,模拟一个人在书店买书的过程。
在该类的 main 方法中,定义几本书的对象,使用 set 方法分别给这几个对象的属性赋值。然后定义一个 Person 的对象,选书,拿书,计算,买书。最终在控制台输入如下内容。

package day3;
public class Book {
 
 private int id;
 
 private String bookName;
 
 private double price;
 
 private String descripe;
 
 private String company;
 
 private String author;
 
 private String printTime;
 
 public int getId() {
  return 0;
 }
 
 public void setId( int num) {
   this.id=num;
 }
 
 public String getBookName() {
  return bookName;
 }
 
 public void setBookName(String str) {
  this.bookName=str;
 }
 
 public double getPrice() {
  return price;
 }
 
 public  void setPrice(double num) {
  this.price=num;
 }
 
 public String getDescripe() {
  return null;
 }
 
 public void setDescripe(String str) {
  this.descripe=str;
 }
 
 public String getCompany() {
  return null;
 }
 
 public void setCompany(String str) {
  this.company=str;
 }
 
 public String getAuthor() {
  return null;
 }
 
 public void setAuthor(String str) {
  this.author=str;
 }
 
 public String getPrintTime() {
  return null;
 }
 
 public void setPrintTime(String str) {
  this.printTime=str;
 }
 
}
 
package day3;
public class BookStore {
 
 public static String[] bookList=new String[]{ "tinking in java" ,
              "java 程序设计基础" ,
              " Linux内核编程完全注释",
              "  自己动手写操作系统"} ;
 }
 
 
package day3;

/**
 *Բ����
 */
public class  Circle extends Shape{
 
 /**
  *Բ��
  */
 private double radius;
 
 
 public double girth() {
  return 2*(3.14*radius);
 }
 
 public double area() {
  return 3.14*(radius*radius);
 }
 
 public void setRadius(double n){
  radius=n;
  
 }
 
}
 
package day3;

public class FunBook extends Book{
 
 private boolean picture;
 
 public boolean getPicture() {
  return false;
 }
 
 public boolean setPicture() {
  return false;
 }
 
}
 
package day3;

public class ItBook extends Book{
 
 private boolean cd;
 
 public boolean getCd() {
  return false;
 }
 
 public void setCd(boolean b) {
  
  
  cd=b;
 }
 
}
 
package day3;
import java.util.List;
import java.util.ArrayList;
 

public class Person {
 
 private String personName;
 
 private String sex;
 
 private int age;
 
 private String like;
 
 private List list = new ArrayList();
 /**
  * 查询是否有对应书名的书
  * @param searchBook  要查找的书名
  * @return 如果有,返回 true,否则返回 false
  */
   //***********选书**************************
 public boolean searchBook(String name) {
  boolean b=false;
  if(name==null ||name.equals(""))
   return false;
  for(int i=0;i<BookStore.bookList.length;i++)
  {
   String onename=BookStore.bookList[i];
   if (name.trim().equals(onename)){
     b=true;
     break;
    
   }
    
  }
   return b;  
    
  }
 //*****************拿书******************
 public List addBook(String book) {
  //参数检查
  if(book == null)
  {
   return null;
  }
  
  //把当前选择的书添加到 列表中
  list.add(book);
  return list;
 }
 
 public double caculatePrice(double n1,double n2) {
  return n1+n2;
 }
 
 public double buyBook(double price,double money) {
  return money-price;
 }
 
}
 
package day3;
 
public class Rect extends Shape {
 
 private double length ;
 
 private double wide;
 
 /**
  *��������
  */
 public double girth() {
  return 2*(length+wide);
 }
 
 public double area() {
  return length*wide;
 }
 public void set(double n1,double n2) {
   length=n1;
   wide=n2;
 }
 
 
}
 
package day3;

/**
 *��״��
 */
public class Shape {
 
 private double girth;
 
 private double area;
 
}
 
package day3;
 

/**
 * ������
 */
public class Test {
 public static void main(String args[]) {
  
  Circle s1 = new Circle(); // 创建圆形对象
  Rect s2 = new Rect();     // 创建矩形形对象
  Circle s3 = new Circle();
  Rect s4 = new Rect();
  Shape[] s = new Shape[10];
  s[0] = s1;
  s[1] = s2;
  s[2] = s3;
  s[3] = s4;
  
  /*  String str = args[0];
  Double.parseDouble(str);
  int num = Integer.parseInt(str);
  */
  for (int i = 0; i < s.length; i++) {
   Shape temp =s[i] ;
   
   if (temp instanceof Circle) {
    System.out.println("当前是 圆形!");
    //强制转换成圆形对象
    //s[i].setRadius(36.5);
    ((Circle)temp).setRadius(36.5);
    System.out.println("圆形面积" + ((Circle)temp).area()+ "   周长" +((Circle)temp).girth() );
   }
   else if (temp instanceof Rect) {
    System.out.println("当前是 矩形!");
    ((Rect)temp).set(6.5,20.5);
    System.out.println("矩形面积" + ((Rect)temp).area() + "   周长" + ((Rect)temp).girth());
   }
  }
  
  
  
 }
}
package day3;
import java.util.List;
 

public class test2 {
 /**
  * @param args
  */
 public static void main(String[] args) {
  Book book1=new Book();  //创建BOOK1对象
  ItBook book2=new ItBook();  //创建BOOK2对象
  book1.setId( 1001);
  book1.setAuthor("tom hanks");
  book1.setBookName("tinking in java");
  book1.setCompany("zzu");
  book1.setDescripe("very good!");
  book1.setPrice(89.0);
  book1.setPrintTime("2006-06--09");
  
  
  book2.setId( 1001);
  book2.setAuthor("davyzhu");
  book2.setBookName("java 程序设计基础");
  book2.setCompany("zzu");
  book2.setDescripe("好书,详细,");
  book2.setPrice(54.0);
  book2.setPrintTime("2006-10--25");
  book2.setCd(true);
  System.out.println("书店里面好多书啊!!");
  
  
  Person p=new Person();//Person对象
  List list = null;

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息