若天明 发表于 2015-1-18 11:55:15

JAVA教程之Java进门:了解机关器 (转)

那这个对象有什么意义?现在很多用javabean的人就不能保证对象有完整的意义,不成熟的使用模式等导致代码疯狂增长,调试维护的时间要得多得多。在说性能之前,先说说你这个比较的来历。据说微软为了证明。net比java好。Java进门:了解机关器
译者:东方一蛇

了解机关器--机关器和办法的区分

择要

要进修Java,你必需了解机关器。由于机关器能够供应很多特别的办法,这个关于初学者常常搅浑。可是,机关器和办法又有良多主要的区分。

原RobertNielsen原站:www.javaworld.com



我们说机关器是一种办法,就象讲澳年夜利亚的鸭嘴兽是一种哺养植物。(按:老外喜好打比方,我也就照着翻译)。要了解鸭嘴兽,那末先必需了解它和其他哺养植物的区分。一样地,要了解机关器,那末就要懂得机关器和办法的区分。一切进修java的人,特别是对那些要认证测验的,了解机关器长短常主要的。上面将复杂先容一下,最初用一个表作了些复杂的总结。


功效和感化的分歧

机关器是为了创立一个类的实例。这个历程也能够在创立一个对象的时分用到:Platypusp1=newPlatypus();



相反,办法的感化是为了实行java代码。


润色符,前往值和定名的分歧

机关器和办法鄙人面三个便利的区分:润色符,前往值,定名。和办法一样,机关器能够有任何会见的润色:public,protected,private大概没有润色(一般被package和friendly挪用).分歧于办法的是,机关器不克不及有以下非会见性子的润色:abstract,final,native,static,大概synchronized。


前往范例也长短常主要的。办法能前往任何范例的值大概无前往值(void),机关器没有前往值,也不必要void。


最初,谈谈二者的定名。机关器利用和类不异的名字,而办法则分歧。依照习气,办法一般用小写字母入手下手,而机关器一般用年夜写字母入手下手。机关器一般是一个名词,由于它和类名不异;而办法一般更靠近动词,由于它申明一个操纵。


"this"的用法

机关器和办法利用关头字this有很年夜的区分。办法援用this指向正在实行办法的类的实例。静态办法不克不及利用this关头字,由于静态办法不属于类的实例,以是this也就没有甚么工具往指向。机关器的this指向统一个类中,分歧参数列表的别的一个机关器,我们看看上面的代码:


publicclassPlatypus{


Stringname;


Platypus(Stringinput){

name=input;

}


Platypus(){

this("John/MaryDoe");

}


publicstaticvoidmain(Stringargs[]){

Platypusp1=newPlatypus("digger");

Platypusp2=newPlatypus();

}

}



在下面的代码中,有2个分歧参数列表的机关器。第一个机关器,给类的成员name赋值,第二个机关器,挪用第一个机关器,给成员变量name一个初始值"John/MaryDoe".

在机关器中,假如要利用关头字this,那末,必需放在第一行,假如不如许,将招致一个编译毛病。


 
"super"的用法

机关器和办法,都用关头字super指向超类,可是用的办法纷歧样。办法用这个关头字往实行被重载的超类中的办法。看上面的例子:


classMammal{

voidgetBirthInfo(){

System.out.println("bornalive.");

}

}


classPlatypusextendsMammal{

voidgetBirthInfo(){

System.out.println("hatchfromeggs");

System.out.print("amammalnormallyis");

super.getBirthInfo();

}

}



在下面的例子中,利用super.getBirthInfo()往挪用超类Mammal中被重载的办法。


机关器利用super往挪用超类中的机关器。并且这行代码必需放在第一行,不然编译将堕落。看上面的例子:


publicclassSuperClassDemo{

SuperClassDemo(){}

}


classChildextendsSuperClassDemo{

Child(){

super();

}

}



在下面这个没有甚么实践意义的例子中,机关器Child()包括了super,它的感化就是将超类中的机关器SuperClassDemo实例化,并加到Child类中。


编译器主动到场代码

