黑马程序员技术交流社区

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

作者: 潘多拉    时间: 2014-8-20 22:23
标题: 构造函数的问题
构造函数什么时候用啊?
作者: java_dream    时间: 2014-8-20 23:25
当你需要创建一个类的对象时,就需要调用该类的构造函数了
作者: 孙小亚    时间: 2014-8-21 15:50
创建对象用的!
作者: 孙雯    时间: 2014-8-21 16:26
每个类都有构造方法的,而且一个对象只有在它建立的时候运行一次构造方法。也就是说,构造方法,之用来初始化新创建的对象。
作者: 波-wang    时间: 2014-8-21 16:47
本帖最后由 波-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自带的构造函数
复制代码



作者: wwfkofufo    时间: 2014-8-21 17:17
new ClassObject();的时候,就会自动调用类的构造参数,如果传了参数的话,就会去调用带参数的构造函数。
作者: hsy    时间: 2014-8-21 17:38
一般情况下最好手动给出无参构造,以便给对象的成员初始化。。。
作者: THE_FUTURE    时间: 2014-8-21 17:43
初始化新建类的对象!
作者: danmo    时间: 2014-8-21 18:38
主要是实现变量成员  和类的初始方法




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