java java构造器器问题

- System Error
Discuz! System Error
已经将此出错信息详细记录, 由此给您带来的访问不便我们深感歉意.浅谈JAVA中类的构造器_Java教程_
浅谈JAVA中类的构造器
来源:人气:19884
   现在越来越多的人开始学习,很多人求学心切,免不了贪多而忽略了一些基本的,也是必须搞清楚的概念。下面我就来说说java里类的构造器概念。大家知道java作为一门OO语言,和C++,Smalltalk等一样有3个最要害     1。ADT   2。继续   3。多态     当然对于java,类的概念是重中之重,对于类的构造和对象的实现就需要用到构造器。   例如:class ofesser(){               public Professer(string n,int no){     name=n;     number=     }     public teach(){}     }   下面我们要对这个类的对象实例化:Professer p =new Professer()   以上就是构造器的语法了,这里用到了要害字   new     讲到这里还没有什么可以困扰我们的地方,那么下面我们将借助有关继续的一些例子来继续阐述构造器问题:   假设:class OldProfesser(){                     public do(){}     }       有人也许会问为什么这个OldProfesser类里面为什么没有定义构造器?其实,java已经我们定义了一个无参数的默认构造器,即OldProfesser(){}   Ok, 到这里为止,没有任何问题,然而,一旦让OldProfesser继续Professer并实例化,编译器就会报错,LOOK:      class OldProfesser extends Professer(){                                     public do(){}     public static void mian(string[] args){        OldProfesser o=new OldProfesser();     }   很抱歉你得到的是一条出错的信息,有人问了,你说OldProfesser的构造器是默认的我才这样写,没错,OldProfesser确实存在这样一个无参的构造器,这样写法换做OldProfesser不做Professer的子类的情况下一定是正确的。       你所需要知道的是下面一个规则:  1。假如一个类没有设置字定义构造器,那么编译器会默认一个无参构造器。   2。在子类调用构造器时,总是先调用基类的构造器。   3。假如自定义了构造器,那么默认构造器将不存在。      在上例中,OldProfesser调用默认构造器前,编译器自动调用基类Professer的默认构造器,然而,Professer有了自定义构造器,所以默认构造器不存在了,编译器报错…………     那么我们该怎么做呢?像下面这样就OK了。        class OldProfesser extends Professer(){                                 Oldprofesser(string n,int no,int age){         super(n,no);         this.age=         }         public do(){}      }          这就是在子类中显式的调用基类构造器,注重,super必须是{}中的第一个执行语句。其实我们还有另外一种方法,在Professer类里面补充一个消失掉的默认构造器,如下:         class Professer(){                   public Professer(string n,int no){       name=n;       number=      }       Professe(){}       public teach(){}     }      值得一提的是构造器方法中,构造器的名称要与类的名称完全相同,包括大小写。      好了,关于构造器的一些基本问题讲的差不多了,请多指正…………
优质网站模板

我要回帖

更多关于 java中的构造器 的文章

 

随机推荐