注:本文非标准教程,仅是总结个人学习过程,可能存在纰漏,如有错误之处欢迎留言告知,非常感谢

题目:
一、·定义图书类Book,包含属性(全部私有):
书名,作者,出版社,价格,ISBN,
构造函数1:通过参数传递书名给书名属性赋值;
构造函数2:通过参数传递书名、作者给相关属性赋值;
构造函数3:通过参数传递书名、作者、出版社给相关属性赋值;
构造函数4:通过参数传递书名、作者、出版社、价格给相关属性赋值;
构造函数5:通过参数传递书名、作者、出版社、价格、ISBN给相关属性赋值;
方法:
给所有属性添加get方法(返回属性值)和set方法(设置属性值)。
二、定义类BookManage,包括
属性:Book类数组;
构造函数:参数表示属性数组的长度,给属性数组分配内存空间,为数组中的每一个元素创建一个Book类对象(对象各个属性的值可以从键盘输入,也可以自己任意定义)。
方法:
search,参数表示书名,从属性数组中查询某本书是否存在,存在返回1,不存储返回0;
search,参数表示要查询书价格的下限和上限,从属性数组中查询价格位于某个价格区间的书籍,将满足条件的书的书名输出。
search,参数表示书名和作者,从属性数组中查询是否存在满足条件的书,如果有,输出该书的所有信息,并返回1,否则输出“没有满足条件的书”,并返回0.

后面有总结,在代码里有有注释。。。

import java.util.*;
public class Book {
	private String name;
	private String author;
	private String publicing;
	private String price;
	private String ID;
	
	Book(){
		
	}
	Book(String name){
		this.name=name;
	}
	
	Book(String name,String author){
		this.name=name;
		this.author=author;
	}
	
	Book(String name,String author,String publicing){
		this.name=name;
		this.author=author;
		this.publicing=publicing;
	}
	
	Book(String name,String author,String publicing,String price){
		this.name=name;
		this.author=author;
		this.publicing=publicing;
		this.price=price;
	}
	
	Book(String name,String author,String publicing,String price,String ID){
		this.name=name;
		this.author=author;
		this.publicing=publicing;
		this.price=price;
		this.ID=ID;
	}
	
	
	public void setname(String aaa) {
	    this.name=aaa;
		
	}
	public String getname() {
		return name;
	}
	
	public void setauthor(String aaa) {
	    this.author=aaa;
		
	}
	public String getauthor() {
		return author;
	}
	
	public void setpublicing(String aaa) {
		this.publicing=aaa;
		
	}
	public String getpublicing() {
		return publicing;
	}
	
	public void setprice(String aaa) {
	    this.price=aaa;
		
	}
	public String getprice() {
		return price;
	}
	
	public void setID() {
	    ID="0000FFF";
		
	}
	public String getID() {
		return ID;
	}



}
import java.util.*;
public class bookManage {
	Book[] books;  //创建一个book类的数组对象
	
	bookManage(int count){
		Scanner scan=new Scanner(System.in);
		books=new Book[count];
		
		for(int i=0;i<count;i++) {
			String n=scan.nextLine();  //名字
			String a=scan.nextLine();  // 作者
			String pu=scan.nextLine();  //出版社			
			String pri=scan.nextLine(); //价格
						
			books[i]=new Book(n,a,pu,pri);
			
			String name=books[i].getname();			
			String author=books[i].getauthor();		
			String publicing=books[i].getpublicing();			
			String price=books[i].getprice();
			
		}

	}
	
	
	  void search1(String aa,int count) //查询某本书是否存在
	{
		 
		for(int i=0;i<count;i++) {
			
			if(aa.equals(books[i].getname())) {
				System.out.println("YES,have this book!");
				}
		}
		
		
		
	}
	 
	 void search2(int bb,int pp,int count) //查询书价格的下限和上限
		{			
		 int hhh;
			for(int i=0;i<count;i++) {
				hhh=Integer.valueOf(books[i].getprice()).intValue();
				if(hhh>bb &&hhh<pp) {
					System.out.println("书名为:"+books[i].getname());				
			}
				}
			
			
		}
	 
	 void search3(String dd,int count) //查询作者
		{		
			for(int i=0;i<count;i++) {
				if(dd.equals(books[i].getauthor())) {
					System.out.println("书名为:"+books[i].getname());
					}
			}		
		}
	 
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		Scanner qqq=new Scanner(System.in);
		
		System.out.println("输入i本书本:");	
		int i=qqq.nextInt();
		
		System.out.println("输入书本信息:按书名,作者,出版社,价格输入:");	
		bookManage cc=new bookManage(i);
		
		System.out.println("输入要查找的书本");	
		Scanner qq=new Scanner(System.in);
		String aab=qq.nextLine();
		cc.search1(aab,i);
		
		System.out.println("输入要查找的价格下线和上界:");	
		int bb=qqq.nextInt();		
		int pp=qqq.nextInt();	
		cc.search2(bb, pp,i);
		
		System.out.println("输入要查找的作者的名字:");
		Scanner qqw=new Scanner(System.in);  //这个地方删除就出错,不知道原因。。。。
		String dd=qqw.nextLine();		
		cc.search3(dd,i);

	}

}

//算法图解 
//歪果仁
//上海出版
//40
//python入门编程
//美国人
//北京出版
//87

Java构造方法中调用另一个方法 java中怎么调用构造函数_构造函数

总结:

一 Java 中int、String的类型转换

int -> String

int i=12345;
String s="";
第一种方法:s=i+"";
第二种方法:s=String.valueOf(i);

String -> int

s=“12345”;
int i;
第一种方法:i=Integer.parseInt(s);
第二种方法:i=Integer.valueOf(s).intValue();


二 Java中的equals和==

String str1 = new String("hello");
String str2 = new String("hello");
         
System.out.println(str1==str2);
System.out.println(str1.equals(str2));

反正String比较最好用这个.equals(),
我在比较时用==总是错。。。。。(debug de了一晚上)