java 调用类的构造函数

  • Post author:
  • Post category:java



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


题目:

一、·定义图书类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 中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();

详细见教程:

http://www.cnblogs.com/bluestorm/p/3698810.html



二 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了一晚上)


详细见教程:

https://www.cnblogs.com/dolphin0520/p/3592500.html



版权声明:本文为weixin_43866567原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。