一级目录
二级目录
三级目录
重载(OVERLOAD)
如果同一个类中包含了两个或两个以上方法名相同
的方法,但形参列表不同,这种情况被称为方法重载(overload)。
注意
- 被重载的方法必须改变参数个数或类型
- 被重载的方法可以改变返回类型,但不能以返回值类型作为区分标准
- 重载方法和被重载方法要在同一个类中
- 以一道输出时间的题为例
class Time1 //截取源代码的一段来说明
{
private int hour;
private int minute;
private int second;
public Time1() //第一个Time1方法
{setTime(0,0,0);} //setTime为另外的方法,此处无需在意含义
public Time1(int hour) //第二个Time方法,相比第一个增加了int型参数,使两者区分
{setTime(hour,0,0);}
public Time1(int hour,int minute) //第三个Time1方法 ,相比第二个增加了一个参数
{setTime(hour,minute,0);}
public Time1(int hour,int minute,int second) //第四个Time1方法 ,通过重载对相似的功能用相同方法名
{setTime(hour,minute,second);}
重写(override)
在子类中如果创建了一个与父类中相同名称、相同返回值类型、相同参数列表的方法,只是方法体中的实现不同,以实现不同于父类的功能,这种方式被称为方法重写(override)
注意
- 参数列表必须完全与被重写的方法参数列表相同。
- 重写方法仅方法体
- 子类和父类有继承关系
public String toString()
{ //对toString方法进行重写
return ((hour<10?"0":"")+hour+":"+(minute<10?"0":"")+minute+":"+(second<10?"0":"")+second);
} //对toString方法进行重写
toString()方法
在Object类里定义的,其返回值类型为String类型。它是sun公司开发java的时候为了方便输出而特意加入的一个方法
注意
return
return ((hour<10?“0”:“”)+hour+“:”+(minute<10?“0”:“”)+minute+“:”+(second<10?“0”:“”)+second);
此处不能缺少返回语句
对象名
调用toString方法时要注意在方法前加对象名
整个函数
import java.util.Scanner;
public class MyTime1
{
private static Time1 t0,t1,t2,t3,t4; //需在此处声明变量给Time1
public static void main(String[] args)
{
Scanner in=new Scanner(System.in);
System.out.println("请输入想要设置的时间");
int a=in.nextInt();
int b=in.nextInt();
int c=in.nextInt();
t0=new Time1();
t1=new Time1(11);
t2=new Time1(22,22);
t3=new Time1(11,22,33);
t4=new Time1(a,b,c);
System.out.println("t0="+toString()); //调用toString方法时要注意在方法前加对象名
System.out.println("t1="+t1.toString());
System.out.println("t2="+t2.toString());
System.out.println("t3="+t3.toString());
System.out.println("t4="+t4.toString());
}
}
class Time1
{
private int hour;
private int minute;
private int second;
public Time1()
{setTime(0,0,0);}
public Time1(int hh)
{setTime(hh,0,0);}
public Time1(int hh,int mm)
{setTime(hh,mm,0);}
public Time1(int hh,int mm,int ss)
{setTime(hh,mm,ss);}
public void setTime(int hh,int mm,int ss)
{
hour=((hh>=0&&hh<=24)?hh:0);
minute=((mm>=0&&mm<=60)?mm:0);
second=((ss>=0&&ss<=60)?ss:0);
}
public String toString() //toString方法是Object里面为了方便所有类的字符串操作而特意加入的一个方法
{ //对toString方法进行重写
return ((hour<10?"0":"")+hour+":"+(minute<10?"0":"")+minute+":"+(second<10?"0":"")+second); //此处不能缺少返回语句
}
}