在一个类中,我们可以定义多个方法。但是有一系列方法,他们的功能相似,只是参数不同(参数的个数、顺序、类型不同),那么在JavaOOP的语法中允许把这一系列方法定义为同名方法,这种方法名相同,但是参数不同的方法的定义叫做方法重载(Overload)
public class Book_test{
public static void main(String[] args){
Book02 book1=new Book02();
Book02 book2=new Book02(333);
Book02 book3=new Book02("西游记", "清华大学出版社",123,17.9);
class Book{
//成员变量
private String bookName;
private String publisher;
private int pageSize;
private double price;
//重载
public Book(){
System.out.printf("bookName为:%s,publisher为:%s,pageSize
为:%d,price为:%f"
,this.getBookName(),
this.getPublisher(),
this.getPageSize(),
this.getPrice());
System.out.println();
}
public Book(int pageSize) {
this.pageSize=pageSize;
System.out.printf("pageSize为:%d",this.pageSize);
System.out.println();
}
public Book(String bookName,String publisher,int
pageSize,double price) {
this.bookName=bookName;
this.pageSize=pageSize;
this.publisher=publisher;
this.price=price;
System.out.printf("bookName为:%s,publisher为:%s,pageSize为:
%d,price为%f",this.getBookName(),
this.getPublisher(),
this.getPageSize(),
this.getPrice());
}
//get和set方法
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName=bookName;
}
//alt+shift+s自动生产getter setter方法
public String getPublisher() {
return publisher;
}
public void setPublisher(String publisher) {
this.publisher = publisher;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
运行结果为:
bookName为:null,publisher为:null,pageSize为:0,price为:0.000000
pageSize为:333
bookName为:西游记,publisher为:清华大学出版社,pageSize为:123,price为:17.900000
我们常用的String类提供了多个重载方法的indexOf(),可以查找子串:
①int indexOf(int ch):根据字符的Unicode码查找
②int indexOf(String str):根据字符串查找
③int indexOf(int ch,int fromIndex):根据字符查找,但指定起始位置
④int indexOf(String str,int fromIndex):根据字符查找,但指定起始位置