a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 106|回复: 0

[其他] java认证:Java中的默认构建器

[复制链接]
发表于 2012-8-4 12:28:23 | 显示全部楼层 |阅读模式
正如起先指出的那样,默认构建器是没有自变量的。它们的浸染是建树一个“空对象”。若建树一个没有构建器的类,则编译轨范会帮我们自动建树一个默认构建器。例如://: DefaultConstructor.javaclass Bird {" r2 r# q9 J6 k7 z. [' z
  int i;
- {8 L5 K( U) h' B2 `  }public class DefaultConstructor {
* j' o4 T: u% |" ]& I- N  public static void main(String[] args) {
* K% i+ x% q- G4 D3 t  Bird nc = new Bird(); // default!* I6 Z- n7 F9 s8 E$ e7 f# D" M
  }
7 I1 T+ D( r3 P9 i5 Z, ~% c  } ///:~对于下面这一行:! y' ^! D. h* ~5 t7 e/ @9 d1 t- c
  new Bird();6 Z; a* b! F6 j0 g
  它的浸染是新建一个对象,并挪用默认构建器——即使尚未明晰界说一个象这样的构建器。若没有它,就没有体例可根柢用,无法构建我们的对象。然而,如不美观已经界说了一个构建器(无论是否有自变量),编译轨范都不会帮我们自动合成一个:class Bush {6 x9 E; d5 Y7 A/ e* ~+ _5 V
  Bush(int i) {}5 O9 u- r. m/ `) y
  Bush(double d) {}
2 F9 `3 N9 a7 Y' C  }此刻,假若使用下述代码:
) G) u8 s* f+ R. I1 B% k3 D: r  new Bush();
& a! ], B  D% ~; o2 g' Q  编译轨范就会陈述自己找不到一个相符的构建器。就好象我们没有设置任何构建器,编译轨范会说:“你看来似乎需要一个构建器,所以让我们给你制造一个吧。”但假如我们写了一个构建器,编译轨范就会说:“啊,你已写了一个构建器,所以我知道你想干什么;如不美观你不放置一个默认的,是因为你筹算省略它。”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-9-27 21:18 , Processed in 0.157589 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表