在一个类中,我们可以定义多个方法。但是有一系列方法,他们的功能相似,只是参数不同(参数的个数、顺序、类型不同),那么在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):根据字符查找,但指定起始位置