我的Java——方法的重载

使用对象

要访问或调用一个对象的域或方法 需要用算符“."连接对象及其域或方法

如:

System.out.println(p.name);

p.sayHello();

由于只能通过对象变量来访问这个对象的域或方法 不通过引用变量就无法访问其中的域或方法 对于访问者而言 这个对象是封装成一个整体的 这正体现了面向对象的程序“封装性”

方法的重载

在面向对象的程序语言设计中 有一些方法的含义相同 但带有不同的参数 这些方法使用相同的名字 这就叫做方法的重载(overloading)。方法的重载是实现“多态”的一种方法。

  多个方法享有相同的名字 但是这些方法的参数列表必须不同 即:或者参数个数不同 或者是参数类型不同 或者参数类型的顺序不同

例:

void sayHello(){

  System.out.println("Hello!My name is "+name);

}

void sayHello(Person another){

  System.out.println("Hello,"+another.name+"!My name is"+name);

}

这里 两个函数都叫sayHello,都表示问好。一个不带参数,表示向大家问好;一个带另一个Person对象作参数 表示想某个人问好

在调用这两个方法时 可以不带参数 也可以带一个Person对象作参数 编译器会自动根据所带参数的类型来决定具体调用方法。

构造方法的重载


构造方法也可以重载 要求使用不同的参数个数 不同的参数类型 不同的参数类型顺序

构造方法的重载 可以让用户用不同的参数来构造对象

以下是Person的两种构造方法

Person(String n,int a){

  name=n;

  age=a;

}

Person(String n){

  name=n;

  age=-1;

}

前一个构造方法中,带有姓名及年龄信息;后一个构造方法,只有姓名信息,年龄信息未定,用一个特殊值(-1)表示。

posted @ 2016-05-27 10:08  努力成为工程师的芝麻  阅读(151)  评论(0编辑  收藏  举报