首页 > 代码库 > 面向对象基础:函数重载和构造函数
面向对象基础:函数重载和构造函数
函数的重载
定义:
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 ()产生新的对象时则会报错。
面向对象基础:函数重载和构造函数
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。