【Java 基础语法】纯 Java,springmvc 面试题常问 2022
前言
今天这篇文章中简单介绍一下一个 Java 程序员必知的 Linux 的一些概念以及常见命令。
如果文章有任何需要改善和完善的地方,欢迎在评论区指出,共同进步!笔芯!
正式开始 Linux 之前,简单花一点点篇幅科普一下操作系统相关的内容。
", type='" + type + ''' +
(isLent?" 未借出":" 已借出") +
'}';
}
public Book(String name, String author, int price, String type) {
this.name = name;
this.author = author;
this.price = price;
this.type = type;
}
}
由于我定义的几个成员变量都是私有的,所以下面创建了一些成员的 getter 和 setter 方法(有些没用到的 getter 和 setter 方法我个人删除了,因为本次没有用到)
并且重写了 toString 方法,因为我们在显示书籍信息的时候会更舒服
最后再写了个构造方法,因为新增书籍时肯定要将书的各种信息都存入
[](()2.2.2 书架(BookList)
书架我个人就设计成了顺序表,那么我们要用到哪些成员和方法呢?
已存入书的数量
书的数组:用来存放书
一些方法
先看我的代码吧
public class BookList {
private int usedSize=3;
private Book[] books =new Book[10];
public BookList(){
this.books[0]=new Book("Java 核心技术卷 I","Cay S.Horstmann",119,"很贵很贵的书");
this.books[1]=new Book("鸟哥的 Linux 私房菜","鸟哥",118,"很贵很贵的书");
this.books[2]=new Book("剑指 Offer","何海涛",65,"很贵的书");
}
public int getSize(){
return usedSize;
}
public void setSize(int size){
this.usedSize=size;
}
public void setBooks(int pos, Book book){
books[pos]=book;
}
public Book getBook(int pos){
return books[pos];
}
}
上述代码中,个人就先存放了三本书,故 usedSize 为 3,而整体设计最多可以放 10 本书,这其实可以根据不同的情况进行修改
后面便是一些方法,包含
得到存入书的数量:寻找某本书时遍历要用到
修改存入书的数量:增加和删除书籍时要用到
得到某本书:取书时要用到
修改某本书:新增书籍时要将新的书的信息录入
[](()2.2 对于书架的操作(operation 包)
该包类即我们用户进行的操作,我个人设计了下面几个操作
新增、删除、查找、借阅、归还、显示所有书籍、退出系统
由于对于书架的操作我们其实就可以抽象的看成下面这样的函数
public void work(BookList bookList);
所以我们先看下接口的代码
[](()2.2.1 操作接口
public interface IOperation {
public void work(BookList bookList);
}
这里其实就用到了接口和抽象类
接着我们再通过各种操作去继承接口,并完善各自的内容
[](()2.2.2 新增书籍
public class AddOperation implements IOperation{
@Override
public void work(BookList bookList) {
if(bookList.getSize()==10){
System.out.println("书库已满,无法增加书籍");
return;
}
Scanner reader = new Scanner(System.in);
String name;
String author;
int price;
String type;
System.out.print("请输入你要新增的书名:");
name=reader.nextLine();
System.out.print("请输入该书的作者:");
author=reader.nextLine();
System.out.print("请输入该书的价格:");
price=reader.nextInt();
reader.nextLine();
System.out.print("请输入该书的类型:");
type=reader.nextLine();
int pos=bookList.getSize();
Book book = new Book(name, author, price, type);
bookList.setBooks(pos, book);
bookList.setSize(bookList.getSize()+1);
}
}
[](()2.2.3 删除书籍
public class DelOperation implements IOperation{
@Override
public void work(BookList bookList) {
if(bookList.getSize()==0){
System.out.println("书库无书,无法进行删除操作");
return;
}
Scanner reader = new Scanner(System.in);
String name;
System.out.print("请输入你要删除的书名:");
name=reader.nextLine();
for(int i=0;i<bookList.getSize();i++){
if(name.equals(bookList.getBook(i).getName())){
while(bookList.getSize()-i-1!=0){
bookList.setBooks(i,bookList.getBook(i+1));
i++;
}
bookList.setSize(bookList.getSize()-1);
return;
}
}
System.out.println("书库无该图书,无法进行删除操作");
}
}
[](()2.2.4 查找书籍
public class FindOperation implements IOperation{
@Override
public void work(BookList bookList) {
if(bookList.getSize()==0){
System.out.println("书库无书");
return;
}
Scanner reader = new Scanner(System.in);
String name;
System.out.print("请输入你要查找的书名:");
name=reader.nextLine();
for(int i=0;i<bookList.getSize();i++){
if(name.equals(bookList.getBook(i).getName())){
System.out.println("已查询找到该书,信息如下:");
System.out.println(bookList.getBook(i));
return;
}
}
System.out.println("未查询到该书");
}
}
[](()2.2.5 借阅书籍
public class LendOperation implements IOperation{
@Override
public void work(BookList bookList) {
if(bookList.getSize()==0){
System.out.println("书库无书,无法进行借阅");
return;
}
Scanner reader = new Scanner(System.in);
String name;
System.out.print("请输入你要借阅的书名:");
name=reader.nextLine();
for(int i=0;i<bookList.getSize();i++){
if(name.equals(bookList.getBook(i).getName())){
if(bookList.getBook(i).isLent()==false) {
bookList.getBook(i).setLent(true);
System.out.println("借阅成功");
}else{
System.out.println("该书已被他人借阅,借阅失败");
}
return;
}
}
System.out.println("未查询到该书,借阅失败");
}
}
[](()2.2.6 归还书籍
public class ReturnOperation implements IOperation{
@Override
public void work(BookList bookList) {
Scanner reader = new Scanner(System.in);
String name;
System.out.print("请输入你要归还的书名:");
name=reader.nextLine();
for (int i =0;i<bookList.getSize();i++){
if(name.equals(bookList.getBook(i).getName())){
if(bookList.getBook(i).isLent()==true){
bookList.getBook(i).setLent(false);
System.out.println("该书归还成功");
return;
}else{
System.out.println("该书未被借阅,操作错误");
return;
}
}
}
System.out.println("未查询到你要归还的书籍,操作错误");
}
}
[](()2.2.7 显示所有书籍信息
public class DisplayOperation implements IOperation{
@Override
public void work(BookList bookList) {
if(bookList.getSize()==0){
System.out.println("书库无书");
}
for(int i=0;i<bookList.getSize();i++){
System.out.println(bookList.getBook(i));
}
}
}
[](()2.2.8 退出系统
public class ExitOperation implements IOperation{
《一线大厂 Java 面试真题解析+Java 核心总结学习笔记+最新全套讲解视频+实战项目源码》开源
Java 优秀开源项目:
ali1024.coding.net/public/P7/Java/git
总结
总体来说,如果你想转行从事程序员的工作,Java 开发一定可以作为你的第一选择。但是不管你选择什么编程语言,提升自己的硬件实力才是拿高薪的唯一手段。
如果你以这份学习路线来学习,你会有一个比较系统化的知识网络,也不至于把知识学习得很零散。我个人是完全不建议刚开始就看《Java 编程思想》、《Java 核心技术》这些书籍,看完你肯定会放弃学习。建议可以看一些视频来学习,当自己能上手再买这些书看又是非常有收获的事了。
评论