黑马程序员技术交流社区

标题: 构造函数 [打印本页]

作者: 小笨    时间: 2014-8-3 11:30
标题: 构造函数
本帖最后由 小笨 于 2014-8-4 08:17 编辑

怎样实现构造函数的重载?

作者: 向晓伟    时间: 2014-8-3 12:07
参数不同,参数顺序不同也可以~
作者: rende1991    时间: 2014-8-3 12:29
构造函数的参数类型不同,顺序不同,个数不同,等各种构造函数,构造自己想要的构造函数吧。
作者: 130880130880    时间: 2014-8-3 12:43
构造函数         12.1语法:访问修饰符一般情况下是public,没有返回值(连void都不用写),方法名与类名一致         12.2构造函数在创建这个类的对象的时候被自动调用,通过new关键字调用,在类名后的括号里面为构造函数传递参数         12.3构造函数可以带参数以及重载         12.4构造函数不能被程序员手动调用,但是在构造函数中可以调用普通的方法         12.5构造函数之间可以通过this关键字调用         12.6this关键字1代表当前对象,2调用本类的其他的构造函数         12.7 隐式构造函数
作者: 流失的温度0    时间: 2014-8-3 14:13
构造函数重载
例如Person类。private string name;
private int age;
private char gender;

// 以下两个为两个参数的构造函数。
public Person(string name,int age)
{
    this.name=name;
    this.age=age;
}

public Person(int age,string name)
{
    this.name=name;
    this.age=age;

}

下面两个为三个参数的构造函数。
public Person(string name,int age,char gender)
{
     this.name=name;
    this.age=age;
    this.gender=gender;
}
public Person(string name,char gender,int age)
{
     this.name=name;
    this.age=age;
    this.gender=gender;
}

上面四个函数就构成了重载。
函数名相同,参数列表不同的函数可构成重载
这里的参数列表不同可以有很多情况。
如果几个参数类型相同,那么即使再交换,也不会构成重载。
就像上面的两个参数的情况,两个参数类型不同,一个string一个int,交换一下位置就可以构成重载。
如果两个都是string类型的话,那就不能构成重载。
有一个判断的方法:
去掉访问修饰符,去掉返回值类型,去掉参数列表里的参数名称(不是类型)
看剩下的是不是一样,一样的话就不能构成重载。
比如下面两个
public static double GetNum(int d1,int d2)
{
   return d1+d2;
}
public static int GetNum(int i1,int i2)
{
    return i1+i2;
}
去掉上面所说的几个就剩下下面这样
GetNum(int ,int )
GetNum(int,int)
完全一样,所以不能构成重载。

作者: ╃→梅飛揚之城    时间: 2014-8-4 00:10
通过不同类型、不同个数、不同的顺序的参数,来实现构造函数的重载。

作者: FrancisTan    时间: 2014-8-5 11:33
构造函数的重载跟普通方法重载一样,只要参数不同就OK
作者: lc6897094    时间: 2014-8-6 09:09
和方法重载一样,设置函数名和类同名,但是参数不同,可以是个数、位置、类型这些不同,编译器会根据传入的参数自从匹配,这就是重载
作者: 菜鸟一号    时间: 2014-8-6 09:17
函数名相同,参数列表不同
作者: 静水流深2014    时间: 2014-8-25 10:51
总结的很纤细,很有用啊
作者: MeryStyle    时间: 2014-8-31 21:29
简而言之,只要方法参数的个数,类型,顺序(包括参数个数=0时),这时定义的方法都是互为重载的
作者: rel4x    时间: 2014-9-12 10:13
不错 有用
作者: sadfgood    时间: 2014-9-13 19:34
方法名相同,参数个数不同.
作者: ︶ㄣ你眼中的倒    时间: 2014-9-25 08:27
构找函数的参数列表不同,与返回值类型无关!如果有两个一样的构找函数,他们的返回值类型不同,他们不能共存
作者: 官方    时间: 2014-9-25 09:59
路过 学习一下




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2