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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 潘多拉 中级黑马   /  2014-8-20 22:23  /  1181 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

构造函数什么时候用啊?

8 个回复

倒序浏览
当你需要创建一个类的对象时,就需要调用该类的构造函数了
回复 使用道具 举报
创建对象用的!
回复 使用道具 举报
每个类都有构造方法的,而且一个对象只有在它建立的时候运行一次构造方法。也就是说,构造方法,之用来初始化新创建的对象。
回复 使用道具 举报
本帖最后由 波-wang 于 2014-8-21 16:55 编辑
  1. /*
  2. 每一个学生都有对应的归属地
  3. 学生Student 地址String
  4. 创建Map集合将学生作为键,地址作为值存入集合
  5. 学生属性姓名  年龄
  6. 同姓名同年龄为同一个学生
  7. */

  8. class Student implements comparable<Student>
  9. {
  10.         private String name;
  11.         private int age;
  12.         public Student(String name,int age)
  13.         {//构造函数,在初始化对象的时候用
  14.                 this.name=name;
  15.                 this.age=age;
  16.         }
  17.         public String getName()
  18.         {
  19.                 return this.name;
  20.         }
  21.         public void setName(String name)
  22.         {
  23.                 this.name=name;
  24.         }
  25.         public int getAge()
  26.         {
  27.                 return this.age;
  28.         }
  29.         public void setAge(int age)
  30.         {
  31.                 this.age=age;
  32.         }
  33.         
  34.         public int compareTo(Student s)<Student>
  35.         {
  36.                 int num=new Integer(this.age).compareTo(new Integer(s.age));
  37.                 if (num==0)
  38.                 {
  39.                         return this.name.compareTo(s.name);
  40.                         return num;
  41.                 }

  42.         }

  43.         public boolean equals(Object obj)
  44.         {
  45.                 if (!(obj instanceof Student))
  46.                 {
  47.                         throw new RuntimeException("类型不匹配");
  48.                 }
  49.                 Student s=(Student)obj;
  50.                 return this.name.equals(s.name)&&this.age==s.age;
  51.                 }

  52.         public int hashCode()
  53.         {
  54.                 return name.hashCode()+age*39;
  55.         }
  56. }

  57. class  MapTest
  58. {
  59.         public static void main(String[] args)
  60.         {
  61.                 HashMap<Stusent,String> hm=new HashMap<Student,String>();//初始化一个HashMap()对象,利用的是API自带的构造函数
复制代码


回复 使用道具 举报
new ClassObject();的时候,就会自动调用类的构造参数,如果传了参数的话,就会去调用带参数的构造函数。
回复 使用道具 举报
hsy 中级黑马 2014-8-21 17:38:09
7#
一般情况下最好手动给出无参构造,以便给对象的成员初始化。。。
回复 使用道具 举报
初始化新建类的对象!
回复 使用道具 举报
danmo 来自手机 中级黑马 2014-8-21 18:38:05
9#
主要是实现变量成员  和类的初始方法
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马