浅谈JAVA中类的构造器

 我来答
舒适还明净的海鸥i
2022-11-10 · TA获得超过1.7万个赞
知道小有建树答主
回答量:380
采纳率:0%
帮助的人:70.6万
展开全部
   现在越来越多的人开始学习java 很多人求学心切 免不了贪多而忽略了一些基本的 也是必须搞清楚的概念 下面我就来说说java里类的构造器概念 大家知道java作为一门OO语言 和C++ Smalltalk等一样有 个最关键       ADT    继承    多态     当然对于java 类的概念是重中之重 对于类的构造和对象的实现就需要用到构造器   例如 class Professer(){     private string name;     private int number;     public Professer(string n int no){     name=n;     number=no;     }     public teach(){}     }   下面我们要对这个类的对象实例化 Professer p =new Professer()   以上就是构造器的语法了 这里用到了关键字   new     讲到这里还没有什么可以困扰我们的地方 那么下面我们将借助有关继承的一些例子来继续阐述构造器问题   假设 class OldProfesser(){      private string name;      private int number ;      private int age;      public do(){}     }       有人也许会问为什么这个OldProfesser类里面为什么没有定义构造器?其实 java已经我们定义了一个无参数的默认构造器 即OldProfesser(){}   Ok 到这里为止 没有任何问题 然而 一旦让OldProfesser继承Professer并实例化 编译器就会报错 LOOK      class OldProfesser extends Professer(){        private string name;        private int number ;        private int age;             public do(){}     public static void mian(string[] args){        OldProfesser o=new OldProfesser();     }   很抱歉你得到的是一条出错的信息 有人问了 你说OldProfesser的构造器是默认的我才这样写 没错 OldProfesser确实存在这样一个无参的构造器 这样写法换做OldProfesser不做Professer的子类的情况下一定是正确的      你所需要知道的是下面一个规则    如果一个类没有设置字定义构造器 那么编译器会默认一个无参构造器    在子类调用构造器时 总是先调用基类的构造器    如果自定义了构造器 那么默认构造器将不存在      在上例中 OldProfesser调用默认构造器前 编译器自动调用基类Professer的默认构造器 然而 Professer有了自定义构造器 所以默认构造器不存在了 编译器报错…………     那么我们该怎么做呢?像下面这样就OK了        class OldProfesser extends Professer(){         private string name;         private int number;         private int age;         Oldprofesser(string n int no int age){         super(n no);         this age=age;         }         public do(){}      }          这就是在子类中显式的调用基类构造器 注意 super必须是{}中的第一个执行语句 其实我们还有另外一种方法 在Professer类里面补充一个消失掉的默认构造器 如下         class Professer(){       private string name;       private int number;       public Professer(string n int no){       name=n;       number=no;      }       Professe(){}       public teach(){}     }      值得一提的是构造器方法中 构造器的名称要与类的名称完全相同 包括大小写      好了 关于构造器的一些基本问题讲的差不多了 请多指正………… lishixinzhi/Article/program/Java/hx/201311/27172

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式