[J2SE 基础知识]2、抽象类和接口(上)
抽象类和接口<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
一、抽象类
二、接口
三、实例
/**
* 本类实现了Comparable接口,这个接口使得对类的对象进行排序更容易。
* 这个接口只有一个方法compareTo(Object),返回一个整数,功能是比较
* 两个对象:
* 若当前对象应排列在另一个之前,返回-1
* 若当前对象应排列在另一个之后,返回1
* 两个对象相等,则返回0
* */
public class Item implements Comparable
{
private String id;
private String name;
private double retail;
private int quantity;
private double price;
Item(String id,String name,String retail,String quan)
{
this.id = id;
this.name = name;
this.retail = Double.parseDouble(retail);
this.quantity = Integer.parseInt(quan);
if(this.quantity > 400)
{
this.price = this.retail * .5D;
}
else if(this.quantity > 200)
{
this.price = this.retail * .6D;
}
else
{
this.price = this.retail * .7D;
}
//对price四舍五入,Math.floor()表示将小数舍入为与之最接近且不大于它的整数
//并返回double
price = Math.floor(price * 100 + .5)/100;
}
//compareTo()方法需要决定根据哪个实例变量来对对象进行排序,这里根据price
public int compareTo(Object o)
{
Item temp = (Item)o;
if(this.price < temp.price)
{
return 1;
}
else if(this.price > temp.price)
{
return -1;
}
return 0;
}
public String getId()
{
return id;
}
public String getName()
{
return name;
}
public double getPrice()
{
return price;
}
public int getQuantity()
{
return quantity;
}
public double getRetail()
{
return retail;
}
}
*用于管理商店中的商品,每一种商品都是一个Item对象,他们被存储在链表中
*/
package com.prefect.ecommerce;
import java.util.Collections;
import java.util.LinkedList;
public class Storefont
{
//创建一个链表
private LinkedList catalog = new LinkedList();
//将item加入到链表中
public void addItem(String id, String name, String price, String quant)
{
Item it = new Item(id, name, price, quant);
//在链表中添加对象的方法
catalog.add(it);
}
//返回当前的item,使用索引i来读取他们
public Item getItem(int i)
{
//读取链表中的索引
return (Item) catalog.get(i);
}
//返回链表中的对象数
public int getSize()
{
//链表的大小
return catalog.size();
}
public void sort()
{
//此方法对链表和其他数据结果中的对象进行排序,期间将调用对象的
//comparaTo()方法来确定排序
Collections.sort(catalog);
}
}
public class GiftShop
{
public static void main(String[] args)
{
Storefont store = new Storefont();
//添加商品
store.addItem("C01","MUG","9.99","150");
store.addItem("C02","LG MUG","12.99","82");
store.addItem("C03","MOUSEPAD","10.49","800");
store.addItem("D01","T SHIRT","16.99","90");
//进行排序
store.sort();
//输出排序后的结果
for(int i = 0 ; i < store.getSize() ; i++)
{
Item show = (Item)store.getItem(i);
System.out.println("\nItem ID:" + show.getId()
+ "\nName:" + show.getName()
+ "\nRetail Price:$" + show.getRetail()
+ "\nPrice:$" + show.getPrice()
+ "\nQuantity:" + show.getQuantity());
}
}
}
Name:T SHIRT
Retail Price:$16.99
Price:$11.89
Quantity:90
Item ID:C02
Name:LG MUG
Retail Price:$12.99
Price:$9.09
Quantity:82
Item ID:C01
Name:MUG
Retail Price:$9.99
Price:$6.99
Quantity:150
Item ID:C03
Name:MOUSEPAD
Retail Price:$10.49
Price:$5.25
Quantity:800
转载于:https://blog.51cto.com/wnight88/141595
[J2SE 基础知识]2、抽象类和接口(上)相关推荐
- C++基础篇之抽象类的接口
C++基础篇之抽象类的接口 接口描述了类的行为和功能,而不需要完成类的特定实现. C++ 接口是使用抽象类来实现的,抽象类与数据抽象互不混淆,数据抽象是一个把实现细节与相关的数据分离开的概念. 如果类 ...
- 计算机io接口主要功能,计算机基础知识2:IO接口及电源介绍.ppt
<计算机基础知识2:IO接口及电源介绍.ppt>由会员分享,可在线阅读,更多相关<计算机基础知识2:IO接口及电源介绍.ppt(18页珍藏版)>请在人人文库网上搜索. 1.I/ ...
- java package报错_Java基础知识总结 - 超详细篇(上)
1,JDK:Java Development Kit,java的开发和运行环境,java的开发工具和jre. 2,JRE:Java Runtime Environment,java程序的运行环境,ja ...
- 微机原理和计算机硬件基础知识,微机原理与接口技术
微机原理与接口技术 (2010年清华大学出版社出版的图书) 语音 编辑 锁定 讨论 上传视频 <微机原理与接口技术>是2010年8月1日清华大学出版社出版的图书,作者是姚琳.孙志辉.韩伯涛 ...
- Java基础篇:抽象类与接口
1.抽象类和接口的定义: (1)抽象类主要用来抽取子类的通用特性,作为子类的模板,它不能被实例化,只能被用作为子类的超类. (2)接口是抽象方法的集合,声明了一系列的方法操作,自身并不能做任何事情.如 ...
- Android开发之Java基础面试题抽象类和接口的区别
抽象类和接口的区别? 三个方面说: 1.成员特点: 抽象类:成员变量,可以是变量也可以是常量成员方法:可以是抽象方法,也可以是非抽象方法构造方法:有构造方法接口:成员变量,只有常量没有构造方法成员方法 ...
- 【JAVA基础篇】抽象类和接口的区别
抽象类和接口是定义抽象概念的两种方式,正是由于抽象类和接口,才赋予了Java强大的面向对象的能力.在讨论他们的不同点之前,我们先来了解抽象类和接口. 抽象类 在面向对象的领域一切事物都是对象.对象都是 ...
- Java基础---多态、抽象类、接口
2015-4-4 一.多态 1.定义:某一个事物,在不同时刻表现出来的不同状态. 2.多态的前提与体现: (1)要有继承关系: (2)要进行方法的重写: (3)要父类引用指向子类对象. 3.成员访问特 ...
- 【python基础知识】调用C++接口(setup.py运行)出现的各种问题
1.setup.py文件编写 网上下载的C++程序的Python接口,不会使用,全靠摸索.根据最近出现的问题,写下其中的道道,避免下一次抓狂. setup.py文件内容如下: from distuti ...
最新文章
- linux系统目录结构介绍
- 阿里巴巴2014校招笔试错误汇总
- iOS开发那些事-故事板实现标签导航
- Android开发中遇到的问题(二)——新建android工程的时候eclipse没有生成MainActivity和layout布局...
- php 编写mysql,自己写的MySQL类
- 前端学习(3135):react-hello-react之函数的柯里化
- 重磅!李沐在斯坦福开新课了!
- win11为何七代酷睿无法升级 Windows11七代酷睿无法升级的解答
- lg-1 x 怎么算_四六级分数怎么算?交白卷都不会得0分|巨微英语
- 网络运维超融合服务器,15. 通过 Openfiler 软件:配置 ISCSI 和
- .Net 面试题 汇总(二)
- rexpathbs4
- 2018年6月11日笔记
- Linux内核分析——第七章 链接
- 云计算平台是什么意思?可以划分为哪三类?
- 乞丐一句话感动12亿人
- Python字符串日常练习(基础向)
- MySQL基础学习(三)————SQL语句的常用操作
- CSS 文字两行显示,超出隐藏
- 树莓派4B-Python-控制HC_SR501(微型人体红外感应模块)
热门文章
- 求高维方阵的绝对值最大特征值的方法:幂法(幂迭代)。
- 喻国明:“元宇宙”背后的未来图景
- 欧盟「人脑计划」​最新进展:新算法模拟生物进化,为大脑如何工作提供新见解...
- 用物理学来为生命技术及制度的演化找出规律-读《为什么世界不会失控》
- 222页斯坦福人工智能报告出炉:全球AI投资猛增680亿,北美博士学术机构就业率下降
- 业界 | 清华发布《人工智能芯片技术白皮书(2018)》
- 量子计算机不会“秒杀”经典计算机
- 深度睡眠中,记忆如何被保持?
- 硬件巨头正在崛起,中国独占鳌头
- 当你使用微信和 QQ 的时候,请不要忘记 ICQ 这个伟大的公司!