仓酷云

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

[学习教程] 了解下JAVA的由构建器包管初始化

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

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

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

x
C#跟java类似,但是在跨平台方面理论上可以跨平台,实际上应用不大,执行性能优于java,跟C++基本一致,但是启动速度还是慢.代码安全,但容易性能陷阱.
关于办法的创立,可将其设想成为本人写的每一个类都挪用一次initialize()。这个名字提示我们在利用对象之前,应起首举行如许的挪用。但不幸的是,这也意味着用户必需记着挪用办法。在Java中,因为供应了名为“构建器”的一种特别办法,以是类的计划者可包管每一个对象城市失掉准确的初始化。若某个类有一个构建器,那末在创立对象时,Java会主动挪用谁人构建器——乃至在用户绝不知觉的情形下。以是说这是能够包管的!
接着的一个成绩是怎样定名这个办法。存在两方面的成绩。第一个是我们利用的任何名字都大概与盘算为某个类成员利用的名字抵触。第二是因为编译器的义务是挪用构建器,以是它必需晓得要挪用是哪一个办法。C++接纳的计划看来是最复杂的,且更有逻辑性,以是也在Java里失掉了使用:构建器的名字与类名不异。如许一来,可包管象如许的一个办法会在初始化时代主动挪用。
上面是带有构建器的一个复杂的类(若实行这个程序有成绩,请参考第3章的“赋值”大节)。
  1. //:SimpleConstructor.java
  2. //Demonstrationofasimpleconstructor
  3. packagec04;
  4. classRock{
  5. Rock(){//Thisistheconstructor
  6. System.out.println("CreatingRock");
  7. }
  8. }
  9. publicclassSimpleConstructor{
  10. publicstaticvoidmain(String[]args){
  11. for(inti=0;i<10;i++)
  12. newRock();
  13. }
  14. }///:~
复制代码
如今,一旦创立一个对象:
newRock();
就会分派响应的存储空间,并挪用构建器。如许可包管在我们经手之前,对象失掉准确的初始化。
请注重一切办法首字母小写的编码划定规矩其实不合用于构建器。这是因为构建器的名字必需与类名完整不异!
和其他任何办法一样,构建器也能利用自变量,以便我们指定对象的详细创立体例。可十分便利地修改上述例子,以便构建器利用本人的自变量。以下所示:
  1. classRock{
  2. Rock(inti){
  3. System.out.println(
  4. "CreatingRocknumber"+i);
  5. }
  6. }
  7. publicclassSimpleConstructor{
  8. publicstaticvoidmain(String[]args){
  9. for(inti=0;i<10;i++)
  10. newRock(i);
  11. }
  12. }
复制代码
使用构建器的自变量,我们可为一个对象的初始化设定响应的参数。举个例子来讲,假定类Tree有一个构建器,它用一个整数自变量标志树的高度,那末就能够象上面如许创立一个Tree对象:

treet=newTree(12);//12英尺高的树

若Tree(int)是我们独一的构建器,那末编译器不会同意我们以其他任何体例创立一个Tree对象。
构建器有助于打消大批触及类的成绩,并使代码更容易浏览。比方在前述的代码段中,我们并未看到对initialize()办法的明白挪用——那些办法在观点上自力于界说内容。在Java中,界说和初始化属于一致的观点——二者缺一不成。
构建器属于一种较特别的办法范例,由于它没有前往值。这与void前往值存在着分明的区分。关于void前往值,只管办法自己不会主动前往甚么,但仍旧可让它前往另外一些工具。构建器则分歧,它不但甚么也不会主动前往,并且基本不克不及有任何选择。若存在一个前往值,并且假定我们能够自行选择前往内容,那末编译器几要晓得怎样对谁人前往值作甚么样的处置。
但是一些大型开发或者是保密型比较高的项目都会用java,原因有2点,一:java是开源的,不怕别人留后门,偷我工具,.net网页编程就不一样了,保持微软的一向风格,源代码不公开
再现理想 该用户已被删除
沙发
发表于 2015-1-21 11:02:08 | 只看该作者
Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。
谁可相欹 该用户已被删除
板凳
发表于 2015-2-4 23:09:39 | 只看该作者
多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
深爱那片海 该用户已被删除
地板
发表于 2015-2-10 22:37:35 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
变相怪杰 该用户已被删除
5#
发表于 2015-2-10 23:45:07 | 只看该作者
是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言
透明 该用户已被删除
6#
发表于 2015-3-1 17:53:30 | 只看该作者
是一种使网页(Web Page)产生生动活泼画面的语言
山那边是海 该用户已被删除
7#
发表于 2015-3-10 21:35:33 | 只看该作者
象、泛型编程的特性,广泛应用于企业级Web应用开发和移动应用开发。
若天明 该用户已被删除
8#
发表于 2015-3-13 22:08:37 | 只看该作者
学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。
愤怒的大鸟 该用户已被删除
9#
发表于 2015-3-20 12:40:34 | 只看该作者
任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言
若相依 该用户已被删除
10#
发表于 2015-3-23 01:02:36 | 只看该作者
是一种使网页(Web Page)产生生动活泼画面的语言
蒙在股里 该用户已被删除
11#
发表于 2015-4-13 06:08:40 | 只看该作者
Java 编程语言的风格十分接近C、C++语言。
小妖女 该用户已被删除
12#
发表于 2015-4-21 18:29:52 | 只看该作者
《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。
灵魂腐蚀 该用户已被删除
13#
发表于 2015-5-6 07:11:59 | 只看该作者
一直感觉JAVA很大,很杂,找不到学习方向,前两天在网上找到了这篇文章,感觉不错,给没有方向的我指了一个方向,先不管对不对,做下来再说。
冷月葬花魂 该用户已被删除
14#
发表于 2015-5-6 11:11:54 | 只看该作者
有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)
只想知道 该用户已被删除
15#
发表于 2015-5-10 03:51:44 | 只看该作者
是一种将安全性(Security)列为第一优先考虑的语言
小魔女 该用户已被删除
16#
发表于 2015-6-4 02:42:58 | 只看该作者
自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。
莫相离 该用户已被删除
17#
发表于 2015-6-12 03:21:37 | 只看该作者
接着就是EJB了,EJB就是Enterprise JavaBean, 看名字好象它是Javabean,可是它和Javabean还是有区别的。它是一个体系结构,你可以搭建更安全、更稳定的企业应用。它的大量代码已由中间件(也就是我们常听到的 Weblogic,Websphere这些J2EE服务器)完成了,所以我们要做的程序代码量很少,大部分工作都在设计和配置中间件上。
分手快乐 该用户已被删除
18#
发表于 2015-6-13 09:23:51 | 只看该作者
一般学编程语言都是从C语开始学的,我也不例外,但还是可能不学过程语言而直接学面向对象语言的,你是刚接触语言,还是从C开始学比较好,基础会很深点,如果你直接学习JAVA也能上手,一般大家在学语言的时候都记一些语言的关键词,常有的包和接口等。再去做逻辑代码的编写,以后的学习过程都是从逻辑代码编写中提升的,所以这方面都是经验积累的。你要开始学习就从
再见西城 该用户已被删除
19#
发表于 2015-6-17 11:22:23 | 只看该作者
J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。
admin 该用户已被删除
20#
发表于 2015-6-24 02:21:36 | 只看该作者
Java自面世后就非常流行,发展迅速,对C++语言形成了有力冲击。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于个人PC、数据中心、游戏控制台
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-22 21:48

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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