重载overload
在同一个类中,一组同名”的方法,但参数不同(个数,类型,顺序)
这种方法名相同,但各自的参数不同的一组同名方法的定义,称为方法重载。
注意:方法重载的返回值类型通常都是相同的。方法重载的目的是,功能类似的方法使用同一名字,更容易记住,因此,调用起来更简单。
方法重载:在同一个类中,针对某功能的不同实现方法。要求方法的名称相同,但各自的参数不同(类型、个数、顺序)。构造方法可以重载。
方法重载发生在编译期。
重载方法的返回值类型可以不相同。
重载方法应该完成类似的功能,例如String 的 indexOf()substring()构造方法
package com.zttdemo10Book;
//图书类
public class Book {
//成员变量
private String bookName;
private String publisher;
private int pageSize;
private double price;
//重载overload
//在同一个类中,一组同名”的方法,但参数不同(个数,类型,顺序)
//构造方法的"重载overload""
//构造方法
public Book(){
}
public Book(int pageSize) {
this.pageSize=pageSize;
}
public Book(String bookName,int pageSize) {
this.bookName=bookName;
this.pageSize=pageSize;
}
public Book(int pageSize,String publisher) {
this.pageSize=pageSize;
this.publisher=publisher;
}
//方法
public String getBookName() {
return bookName;
}
public void setBookName(String bookName) {
this.bookName = bookName;
}
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;
}
}
测试类:
package com.zttdemo10Book;
public class test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Book book1=new Book();
Book book2=new Book(12345,"射雕英雄传");
Book book3=new Book(1234,"人民出版社");
}
}
运行结果:
?
package com.zttdemo10Book;
public class test2 {
public static void main(String[] args) {
//string字符串的不同创建方式(使用string类的不同构造方法)
//无参构造方法:保存1个空字符串
String s1 = new String();
System.out.println(s1);
//有参构造方法:通过传入1个byte[]字节数组,创建字符串
byte[] byteArray = { 65,66,67,68,69 };
String s2 = new String( byteArray ) ;
System.out.println(s2);
char[] charArray1 = { '山','舞','银','蛇'};
String s3 = new String( charArray1);
System.out.println(s3);
char[] charArray2 = { '山','舞','银','蛇','原','驰','蜡','象'};
String s4 = new String(charArray2,4,4);
System.out.println(s4);
}
}
运行结果:
ABCDE
山舞银蛇
原驰蜡象
package com.zttdemo11sortUtils;
//排序工具类
public class SortUtils {
//在同一个类中,一组同名”的方法,但参数不同(个数,类型,顺序)
//普通方法的重载
//不同数据类型的排序方法
public void sort(int[] numbers) {
for(int i=0,n=numbers.length;i<n-1;i++) {
for(int k=0; k<n-1-i;k++) {
if(numbers[k]>numbers[k+1]) {
numbers[k]=numbers[k]^numbers[k+1];
numbers[k+1]=numbers[k]^numbers[k+1];
numbers[k]=numbers[k]^numbers[k+1];
}
}
}
}
public void sort(String[] strS) {
for(int i=0,n=strS.length;i<n-1;i++) {
for(int k=0; k<n-1-i;k++) {
if(strS[k].compareTo(strS[k+1])>0) {
String temp=strS[k];
strS[k]=strS[k+1];
strS[k+1]=temp;
}
}
}
}
}
测试类:
package com.zttdemo11sortUtils;
import java.util.Arrays;
public class test1 {
public static void main(String[] args) {
SortUtils sort=new SortUtils();
int[] ns= {4,5,6,9,8,7,45,23,56};
sort.sort(ns);
System.out.println(Arrays.toString(ns));
String[] ss= {"a","p","o","g","i","b","c","d",};
sort.sort(ss);
System.out.println(Arrays.toString(ss));
}
}
运行结果:
[4, 5, 6, 7, 8, 9, 23, 45, 56]
[a, b, c, d, g, i, o, p]
?
?
?
?
?
?
?
?