当前位置:  技术问答>java相关

一个JBuilder常用者的疑感

    来源: 互联网  发布时间:2015-09-23

    本文导语:  为什么在产生的代码中总是有两个构造函数? 一个有参数而一个如,比如一个JFrame中如下的构造函数   public dialog_jinhuodan(Frame frame, String title, boolean modal) {     super(frame, title, modal);     try {       jbIni...

为什么在产生的代码中总是有两个构造函数?

一个有参数而一个如,比如一个JFrame中如下的构造函数

  public dialog_jinhuodan(Frame frame, String title, boolean modal) {
    super(frame, title, modal);
    try {
      jbInit();
      pack();
      Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
      Dimension frameSize = this.getSize();
    if (frameSize.height > screenSize.height) {
      frameSize.height = screenSize.height;
    }
    if (frameSize.width > screenSize.width) {
      frameSize.width = screenSize.width;
    }
    this.setLocation((8), (screenSize.height - frameSize.height) / 8);

    }
    catch(Exception ex) {
      ex.printStackTrace();
    }
  }

  public dialog_jinhuodan() {
    this(null, "", false);
  }

|
多个构造函数没什么奇怪的
这体现了 Java 的多态性

|
第二个调用了第一个
Java不像C++那样支持缺省参数
比如C++里
void find(String name, int age=4)
你可以这样用
find("F", 5);
也可以这样用
find("F");他就相当于find("F", 4);
这里因为函数签名的原因,导致和重载有点小摩擦
比如说,你重载了一个
find(String name)
那么,你调用find("F")的话,编译器怎么知道你是
想要find("F", 4);
还是你重载的那个find("F")?
Java虽然不像C++那样灵活
但是比C++简单,为了避免缺省参数和重载的冲突
Java干脆不支持缺省参数

|
当你的类声明中没有包含任何构造器时候,编译器自动生成一个没有参数也不完成什么操作的默认构造器。
    如果已经声明了一个具有一个或多个参数的构造器,除非明确定义否则不会生成默认的没有参数的构造器。
    当对象被创建时,构造器调用是一个连接起来的调用序列,使对象的每个父类的构造器都会被调用。父类的构造器首先执行,以便子类可以访问父类的成员,而且可以保证在他们的构造器中定义的任何初始化工作都被执行。
    除非你用super保留字和所需要的参数表来显式调用另外一个构造器,否则调用的是超类的无参数构造器的隐式调用。将出现
    No-Argument Constructor not Found in Superclass

|
这样一来该类的子类就不需要显式的定义构造函数了。我觉得这是原因之一。拙见。

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • jbuilder7突然打不开,unable to open jbuilder.congif??????????
  • JBuilder6 或JBuilder7如何注册?
  • 用jbuilder 编写的appliction 程序,如何独立于jbuilder 编译器之外运行?
  • JBuilder 6 在 winxp 下使用微软拼音输入法,输入中文。出现不正常。jbuilder.死锁
  • 谁有JBuilder的补丁,或是第三方控件,能完善一下JBuilder的功能的???
  • 在JBuilder中写了一个程序,脱离了JBuilder怎么运行?
  • 为什么Jbuilder 3可以编译通过的问题再Jbuilder 6下编译通不过了
  • 请问jbuilder7.0会不会比jbuilder6好啊?哪里有下载的?
  • 关于用Jbuilder进行程序调试?(用过Jbuilder的请发言)
  • jbuilder7 or jbuilder6 download adress?
  • 高分求助!偶公司要买jbuilder8 !请问买jbuilder8有包含哪些组件或工具?
  • 请问那里有jbuilder7或jbuilder6的电子书籍下载?
  • 请问那有jbuilder7的enterprise,borland上的jbuilder 7 enterprise trial是吗?
  • 小弟我正想学习Java,打算使用JBuilder,不知哪位前辈肯介绍一下JBuilder,用的人多不多?
  • 除了发布虚拟机外,发布JBuilder应用程序应发布我的哪些文件?怎样脱离JBuilder环境?
  • 新手请教:unix下能用Jbuilder开发吗?或者Jbuilder开发的程序在unix运行?
  • 我手动删除了jbuilder6自带的jdk,如何才能让jbuilder用我其他地方的jdk呀?
  • 我在jbuilder4.0中编的applet程序在jbuilder3.5中为何不能运行
  • 哪位能介绍一下JBuilder7有哪些优点,我为什么应该从JBuilder6换成7?
  • 如何脱离jbuilder 环境。用jbuilder熟悉的朋友帮忙。


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3