weixin_36849981 2016-11-29 08:10 采纳率: 0%
浏览 778

这个算面向对象不?????

public class Book {
private int bookId;
private String bookName;
private double price;
private int storage;
Book(int bookId,String bookName,double price,int storage){
this.bookId=bookId;
this.bookName=bookName;
this.price=price;
this.storage=storage;
}
public int getBookId() {
return bookId;
}
public void setBookId(int bookId) {
this.bookId = bookId;
}
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public int getStorage() {
return storage;
}
public void setStorage(int storage) {
this.storage = storage;
}
public void show(){
System.out.println(bookId+"\t"+bookName+"\t"+price+"\t"+storage);
}
}
import java.util.Scanner;

public class OrderItem {

int [] a=new int[3];
int [] b=new int[3];

public void select() {
    Scanner input = new Scanner(System.in);
    for(int i=0;i<3;i++){
        if(i<2){
            System.out.print("请输入图书编号选择图书:");
            this.a[i]=input.nextInt();
            System.out.print("请输入购买图书数量:");
            this.b[i]=input.nextInt();
            System.out.println("请继续购买图书");
        }else{
            System.out.print("请输入图书编号选择图书:");
            this.a[i]=input.nextInt();
            System.out.print("请输入购买图书数量:");
            this.b[i]=input.nextInt();
        }
    }
    input.close();
}

}
import java.util.Date;

public class Order {
double sum,s;
public void showOrder(Book book,OrderItem orderitem){
for(int j=0;j<3;j++){
if(orderitem.a[j]==book.getBookId()){
System.out.println(book.getBookName()+"\t"+orderitem.b[j]+"\t"+book.getPrice());
s = orderitem.b[j]*book.getPrice();
sum += s;
}
}
}
public void showSum(){
System.out.println("订单总额:\t\t"+sum);
}
public void showDate(){
Date date = new Date();
System.out.println("日期:\t"+date.toString());
}
}
public class Others {
public void bookList(){
System.out.println("\t图书列表\n图书编号\t图书名称\t图书单价\t库存数量");
}
public void fenGe(){
System.out.println("-----------------------------------");
}
public void orderList(){
System.out.println("\n\t图书订单\n图书订单号:00001\n图书名称\t购买数量\t图书单价");
}
}
public class Test {
public static void main(String[] args) {
Others others = new Others();
others.bookList();
others.fenGe();
Book book1 = new Book(1,"Java",30.6,30);
book1.show();
Book book2 = new Book(2,"JSP指南",42.1,40);
book2.show();
Book book3 = new Book(3,"SSH框架",47.3,15);
book3.show();
others.fenGe();
OrderItem orderitem = new OrderItem();
orderitem.select();
others.orderList();
others.fenGe();
Order order = new Order();
order.showOrder(book1,orderitem);
order.showOrder(book2,orderitem);
order.showOrder(book3,orderitem);
others.fenGe();
order.showSum();
order.showDate();
}
}

  • 写回答

6条回答 默认 最新

  • 鱼弦 全栈领域优质创作者 2016-11-29 08:10
    关注

      面向对象的编程方法具有四个基本特征:

    1.抽象:

      抽象就是忽略一个主题中与当前目标无关的那些方面,以便更充分地注意与当前目标有关的方面。抽象并不打算了解全部问题,而只是选择其中的一部分,暂时不用部分细节。比如,我们要设计一个学生成绩管理系统,考察学生这个对象时,我们只关心他的班级、学号、成绩等,而不用去关心他的身高、体重这些信息。抽象包括两个方面,一是过程抽象,二是数据抽象。过程抽象是指任何一个明确定义功能的操作都可被使用者看作单个的实体看待,尽管这个操作实际上可能由一系列更低级的操作来完成。数据抽象定义了数据类型和施加于该类型对象上的操作,并限定了对象的值只能通过使用这些操作修改和观察。

    2.继承:  继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。对象的一个新类可以从现有的类中派生,这个过程称为类继承。新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。这也体现了大自然中一般与特殊的关系。继承性很好的解决了软件的可重用性问题。比如说,所有的Windows应用程序都有一个窗口,它们可以看作都是从一个窗口类派生出来的。但是有的应用程序用于文字处理,有的应用程序用于绘图,这是由于派生出了不同的子类,各个子类添加了不同的特性。

    3.封装:

      封装是面向对象的特征之一,是对象和类概念的主要特性。封装是把过程和数据包围起来,对数据的访问只能通过已定义的界面。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。一旦定义了一个对象的特性,则有必要决定这些特性的可见性,即哪些特性对外部世界是可见的,哪些特性用于表示内部状态。在这个阶段定义对象的接口。通常,应禁止直接访问一个对象的实际表示,而应通过操作接口访问对象,这称为信息隐藏。事实上,信息隐藏是用户对封装性的认识,封装则为信息隐藏提供支持。封装保证了模块具有较好的独立性,使得程序维护修改较为容易。对应用程序的修改仅限于类的内部,因而可以将应用程序修改带来的影响减少到最低限度。

    1. 多态性:

      多态性是指允许不同类的对象对同一消息作出响应。比如同样的加法,把两个时间加在一起和把两个整数加在一起肯定完全不同。又比如,同样的选择编辑-粘贴操作,在字处理程序和绘图程序中有不同的效果。多态性包括参数化多态性和包含多态性。多态性语言具有灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名问题。

    面向对象程序设计具有许多优点:

    1、开发时间短,效率高,可靠性高,所开发的程序更强壮。由于面向对象编程的可重用性,可以在应用程序中大量采用成熟的类库,从而缩短了开发时间。

    2、应用程序更易于维护、更新和升级。继承和封装使得应用程序的修改带来的影响更加局部化。

    评论

报告相同问题?

悬赏问题

  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启