仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 482|回复: 11
打印 上一主题 下一主题

[学习教程] 了解下JAVA的经由过程实例进修Java对象的机关历程

[复制链接]
灵魂腐蚀 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:24:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
在1995年5月23日以“Java”的名称正式发布了。
本文供应一个项目中的毛病实例,供应对其察看和剖析,展现出Java言语实例化一个对象详细历程,最初总结出计划Java类的一个主要划定规矩。经由过程浏览本文,可使Java程序员了解Java对象的机关历程,从而计划出加倍强健的代码。本文合适Java初学者和必要进步的Java程序员浏览。
程序掷出了一个非常
作者已经在一个项目内里向项目构成员供应了一个笼统的对话框基类,利用者只需在子类中完成基类的一个笼统办法来画出显现数据的界面,便可使项目内的对话框具有不异的作风。详细的代码完成片段以下(为了简便起见,省略了其他有关的代码):
publicabstractclassBaseDlgextendsJDialog{
publicBaseDlg(Frameframe,Stringtitle){
super(frame,title,true);
this.getContentPane().setLayout(newBorderLayout());
this.getContentPane().add(createHeadPanel(),BorderLayout.NORTH);
this.getContentPane().add(createClientPanel(),BorderLayout.CENTER);
this.getContentPane().add(createButtonPanel(),BorderLayout.SOUTH);
}
privateJPanelcreateHeadPanel(){
...//创立对话框头部
}
//创立对话框客户地区,交给子类完成
protectedabstractJPanelcreateClientPanel();
privateJPanelcreateButtonPanel{
...//创立按钮地区
}
}
这个类在有的代码中事情得很好,但一个同事在利用时,程序却掷出了一个NullPointerException背例!经由对照,找出了事情一般和不一般的程序的渺小不同,代码片段分离以下:
1、一般事情的代码:
publicclassChildDlg1extendsBaseDlg{
 JTextFieldjTextFieldName;
 publicChildDlg1(){
  super(null,"Title");
 }
 publicJPanelcreateClientPanel(){
  jTextFieldName=newJTextField();
  JPanelpanel=newJPanel(newFlowLayout());
  panel.add(jTextFieldName);
  ...//别的代码
  returnpanel;
 }
 ...
}
ChildDlg1dlg=newChildDlg1(frame,"Title");//内部的挪用
2、事情不一般的代码:
publicclassChildDlg2extendsBaseDlg{
 JTextFieldjTextFieldName=newJTextField();
 publicChildDlg2(){
  super(null,"Title");
 }
 publicJPanelcreateClientPanel(){
  JPanelpanel=newJPanel(newFlowLayout());
  panel.add(jTextFieldName);
  ...//别的代码
  returnpanel;
 }
 ...
}
ChildDlg2dlg=newChildDlg2();//内部的挪用
你看出来两段代码之间的不同了吗?对了,二者的不同仅仅在于类变量jTextFieldName的初始化工夫。经由跟踪,发明在实行panel.add(jTextFieldName)语句之时,jTextFieldName的确是空值。
我们晓得,Java同意在界说类变量的同时给变量赋初始值。体系运转过程当中必要创立一个对象的时分,起首会为对象分派内存空间,然后在“先于挪用任何办法之前”依据变量在类内的界说按次来初始化变量,接着再挪用类的机关办法。那末,在本例中,为何在变量界说时便初始化的代码反而会呈现空指针背例呢?
<p>
在1995年5月23日以“Java”的名称正式发布了。
乐观 该用户已被删除
沙发
发表于 2015-1-19 07:02:38 | 只看该作者
是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言
深爱那片海 该用户已被删除
板凳
发表于 2015-1-24 11:20:01 | 只看该作者
Java是一种计算机编程语言,拥有跨平台、面向对java
愤怒的大鸟 该用户已被删除
地板
发表于 2015-1-25 19:36:31 | 只看该作者
是一种简化的C++语言 是一种安全的语言,具有阻绝计算机病毒传输的功能
谁可相欹 该用户已被删除
5#
发表于 2015-1-30 07:15:20 | 只看该作者
Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。
第二个灵魂 该用户已被删除
6#
发表于 2015-2-6 07:56:01 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
蒙在股里 该用户已被删除
7#
发表于 2015-2-14 00:47:18 | 只看该作者
是一种为 Internet发展的计算机语言
透明 该用户已被删除
8#
发表于 2015-2-16 20:11:25 | 只看该作者
设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧
飘飘悠悠 该用户已被删除
9#
发表于 2015-3-5 09:27:55 | 只看该作者
[url]http://www.jdon.com/[/url]去下载,或到同济技术论坛的服务器[url]ftp://nro.shtdu.edu.cn[/url]去下,安装上有什么问题,可以到论坛上去提问。
只想知道 该用户已被删除
10#
发表于 2015-3-11 02:32:20 | 只看该作者
那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!
灵魂腐蚀 该用户已被删除
11#
 楼主| 发表于 2015-3-17 19:08:32 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
分手快乐 该用户已被删除
12#
发表于 2015-3-24 20:04:31 | 只看该作者
另外编写和运行Java程序需要JDK(包括JRE),在sun的官方网站上有下载,thinking in java第三版用的JDK版本是1.4,现在流行的版本1.5(sun称作J2SE 5.0,汗),不过听说Bruce的TIJ第四版国外已经出来了,是专门为J2SE 5.0而写的。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-23 22:18

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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