JAVA网页编程之JAVA程序员必读:基本篇(8)
在性能方面,在windows平台下,.net可能是占强项,要是把.net放在sun开发的操作系统上去运行呢?根本就运行不了,.net对其它操作系统的支持也很弱,性能也可能比不上java。程序|程序员JAVA程序员必读:基本篇工夫:2001/09/1313:31ZSC宁靖洋收集学院
2.6甚么是接口
接口是一个搜集办法和常数表单的左券。当类实行一个接口,它就允诺声明在谁人接口中实行一切的办法。
接口是一个设备大概一个体系,它是用于交互的有关的实体。依据这个界说,远程把持是一个在你和电视的接口;而英语是两团体之间的接口;强迫在军事中的举动协定是分歧等价人之间的接口。在JAVA言语中,接口是一个设备,它是用来与别的对象交互的设备。一个接口大概对一个协定是相似的。实践上,别的面向对象言语有接口的功效,但它们挪用它们的接口协定。
自行车类和它的类分级布局界说了甚么是自行车。可是自行车在别的方面与实际天下交互感化,比方,堆栈中的自行车能够由一个存货程序来办理。一个存货程序不体贴办理项目标哪一类只需项目供应某一信息,好比代价和跟踪数字。代替强制类与别的有关项的干系,存货程序创建了通信的协定。这个协定是由包括在接口中的常数和办法界说构成的。这个存货清单接口将要界说(但不实行)办法来设置和失掉批发代价,指定跟踪数字等等。
为了在存货清单程序中操纵,自行车类必需在实行接口的时分恪守这个协定。当一个了实行一个接口的时分,类恪守界说在接口中的一切办法。因而,自行车将为这些设置和取得批发代价并指定跟踪数值等等的办法供应实行。
你可使用接口来界说一个举动的协定,这个举动能够有在类分级布局中任何类来实行。接口的次要优点有一下几点:
不必野生强制类干系在有关类中截获类似处。
声明想实行的一个大概更多类的办法。
在不表露对象的类的条件下,表露对象的编程接口。
2.7如何将这些面向对象的观点转换为代码
这一大节将给你展示创立对象、实行类、发送动静、创立一个父类和实行一个接口的代码。
以下是一个applet(applet是用JAVA编程言语编写的程序,它能够运转在兼容JAVA平台的收集扫瞄器,好比HotJava大概NetscapeNavigator)的程序,名为ClickMe。如0所示,当你点击方框内任何中央,一个红点就会呈现。
(0)
提醒:下面的applet必要JDK1.1。假如你利用老的不撑持JDK1.1的扫瞄器,你将不克不及运转这个applet。相反,你必要在一个1.1扫瞄器下去看这个网页,好比在HotJava、JDKApplect扫瞄器(appletviewer)大概某个版本的NetscapeNavigator和InternetExplorer。
上面详细注释一下这个Applet。
ClickMeApplet是一个绝对复杂的程序因而它的代码就短了多了。可是,假如你还没有太多的编程履历,你能够发明这些代码也不是那末简单的。我们不请求你即刻了解程序中的每一个成绩,而且这节教程也不是讲了非常具体的。这里的目标示表露一些源代码给你而且跟你方才所学道的观点和手艺接洽上。你将在今后的教程中学到更具体的内容。
2.7如何将这些面向对象的观点转换为代码
2.7.1ClickMe的源代码和Applet标签
为了编译这个applet你必要两个源文件:ClickMe.java和Spot.java。为了运转这个applet你必要使用这个applet标签来创立一个html文件:
<appletcode="ClickMe.class"
width="300"height="150">
</applet>
个中ClickMe.java的源代码为:
importjava.applet.Applet;
importjava.awt.*;
importjava.awt.event.*;
publicclassClickMeextendsAppletimplementsMouseListener{
privateSpotspot=null;
privatestaticfinalintRADIUS=7;
publicvoidinit(){
addMouseListener(this);
}
publicvoidpaint(Graphicsg){
//画一个黑边框和白背景
g.setColor(Color.white);
g.fillRect(0,0,getSize().width-1,getSize().height-1);
g.setColor(Color.black);
g.drawRect(0,0,getSize().width-1,getSize().height-1);
//画红点
g.setColor(Color.red);
if(spot!=null){
g.fillOval(spot.x-RADIUS,spot.y-RADIUS,RADIUS*2,RADIUS*2);
}
}
publicvoidmousePressed(MouseEventevent){
if(spot==null){
spot=newSpot(RADIUS);
}
spot.x=event.getX();
spot.y=event.getY();
repaint();
}
publicvoidmouseClicked(MouseEventevent){}
publicvoidmouseReleased(MouseEventevent){}
publicvoidmouseEntered(MouseEventevent){}
publicvoidmouseExited(MouseEventevent){}
}
而Spot.java的源代码为:
publicclassSpot{
publicintsize;
publicintx,y;
publicSpot(intintSize){
size=intSize;
x=-1;
y=-1;
}
}
然后装载网页到扫瞄器大概appletviewer工具。而且确保一切需要的文件都在不异的目次中。如1所示:
(1)
2.7.2ClickMeApplet中的对象
在这个applet中有很多对象。两个最分明的是:applet自己和红点。
扫瞄器在包括applet的HTML代码中碰着applet标签的时分就创立了applet对象。这个applet标签从创立applet对象的中央供应类的名字。在本例子中,这个类的名字为ClickMe。
ClickME.applet将创立一个对象来在屏幕上画出点。每次你在applet中点击鼠标的时分,applet就将经由过程改动对象的x和y坐标来挪动红点。这个点不是本人画出来的,它是applet画出的,它是依据包括在点对象中的信息画出的。
除后面两个分明的对象,别的另有一些看不见的对象呢。有代表三种色彩(黑、白、红)的三个对象和代表点击鼠标的用户举措的事务对象等等。
2.7.3ClickMeApplet中的类
由于代表在屏幕上点的对象是很复杂,接上去让我们看看这个名为spot的类吧。它声了然三个实例变量:包含点半径的size,包括点以后程度地位的x坐标和包括点以后垂直地位的y坐标:
publicclassSpot{
//实例变量
publicintsize;
publicintx,y;
//机关函数
publicSpot(intintSize){
size=intSize;
x=-1;
y=-1;
}
}
别的,类有一个机关函数,它用来初始化由类创立的新对象。机关函数跟类有不异的名字。这个机关函数初始化一切三个对象的变量。Size的初始化数值是在挪用的时分坐位参数供应的。x和y变量都被设置为-1,这里-1的目标是为了让点在入手下手的时分处于屏幕的表面,即发生假不成视的效果。
这个applet是在applet初始化的时分创立了一个新的点对象。上面是applet类的相干代码:
privateSpotspot=null;
privatestaticfinalintRADIUS=7;
...
spot=newSpot(RADIUS);
第一行声了然一个名为spot的变量,它是Spot数据范例,而且初始化这个变量为NULL。第二行声了然一个整型变量,名为RADIUS,它的值为7。最初一行是创立一个对象。New关头字为对象分派了内存空间。Spot(RADIUS)挪用了下面已形貌了的机关函数而且传送RADIUS数值,如许点对象的size就被设置为7。如2所示的左图代表了Spot类,而右侧的是代表了spot对象。
(2)
2.7.4ClickMeApplet中的动静
就如所晓得的,对象A可使用动静来哀求对象B做一些事变,一个动静有三个构成部分:
动静被寻址的对象
要实行实行办法的名字
办法必要的任何参数
在ClickMeapplet种有以下两行如许的代码:
g.setColor(Color.white);
g.fillRect(0,0,getSize().width-1,getSize().height-1);
这两个动静都是从applet到名为g的对象。个中g是一个图形对象,它晓得如何在屏幕上复杂画一些外形大概文本。这个对象在扫瞄器唆使applet来画的时分供应了applet。下面代码的第一行设置色彩为红色,第二行是添补一个指定巨细的矩形地区,它的色彩为红色。如3所示,是一个动静的三个构成部分:
(3)
2.7.5ClickMeApplet中的承继
为了在扫瞄器种运转,对象必需是一个applet。这就意味着对象必需是类的一个实例,这个类是从由JAVA平台供应的Applet类派生而来的。
ClickMeapplet对象是一个ClickMe类的一个实例,它是如许声明的:
publicclassClickMeextendsAppletimplementsMouseListener{
...
}
下面的语句就发生了Applet的一个子类。ClickMe承继了父类的很多功效,包含初始化、由扫瞄器来入手下手和停止、在扫瞄器地区绘图和对吸收到的鼠标事务注册。除有了这些功效,ClickMe类还要完成以下的功效:它的绘图代码在paint的办法中,初始化代码必需在init办法中等等。
publicvoidinit(){
...//这里到场ClickMe的初始化代码
}
publicvoidpaint(Graphicsg){
...//这里到场ClickMe的绘图代码
}
2.7.6ClickMeApplet中的接口
ClickMeapplet是经由过程在鼠标点击出显现一个红点来呼应鼠标的点击事务。假如对象想关照鼠标点击,JAVA平台事务体系必要对象实行MouseListener接口。这个对象必需同时作为鼠标监听器来注册。
这个MouseListener接口声了然五种分歧的志芋工,每种办法是用在鼠标被点击的时分对分歧鼠标事务的挪用。当鼠标被点击的时分,大概当鼠标挪动到applet表面的时分等等。
上面是ClickMeapplet完全的代码。个中mousePressed是处置鼠标事务的:
importjava.applet.Applet;
importjava.awt.*;
importjava.awt.event.*;
publicclassClickMeextendsAppletimplementsMouseListener{
privateSpotspot=null;
privatestaticfinalintRADIUS=7;
publicvoidinit(){
addMouseListener(this);
}
publicvoidpaint(Graphicsg){
//画一个玄色边框和一个红色背景
g.setColor(Color.white);
g.fillRect(0,0,getSize().width-1,getSize().height-1);
g.setColor(Color.black);
g.drawRect(0,0,getSize().width-1,getSize().height-1);
//画一个点
g.setColor(Color.red);
if(spot!=null){
g.fillOval(spot.x-RADIUS,
spot.y-RADIUS,
RADIUS*2,RADIUS*2);
}
}
publicvoidmousePressed(MouseEventevent){
if(spot==null){
spot=newSpot(RADIUS);
}
spot.x=event.getX();
spot.y=event.getY();
repaint();
}
publicvoidmouseClicked(MouseEventevent){}
publicvoidmouseReleased(MouseEventevent){}
publicvoidmouseEntered(MouseEventevent){}
publicvoidmouseExited(MouseEventevent){}
}
由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划。就在Oak几近失败之时,随着互联网的发展,Sun看到了Oak在计算机网络上的广阔应用前景,于是改造了Oak, 是一种语言,用以产生「小应用程序(Applet(s)) 《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。 自从Sun推出Java以来,就力图使之无所不包,所以Java发展到现在,按应用来分主要分为三大块:J2SE,J2ME和J2EE,这也就是Sun ONE(Open Net Environment)体系。J2SE就是Java2的标准版,主要用于桌面应用软件的编程;J2ME主要应用于嵌入是系统开发,如手机和PDA的编程;J2EE是Java2的企业版,主要用于分布式的网络程序的开发,如电子商务网站和ERP系统。 关于设计模式的资料,还是向大家推荐banq的网站 http://www.jdon.com/,他把GOF的23种模式以通俗易懂的方式诠释出来,纯Java描述,真是经典中的经典。 Java是一种计算机编程语言,拥有跨平台、面向对java http://www.jdon.com/去下载,或到同济技术论坛的服务器ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。 如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。 如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。 那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧! 科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。 你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。 《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。 你就该学一学Servlet了。Servlet就是服务器端小程序,他负责生成发送给客户端的HTML文件。JSP在执行时,也是先转换成Servlet再运行的。虽说JSP理论上可以完全取代Servlet,这也是SUN推出JSP的本意,可是Servlet用来控制流程跳转还是挺方便的,也令程序更清晰。接下来你应该学习一下Javabean了,可能你早就看不管JSP在HTML中嵌Java代码的混乱方式了,这种方式跟ASP又有什么区别呢? 你现在最缺的是实际的工作经验,而不是书本上那些凭空想出来的程序。 Jive的资料在很多网站上都有,大家可以找来研究一下。相信你读完代码后,会有脱胎换骨的感觉。遗憾的是Jive从2.5以后就不再无条件的开放源代码,同时有licence限制。不过幸好还有中国一流的Java程序员关注它,外国人不开源了,中国人就不能开源吗?这里向大家推荐一个汉化的Jive版本—J道。Jive(J道版)是由中国Java界大名 鼎鼎的banq在Jive 2.1版本基础上改编而成, 全中文,增加了一些实用功能,如贴图,用户头像和用户资料查询等,而且有一个开发团队在不断升级。你可以访问banq的网站 是一种突破用户端机器环境和CPU 《JAVA语言程序设计》或《JAVA从入门到精通》这两本书开始学,等你编程有感觉的时候也可以回看一下。《JAVA读书笔记》这本书,因为讲的代码很多,也很容易看懂,涉及到面也到位。是你学习技术巩固的好书,学完后就看看《JAVA编程思想》这本书,找找一个自己写的代码跟书上的代码有什么不一样。 所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。 其实说这种话的人就如当年小日本号称“三个月拿下中国”一样大言不惭。不是Tomjava泼你冷水,你现在只是学到了Java的骨架,却还没有学到Java的精髓。接下来你得研究设计模式了。
页:
[1]