A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘笑 中级黑马   /  2012-6-18 15:06  /  2616 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

    最近在学习构造方法的时候发现了两个知识点貌似冲突啊,列出来大家瞧瞧:

     (1)构造方法的方法名必须与类名相同。
      (2)一个类可以定义多个构造方法
   问题产生了,这“多个构造方法”到底是怎么定义的,如果都定义成跟类名一样的话是不是指重写?
   谁能给解释一下啊

6 个回复

正序浏览
这个跟 方法的重载一个道理,就是方法名相同,参数不同的几个方法称为重载,构造函数也是函数(方法),当然也能重载了。
回复 使用道具 举报
还是喜欢用月饼来说事,一个做月饼的模子,往里面放不同的馅料(参数),你可以做出来不同的月饼,但是名字都叫月饼。还有五仁(五个参数)味的哈~!
构造方法是类的一个特殊的方法,虽然方法名相同,仍可通过参数列表来进行区分。确实是方法的重载!

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 你家做月饼的吧!呵呵

查看全部评分

回复 使用道具 举报
构造方法主要是在创建对象时用
多个构造方法,具有不同的参数列表
利于构造对象时,就可以初始化一些属性
重载构造方法可以让你的类以不同的方式初始化,更加灵活易用

可以有多个个构造方法这叫做函数重载
函数重载:方法名相同 参数列表不相同
默认是无参的构造方法
比如:public class A{
  punlic A(){}
  punlic A(int a){}
  punlic A(int a,int b){}
  punlic A(String a){}
   .
   .
}
回复 使用道具 举报
  最近在学习构造方法的时候发现了两个知识点貌似冲突啊,列出来大家瞧瞧:

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

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

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报

java允许在一个类中,多个方法拥有相同的名字,但在名字相同的同时,必须有不同的参数,这就是重载,编译器会根据实际情况挑选出正确的方法,如果编译器找不到匹配的参数或者找出多个可能的匹配就会产生编译时错误,这个过程被称为重载.

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
多个构造方法是可以传不同的参数,或是方法内容不同。
不是说方法名变化。
主要说的是重载。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马