首页 > 代码库 > 面向对象基础:函数重载和构造函数

面向对象基础:函数重载和构造函数

函数的重载

定义:

1、两个或多个函数在同一个类当中;

2、函数名相同;

3、参数列表不同;

例子如下:

//类文件Aclass A{      //以下3个为成员函数      void funA(){           System.out.println("没有参数的funA函数");      }      void funA(int i){      //void为空的返回值,funA为函数名,括号内的为参数           System.out.println("带有整型参数的funA函数");      }      void funA(int i ,double d){           System.out.println("带有两个参数的funA函数");      }}

  

//类文件A的对象testAclass testA{      public static void main(String args[]){           A a = new A();//创建类A的对象a           a.funA();//使用对象a调用A的函数           a.funA(10);           a.funA(1,2.5);      }}

 

构造函数:类名()

构造函数不属于成员函数,而没有返回值,构造函数名必须与类名相同。

当编译器对源文件进行编译时会检查是否有构造函数,如果没有的话,编译器会自动添加无参数,而函数体为空的构造函数。

//类文件Aclass A{      //构造函数没有返回值,构造函数名必须与类名相同      A(){           System.out.println("我是构造函数");      }    } 
//类文件A的对象testAclass testA{      public static void main(String args[]){                A a = new A();      }}

成员函数的调用采用 对象 .函数名

构造函数的调用采用 new + 构造函数

构造函数的作用:

1、当我们调用构造函数时,会产生这个类的对象。

2、可自行定义构造函数为成员变量赋初值,方便对象的参数传入。例子如下:

class Person{      Person(){            }      String name;      int age;
Person(String n,int a){ //构造函数的重载 name = n; age = a; }}

 

class testPerson{	public static void main(String args[]){		//Person p1 = new Person();		//p1.name = "zhangsan";		//p1.age = 10;简化为以下代码				Person p1 = new Person("zhangsan",10);		System.out.println("p1的名字是"+p1.name+",年龄是"+p1.age);	}}

当类文件中已经有了自定义的构造函数,那么进行编译时,编译器就不会添加无参数的构造函数了,再通过new ()产生新的对象时则会报错。

 

面向对象基础:函数重载和构造函数