编译器主动到场代码到机关器,关于这个,java程序员老手大概对照搅浑。当我们写一个没有机关器的类,编译的时分,编译器会主动加上一个不带参数的机关器,比方:publicclassExample{}

编译后将以下代码:


publicclassExample{

Example(){}

}



在机关器的第一行,没有利用super,那末编译器也会主动加上,比方:


publicclassTestConstructors{

TestConstructors(){}

}



编译器会加上代码,以下:


publicclassTestConstructors{

TestConstructors(){

super;

}

}



细心想一下,就晓得上面的代码


publicclassExample{}



经由会被编译器加代码形如:


publicclassExample{

Example(){

super;

}

}










承继








机关器是不克不及被承继的。子类能够承继超类的任何办法。看看上面的代码:





publicclassExample{


publicvoidsayHi{


system.out.println("Hi");


}





Example(){}


}





publicclassSubClassextendsExample{


}








类SubClass主动承继了父类中的sayHi办法,可是,父类中的机关器Example()却不克不及被承继。





总结





主题

机关器

办法




功效

创建一个类的实例

java功效语句




润色

不克不及用bstract,final,native,static,
orsynchronized






前往范例

没有前往值,没有void

有前往值,大概void




定名

和类名不异;一般为名词,年夜写开首

一般代表一个动词的意义,小写开首




this

指向统一个类中别的一个机关器,在第一行

指向以后类的一个实例,不克不及用于静态办法




super

挪用父类的机关器,在第一行

挪用父类中一个重载的办法




承继

机关器不克不及被承继

办法能够被承继




编译器主动到场一个缺省的机关器

主动到场(假如没有)

不撑持




编译器主动到场一个缺省的挪用到超类的机关器

主动到场(假如没有)

不撑持
Java的桌面程序开发在java程序员里通常叫swing开发,主要用的swing包里的类开发的,也就是通常说的c/s架构开发

简单生活 发表于 2015-1-18 18:17:36

Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站

再见西城 发表于 2015-1-22 20:18:49

其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。

变相怪杰 发表于 2015-1-25 22:48:44

Java是一种计算机编程语言,拥有跨平台、面向对java

精灵巫婆 发表于 2015-2-4 20:12:09

有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)

小魔女 发表于 2015-2-7 03:03:13

有时间再研究一下MVC结构(把Model-View-Control分离开的设计思想)

再现理想 发表于 2015-2-16 07:14:07

还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。

飘灵儿 发表于 2015-3-1 13:47:36

学Java必读的两个开源程序就是Jive和Pet Store.。 Jive是国外一个非常著名的BBS程序,完全开放源码。论坛的设计采用了很多先进的技术,如Cache、用户认证、Filter、XML等,而且论坛完全屏蔽了对数据库的访问,可以很轻易的在不同数据库中移植。论坛还有方便的安装和管理程序,这是我们平时编程时容易忽略的一部份(中国程序员一般只注重编程的技术含量,却完全不考虑用户的感受,这就是我们与国外软件的差距所在)。

兰色精灵 发表于 2015-3-7 10:25:58

你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。

金色的骷髅 发表于 2015-3-14 21:18:47

是一种由美国SUN计算机公司(Sun Microsystems, Inc.)所研究而成的语言

灵魂腐蚀 发表于 2015-3-17 16:07:00

http://www.jdon.com/去下载,或到同济技术论坛的服务器ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。

飘飘悠悠 发表于 2015-3-24 10:24:38

不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。

冷月葬花魂 发表于 2015-3-26 17:38:17

那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!

分手快乐 发表于 2015-4-2 11:14:40

不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。

活着的死人 发表于 2015-4-9 11:50:04

你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。

蒙在股里 发表于 2015-4-25 15:20:47

Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。

愤怒的大鸟 发表于 2015-5-1 20:11:24

吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧

谁可相欹 发表于 2015-5-6 22:09:28

关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。

爱飞 发表于 2015-6-10 16:05:58

你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。
页: [1]
查看完整版本: JAVA教程之Java进门:了解机关器 (转)