java的基础知识

一、抽象类的概念 。

1、抽象方法没有方法体。

2、抽象类不可以实类化。

3、继承一个抽象类,必须要实现抽象类中的方法,除非子类也是抽象类。

二、抽象方法。

是一个模板或约束,避免子类的随意性,需要实现它的类必须要重写它的抽象方法。

三、图书管理系统

package com.ruanjian174.www;
/**
 * 图书管理系统
 */
import java.util.ArrayList;
import java.util.Scanner;
public class Library {
	private static ArrayList<Book> bookList = new ArrayList<>();// 实例化
	private static ArrayList<EBook> ebookList = new ArrayList<>();
	private static ArrayList<Magazine>magazineList = new ArrayList<>();
	private static int n;

	public static void main(String[] args) {
		init();
		do {
			listMenu();
         } while (n != 0);
		System.out.println("程序退出");
	}
private static void init() {
	        Book b1=new Book("三國演義", 52.6, 900, "中國書社", "羅貫中");
			Book b2=new Book("水滸傳", 62.6, 900, "中國書社", "施耐庵");
			Book b3=new Book("西遊記", 52.6, 600, "中國書社", "吳承恩");
			Book b4=new Book("紅樓夢", 52.6, 700, "中國書社", "曹雪晴");
		bookList.add(b1);			 
		bookList.add(b2);			 
		bookList.add(b3);			 
		bookList.add(b4);			 
			EBook e1 = new EBook("聚生", 2.1, 3, 5, "坑神出售");
			EBook e2 = new EBook("大主宰", 2.1, 3, 5, "天蠶土豆");
			EBook e3 = new EBook("逆天", 2.1, 3, 5, "唐家三少");
        ebookList.add(e1);
        ebookList.add(e2);
        ebookList.add(e3);
}    
	
/*
	 * 列出所有图书
	 */
	private static void listAllBook() {
		for (Book book : bookList) {
			System.out.println("书名:" + book.getName() + ",出版社:" + book.getPublish() + ",作者:" + book.getAuthor() + ",页数:"
					+ book.getPages() + ",价格:" + book.getPrice());
		}
//		列出所有电子书
		for (EBook ebook : ebookList) {
			System.out.println("书名:" + ebook.getName() +",作者:" + ebook.getAuthor() + ",页数:"
					+ ebook.getPages() + ",价格:" + ebook.getPrice()+",下载次数"+ebook.getDownloadTimes());
		}
//		列出所有杂志
		for (Magazine magazine : magazineList) {
			System.out.println("书名:" +  magazine .getName() + ",页数:"
					+  magazine .getPages() + ",价格:" +  magazine .getPrice()+",发行"+ magazine.getIssue());
		}
		
		}
	/*
	 * 添加图书
	 */

	private static void addBook() {
		System.out.println("请选择您要添加的图书类型:1.Book;2.EBook;3.Magazine");
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		switch (n) {
//纸质书
		case 1:
			System.out.println("请输入书名:");
			sc.nextLine();
			String name = sc.nextLine();
			System.out.println("请输入出版社:");
			String publish = sc.nextLine();
			System.out.println("请输入作者:");
			String author = sc.nextLine();
			System.out.println("请输入页数:");
			int pages = sc.nextInt();
			System.out.println("请输入价格:");
			double price = sc.nextDouble();
			// 创建一个Book对象
			Book book = new Book(name, price, pages, publish, author);
			// 添加到ArrayList中
			bookList.add(book);
			break;
//电子书
		case 2:
			System.out.println("请输入电子书名:");
			sc.nextLine();
			String ename = sc.nextLine();
			System.out.println("请输入作者:");
			String eauthor = sc.nextLine();
			System.out.println("请输入页数:");
			int epages = sc.nextInt();
			System.out.println("请输入价格:");
			double eprice = sc.nextDouble();
			// 创建一个eBook对象
			EBook ebook = new EBook(ename, eprice, epages, 0, eauthor);
			// 添加到ArrayList中
			ebookList.add(ebook);
			break;
//杂志
		case 3:
			System.out.println("请输入杂志名:");
			sc.nextLine();
			String magazinename = sc.nextLine();
			System.out.println("请输入页数:");
			int magazinepages = sc.nextInt();
			System.out.println("请输入发布次数:");
			int magazineissue = sc.nextInt();
			System.out.println("请输入价格:");
			double magazineprice = sc.nextDouble();
			
			// 创建一个magazine对象
			Magazine magazine =new Magazine(magazinename, magazineprice, magazinepages, null);
			// 添加到ArrayList中
			magazineList.add(magazine);
			break;
		default:
			break;
		}

	}

	// 代码复用
	// 好处:1.简化代码 2.一处修改,处处修改
	private static void listMenu() {
		System.out.println("******欢迎使用本图书管理系统*****");
		System.out.println("******1.查看图书*****");
		System.out.println("******2.新增图书*****");
		System.out.println("******3.删除图书*****");
		System.out.println("******4.检索图书*****");
		System.out.println("******0.退出系统*****");
		System.out.println("请进行你的操作");
		Scanner scanner = new Scanner(System.in);
		n = scanner.nextInt();
		System.out.println("您选择的序号是:" + n);

		switch (n) {
		case 1:
			listAllBook();
			break;
		case 2:
			addBook();
			break;
		case 3:
			break;
		case 4:
			searchBook();
			break;
      default:
			break;
		}
	}
	
	/**
	 * 检索图书
	 */

	private static void searchBook() {
		System.out.println("请输入你要查询的关键字");
		Scanner sc = new Scanner(System.in);
      String keywords=sc.nextLine();
      System.out.println("您输入的关键字是:"+keywords+",我们为您找到了下列图书");
for (Book book : bookList) {
	if(book.getName().indexOf(keywords)>=0) {
		System.out.println("书名:" + book.getName() + ",出版社:" + book.getPublish() + ",作者:" + book.getAuthor() + ",页数:"
				+ book.getPages() + ",价格:" + book.getPrice());
for (EBook ebook : ebookList) {
    if(ebook.getName().indexOf(keywords)>=0) {
				System.out.println("书名:" + ebook.getName() +",作者:" + ebook.getAuthor() + ",页数:"
						+ ebook.getPages() + ",价格:" + ebook.getPrice()+",下载次数"+ebook.getDownloadTimes());
for (Magazine magazine : magazineList) {
	if(magazine.getName().indexOf(keywords)>=0) {
		System.out.println("书名:" +  magazine .getName() + ",页数:"
								+  magazine .getPages() + ",价格:" +  magazine .getPrice()+",发行"+ magazine.getIssue());
}
		
    }
}
	}
}
	}
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值