首页 > 学院 > 开发设计 > 正文

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

2019-11-14 21:35:58
字体:
来源:转载
供稿:网友
面向对象基础:函数重载和构造函数

函数的重载

定义:

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函数");      }}

  

//类文件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 ()产生新的对象时则会报错。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表