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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 叶燕希 中级黑马   /  2015-5-29 22:32  /  523 人查看  /  9 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

JAVA中定义类时一定要定义一个构造器吗?构造器的作用是什么?能给个实例吗

9 个回复

倒序浏览
本帖最后由 Tangtang 于 2015-5-29 22:50 编辑

在实例化这个类的时候,有调用这个类的默认构造方法,系统默认构造方法是无参的,所有自己不用写。
在系统中你若是定义了有参的构造方法,那么就要把无参的构造方法显示的写出来了,不然就无法再调用无参的构造方法
简单示例:
public class Test1 {
        //什么都不写系统会有默认的无参构造方法
}


public class Test1 {
        //无参构造方法
        public Test1() {
        }
        //有参构造方法
        public Test1(String name) {
        }
}

回复 使用道具 举报
Tangtang 发表于 2015-5-29 22:42
在实例化这个类的时候,有调用这个类的默认构造方法,系统默认构造方法是无参的,所有自己不用写。
在系统 ...

能给个例子说明吗
回复 使用道具 举报
在系统中你若是定义了有参的构造方法
回复 使用道具 举报
新人报道,热血黑马
回复 使用道具 举报
  1. class Student{
  2.     int age;
  3.     public Student(){}//这就是默认的构造函数
  4.         public void show(){
  5.                 System.out.println(age);
  6.         }
  7. }
  8. public class Test5 {

  9.         public static void main(String[] args) {

  10.                 Student s = new Student();
  11.                 s.age = 12;
  12.                 s.show();
  13.         }

  14. }
复制代码
回复 使用道具 举报
构造器是给对象进行初始化的,如果没有定义那么java虚拟机会给我们加一个无参的,如果存在继承关系,会先调用父类的无参构造器。
  1. //婴儿类
  2. class Baby{
  3.        
  4.         int id; //成员变量

  5.         String name;
  6.        
  7.         //构造代码块
  8.         {
  9.                 //System.out.println("构造代码块被调用了.....");
  10.                 cry();
  11.         }


  12.         //无参的构造函数
  13.         public Baby(){
  14.                
  15.         }

  16.         //带参构造函数
  17.         public Baby(int i,String n){
  18.                 id = i;
  19.                 name = n;
  20.         }

  21.         public void cry(){
  22.                 System.out.println("哇哇哇..");
  23.         }
  24. }


  25. class Demo4
  26. {
  27.         public static void main(String[] args)
  28.         {
  29.                 Baby b1 = new Baby(110,"狗娃");
  30.                
  31.                 /*
  32.                 Baby b1 = new Baby(); //黑户
  33.                 Baby b2 = new Baby(110,"狗娃"); //白户
  34.                 //System.out.println("Hello World!");
  35.                 */
  36.         }       
  37. }
复制代码
回复 使用道具 举报
可以不写,但是JVM会默认给你加上一个空参的构造器
回复 使用道具 举报
好!不错……:victory:
回复 使用道具 举报
学习学习。。。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马