小女求详细的java构造方法讲解

解决方案 »

  1.   


    1. 构造方法的特征 • 它具有与类相同的名称; 
    • 它不含返回值; 
    • 它不能在方法中用 return 语句返回一个值; 
    • 当自定义了构造方法后,编译器将不再自动创建不带参数的构造方法 。 
    • 在构造方法里不含返回值的概念是不同于 “void” 的,在定义构造方法时加了 “void” ,结果这个方法就不再被自动调用了。 
    2. 构造方法的作用:当一个类的实例对象刚产生时,这个类的构造方法就会被自动调用,我们可以在这个方法中加入要完成初始化工作的代码。总之:一般的说,构造方法用来初始化类的变量 
      

  2.   

    三楼那位朋友在理论方面讲得确实是挺好!
    下面我就几个例子说明一下在构造函数中应该注意的一些问题,希望能给你一些参考。   当系统没有自动提供无参构造函数时,你必须为直接父类提供无参构造函数,NoArgConstTest1.java与NoArgConstTest2.java说明了这一点!   当一个父在没有提供任何构造函数的时候,系统会自动提供一个无参构造函数;但是只要你要父类提供一个构造函数,那么
    系统就不会提供无参构造函数了。NoArgConstTest3.java与NoArgConstTest4.java说明了这一点!
      

  3.   

    /**
       NoArgConstTest1.java
       测试无参构造函数的作用
       知识点:直接超类中必须有无参构造函数(在调用子类构造函数前,先调用超类无参构造函数)
       @author GeHaiming
       @version 2007-04-30
    */
    public class NoArgConstTest1
    {
    public static void main(String[] args)
    {
    SubClass sub=new SubClass(6);
    }
    }//超类
    class SuperClass
    {
    //父类无参构造函数
    public SuperClass()
    {
    System.out.println("父类无参构造函数");
    }
    }//子类
    class SubClass extends SuperClass
    {
    public SubClass(int a)
    {
    this.a=a;
    System.out.println("子类构造函数");
    }

    private int a;
    }
    /**
       NoArgConstTest2.java
       测试无参构造函数的作用
       提示:些程序编译不会通过!
        @author GeHaiming
       @version 2007-04-30
    */
    public class NoArgConstTest2
    {
    public static void main(String[] args)
    {
    SubClass sub=new SubClass(6);
    }
    }//超类
    class SuperClass
    {
         public SuperClass(int x){}
    }//子类
    class SubClass extends SuperClass
    {
    public SubClass(int a)
    {
    this.a=a;
    System.out.println("子类构造函数");
    }

    private int a;
    }
      

  4.   

    /**
       NoArgConstTest3.java
       @author GeHaiming
       @version 2007-04-30
    */
    public class NoArgConstTest3
    {
    public static void main(String[] args)
    {
    SubClass sub=new SubClass(6);
    }
    }//超类
    class SuperClass
    {
      /*此时系统会自动提供一个无参构造函数*/
    }//子类
    class SubClass extends SuperClass
    {
    public SubClass(int a)
    {
    this.a=a;
    System.out.println("子类构造函数");
    }

    private int a;
    }
    /**
       NoArgConstTest4.java
       测试无参构造函数的作用
       提示:些程序编译不会通过!
        @author GeHaiming
       @version 2007-04-30
    */
    public class NoArgConstTest4
    {
    public static void main(String[] args)
    {
    SubClass sub=new SubClass(6);
    }
    }//超类
    class SuperClass
    {
         /*此时系统不会自动提供无参构造函数*/
           public SuperClass(int x){}
    }//子类
    class SubClass extends SuperClass
    {
    public SubClass(int a)
    {
    this.a=a;
    System.out.println("子类构造函数");
    }

    private int a;
    }
      

  5.   

    ge_haiming  同志写的很好 
    其实理论最终要和时间相结合  那才是最好的理解方式