实验3面向对象编程练习分析Word文档格式.docx
《实验3面向对象编程练习分析Word文档格式.docx》由会员分享,可在线阅读,更多相关《实验3面向对象编程练习分析Word文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
importjava.awt.event.*;
importjava.applet.Applet;
publicclassLX3_1extendsAppletimplementsActionListener{
Labellabel1=newLabel("
+"
);
Labellabel2=newLabel("
="
TextFieldfield1=newTextField(6);
TextFieldfield2=newTextField(6);
TextFieldfield3=newTextField(6);
Buttonbutton1=newButton("
相加"
publicvoidinit(){//初始化
add(field1);
add(label1);
add(field2);
add(label2);
add(field3);
add(button1);
button1.addActionListener(this);
}
publicvoidactionPerformed(ActionEvente){//处理按钮事件
intx=Integer.parseInt(field1.getText())+Integer.parseInt(field2.getText());
field3.setText(Integer.toString(x));
//数值转换为字符串
2.编写一个浏览Applet应用程序的页面文件LX3_1.HTML,源代码如。
<
html>
appletcode="
LX3_1.class"
height=200width=400>
/applet>
/html>
3.将LX3_1.java源程序编译为LX_1.class文件
4.使用浏览器或使用小程序查看器浏览LX3_1.HTML文件(即在命令提示符窗口输入:
appletviewerLX3_1.HTML),运行。
图3.1
(二)创建对象并使用对象
1.编写Applet程序
♦程序功能:
这个Applet程序要在页面上输出两个矩形,并伴有文字输出。
♦LX3_2.java程序的源代码如下。
publicclassLX3_2extendsApplet{
MyBoxb1=newMyBox();
//创建对象b1
MyBoxb2=newMyBox(170,20,60,60);
//创建对象b2
publicvoidpaint(Graphicsg){
b1.setPosition(20,20);
b1.setSize(60,60);
b1.draw(g);
g.drawString("
矩形1的X位置:
"
+b1.getX(),20,100);
矩形1的Y位置:
+b1.getY(),20,120);
b2.draw(g);
矩形2的X位置:
+b2.getX(),b2.getX(),b2.getY()+80);
矩形2的Y位置:
+b2.getY(),b2.getX(),b2.getY()+100);
classMyBox{
privateintx,y,width,height;
MyBox(){
x=0;
y=0;
width=0;
height=0;
MyBox(intxPos,intyPos,intw,inth){
x=xPos;
y=yPos;
width=w;
height=h;
}
publicvoidsetPosition(intxPos,intyPos){
publicvoidsetSize(intw,inth){
publicintgetX(){
returnx;
publicintgetY(){
returny;
publicvoiddraw(Graphicsg){
g.drawRect(x,y,width,height);
2.编写一个浏览Applet应用程序的页面文件LX3_2.HTML
LX3_2.class"
3.将LX3_2.java源程序编译为LX3_2.class文件
4.使用浏览器或使用小程序查看器浏览LX3_2.HTML文件(即在命令提示符下输入:
appletviewer
LX3_2.HTML),运行.
图3.2
思考:
程序的结构。
类与对象的关系。
对象创建、使用、销毁的过程。
(三)编写显示当前日期和时间的程序
1.编写Applet类文件LX3_3.java
该程序通过使用一个自定义类Time,实现显示当前日期和时间的功能
图3.3
♦LX3_3.java程序源代码如下。
importjava.awt.Graphics;
importjava.applet.Applet;
importjava.util.Calendar;
classTime{
privateCalendart;
privateinty,m,d,hh,mm,ss;
Time(){
t=Calendar.getInstance();
y=t.get(t.YEAR);
m=t.get(t.MONTH)+1;
d=t.get(t.DATE);
hh=t.get(t.HOUR_OF_DAY);
mm=t.get(t.MINUTE);
ss=t.get(t.SECOND);
}
publicStringgetDate(){
returny+"
年"
+m+"
月"
+d+"
日"
;
publicStringgetTime(){
Strings=hh+"
时"
+mm+"
分"
+ss+"
秒"
returns;
publicclassLX3_3extendsApplet{
Timet=newTime();
publicvoidpaint(Graphicsg){
g.drawString("
当前日期:
"
+t.getDate(),50,40);
当前时间:
+t.getTime(),50,80);
2.编写浏览LX3_3类的页面文件LX3_3.html
<
appletcodebase=e:
/java/程序code=LX3_3.classwidth=300height=120>
/applet>
3.在浏览器中浏览程序运行结果。
(四)使用修饰符
有时需要公开一些变量和方法,有时需要禁止其他对象使用变量和方法,这时可以使用修饰符来实现这个目的。
常用的修饰符如下。
Public,private,protected,package,static,final,transient,volatile
不同修饰符的访问控制权限如表3.1所示。
1.程序功能:
通过两个类StaticDemo、LX3_4说明静态变量/方法与实例变量/方法的区别。
2.编写类文件LX3_4.java,程序源代码如下。
classStaticDemo{
staticintx;
inty;
publicstaticintgetX(){
returnx;
publicstaticvoidsetX(intnewX){
x=newX;
publicintgetY(){
returny;
publicvoidsetY(intnewY){
y=newY;
publicclassLX3_4{
publicstaticvoidmain(String[]args){
System.out.println("
静态变量x="
+StaticDemo.getX());
实例变量y="
+StaticDemo.getY());
//非法,编译时将出错
StaticDemoa=newStaticDemo();
StaticDemob=newStaticDemo();
a.setX
(1);
a.setY
(2);
b.setX(3);
b.setY(4);
静态变量a.x="
+a.getX());
实例变量a.y="
+a.getY());
静态变量b.x="
+b.getX());
实例变量b.y="
+b.getY());
3.对上面的源程序进行编译,排错并运行
图3.4
4.将源程序中的出错语句删除或使用解释符//隐藏起来,例如,
//System.out.println("
5.重新编译并运行该程序,结果如图3.5所示。
图3.5
static声明的成员变量/方法被视为类的成员变量/方法,而不把它当作实例对象的成员变量/方法。
换句话说,静态变量/方法是类固有的,可以直接引用,其它成员变量/方法仅仅被声明,生成实例对象后才存在,才可以被引用。
基于这样的事实,也把静态变量/方法称为类变