黑马程序员技术交流社区

标题: 关于构造方法的一个问题 [打印本页]

作者: 刘笑    时间: 2012-6-18 15:06
标题: 关于构造方法的一个问题
    最近在学习构造方法的时候发现了两个知识点貌似冲突啊,列出来大家瞧瞧:

     (1)构造方法的方法名必须与类名相同。
      (2)一个类可以定义多个构造方法
   问题产生了,这“多个构造方法”到底是怎么定义的,如果都定义成跟类名一样的话是不是指重写?
   谁能给解释一下啊
作者: 党巾水    时间: 2012-6-18 15:10
多个构造方法是可以传不同的参数,或是方法内容不同。
不是说方法名变化。
主要说的是重载。
作者: 唐辉辉    时间: 2012-6-18 15:14

java允许在一个类中,多个方法拥有相同的名字,但在名字相同的同时,必须有不同的参数,这就是重载,编译器会根据实际情况挑选出正确的方法,如果编译器找不到匹配的参数或者找出多个可能的匹配就会产生编译时错误,这个过程被称为重载.
作者: 胡卿    时间: 2012-6-18 15:19
  最近在学习构造方法的时候发现了两个知识点貌似冲突啊,列出来大家瞧瞧:

     (1)构造方法的方法名必须与类名相同。
     (2)一个类可以定义多个构造方法   这指的是重载,也就是方法一样,但方法中参数不一样     

比如class Student
      {
          public Student(String name)
               {
                    this.name=name;
               }
               public Student(String name,int age)
               {
                    this.name=name;
                    this.age=age;
               
               }
     }
这里Student类中就存在两个构造函数,名称是一样的,但是参数不一样,这也就解释了一个类可以存在多个构造函数的原因

作者: sbeeqnui1987    时间: 2012-6-18 15:23
构造方法主要是在创建对象时用
多个构造方法,具有不同的参数列表
利于构造对象时,就可以初始化一些属性
重载构造方法可以让你的类以不同的方式初始化,更加灵活易用

可以有多个个构造方法这叫做函数重载
函数重载:方法名相同 参数列表不相同
默认是无参的构造方法
比如:public class A{
  punlic A(){}
  punlic A(int a){}
  punlic A(int a,int b){}
  punlic A(String a){}
   .
   .
}

作者: 黄连兵    时间: 2012-6-18 15:27
还是喜欢用月饼来说事,一个做月饼的模子,往里面放不同的馅料(参数),你可以做出来不同的月饼,但是名字都叫月饼。还有五仁(五个参数)味的哈~!
构造方法是类的一个特殊的方法,虽然方法名相同,仍可通过参数列表来进行区分。确实是方法的重载!
作者: 车风波    时间: 2012-6-18 17:50
这个跟 方法的重载一个道理,就是方法名相同,参数不同的几个方法称为重载,构造函数也是函数(方法),当然也能重载了。




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