05.面向对象(2)--函数方法
?
5、函数方法5.1、方的重载函数的重载就是在同一个类中允许同时存在一个以上的同名函数,只要它们的参数个数或类型不同即可。在这种情况下,该函数就叫被重载(overloaded)了,这个过程称为函数的重载(method overloading)。
例如:
public class Test{public static void main(String [] args){int isum;double fsum;isum=add(3,5);isum=add(3,5,6);fsum=add(3.2,6.5); }public static int add(int x,int y){reutrn x+y;}public static int add(int x,int y,int z){return x+y+z;}public static double add(double x,double y){return x+y;}}
?
5.2、构造函数1.构造函数的特点:具有与类相同的名称;不含返回值;不能在方法中用return语句返回一个值构造方法在程序设计中非常有用,它可以为类的成员变量进行初始化工作,当一个类的实例对象刚产生时,这个类的构造方法就会被自动调用,我们可以在这个方法中加入要完成初始化工作的代码。注意:在构造方法里不含返回值的概念是不同于“void”的,对于“public void Person()”这样的写法就不再是构造方法,而变成了普通方法,在定义构造方法时不能加了“void”,否则这个方法就不再被自动调用了。例:class Person{public Person(){System.out.println("the constructor 1 is calling!");}private int age = 10; public void shout(){ System.out.println(“age is ”+age); }}class TestPerson{public static void main(String[] args){Person p1=new Person();p1.shout();Person p2=new Person();p2.shout();Person p3=new Person();p3.shout();}}
???结果:
the constructor 1 is calling!age is 10the constructor 1 is calling!age is 10the constructor 1 is calling!age is 105.3 、构造方法的重载构造和一般一样也可以重载:class Person{private String name=”unknown”;private int age = -1;public Person(){System.out.println(“constructor1 is calling”);} public Person(String n){ name = n; System.out.println("constructor2 is calling");System.out.println(“name is ”+name); }public Person(String n,int a){ name = n; age = a; System.out.println(”constructor3 is calling”);System.out.println(“name and age is ”+name+”;”+age); } public void shout(){ System.out.println(“listen to me!!”); }}class TestPerson{public static void main(String[] args){Person p1=new Person();P1.shout();Person p2=new Person(”Jack”);P2.shout();Person p3=new Person(“Tom”,18);P3.shout();}}?运行结果:constructor1 is callinglisten to me!!constructor2 is callingname is Jacklisten to me!!constructor3 is callingname and age is Tom;18listen to me!!