码迷,mamicode.com
首页 > 其他好文 > 详细

面向对象要点(构造函数)

时间:2015-12-13 21:58:33      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:

每创建一个类的实例都去初始化它的所有变量是乏味的。如果一个对象在被创建时就完成了所有的初始工作,将是简单的和简洁的。因此,Java在类里提供了一个特殊的成员函数,叫做构造函数(Constructor)。 
  一个构造函数是对象被创建时初始对象的成员函数。它具有和它所在的类完全一样的名字。一旦定义好一个构造函数,与new运算符一起使用,创建对象时就会自动调用它。构造函数没有返回类型,即使是void类型也没有。这是因为一个类的构造函数的返回值的类型就是这个类本身。构造函数的任务是初始化一个对象的内部状态,所以用new操作符创建一个实例后,立刻就会得到一个清楚、可用的对象。 

构造方法是一种特殊的方法,具有以下特点。 
(1)构造方法的方法名必须与类名相同。 
(2)构造方法没有返回类型,也不能定义为void,在方法名前面不声明方法类型。 
(3)构造方法的主要作用是完成对象的初始化工作,它能够把定义对象时的参数传给对象的域。 
(4)构造方法不能由编程人员调用,而要系统调用。 

(5)构造函数不能被直接调用,必须通过new运算符在创建对象时才会自动调用(即在new的时候就开始执行构造函数里面的语句);而一般的方法是在程序执行到它的时候被调用的.
(6)一个类可以定义多个构造方法,如果在定义类时没有定义构造方法,则编译系统会自动插入一个无参数的默认构造器,这个构造器不执行任何代码。 
(7)构造方法可以重载,以参数的个数,类型,或排列顺序区分。

(8)当定义一个类的时候,如果程序员不创建构造函数,则Java编译器就会提供一个默认的不带参数的构造函数。创建对象时系统就会自动调用这个默认的构造函数来创建类的对象。

package day2;
public class Test5 extends A1 {
         Test5() {
             System.out.println("Test5");
         }
         class Test{
             Test(){
                 System.out.println("Test");
             }
         }    
         //初始化块
         {
             System.out.println("初始化块");
         }
         Test t;
         /**
          * @param args
          */
         public static void main(String[] args) {
             new Test5();
         }
    }
    class A1 {
//        private A1()
//        {}
        
         public A1() {
             System.out.println("AAA");
         }
         {
             System.out.println("456");
         }
    }

456
AAA
初始化块
Test5

 
构造函数 

是一种特殊的方法 主要用来在创建对象时初始化对象 即为对象成员变量赋初始值总与new运算符一起使用在创建对象的语句中 特别的一个类可以有多个构造函数 可根据其参数个数的不同或参数类型的不同来区分它们 即构造函数的重载
构造函数与其他方法的区别 
1.构造函数的命名必须和类名完全相同;而一般方法则不能和类名相同.
2.构造函数的功能主要用于在类的对象创建时定义初始化的状态.它没有返回值,也不能用void来修饰.这就保证了它不仅什么也不用自动返回,而且根本不能有任何选择.而其他方法都有返回值.即使是void返回值,尽管方法体本身不会自动返回什么,但仍然可以让它返回一些东西,而这些东西可能是不安全的.
3.构造函数不能被直接调用,必须通过new运算符在创建对象时才会自动调用,一般方法在程序执行到它的时候被调用.
4.当定义一个类定义的时候,通常情况下都会显示该类的构造函数,并在函数中指定初始化的工作也可省略不去Java编译器会提供一个默认的构造函数.此默认构造函数是不带参数的.而一般方法不存在这一特点

面向对象要点(构造函数)

标签:

原文地址:http://www.cnblogs.com/mmlovejj/p/5043616.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!