JAVA语言面向对象基础实验.docx

上传人:b****6 文档编号:16709999 上传时间:2023-07-16 格式:DOCX 页数:29 大小:738.44KB
下载 相关 举报
JAVA语言面向对象基础实验.docx_第1页
第1页 / 共29页
JAVA语言面向对象基础实验.docx_第2页
第2页 / 共29页
JAVA语言面向对象基础实验.docx_第3页
第3页 / 共29页
JAVA语言面向对象基础实验.docx_第4页
第4页 / 共29页
JAVA语言面向对象基础实验.docx_第5页
第5页 / 共29页
JAVA语言面向对象基础实验.docx_第6页
第6页 / 共29页
JAVA语言面向对象基础实验.docx_第7页
第7页 / 共29页
JAVA语言面向对象基础实验.docx_第8页
第8页 / 共29页
JAVA语言面向对象基础实验.docx_第9页
第9页 / 共29页
JAVA语言面向对象基础实验.docx_第10页
第10页 / 共29页
JAVA语言面向对象基础实验.docx_第11页
第11页 / 共29页
JAVA语言面向对象基础实验.docx_第12页
第12页 / 共29页
JAVA语言面向对象基础实验.docx_第13页
第13页 / 共29页
JAVA语言面向对象基础实验.docx_第14页
第14页 / 共29页
JAVA语言面向对象基础实验.docx_第15页
第15页 / 共29页
JAVA语言面向对象基础实验.docx_第16页
第16页 / 共29页
JAVA语言面向对象基础实验.docx_第17页
第17页 / 共29页
JAVA语言面向对象基础实验.docx_第18页
第18页 / 共29页
JAVA语言面向对象基础实验.docx_第19页
第19页 / 共29页
JAVA语言面向对象基础实验.docx_第20页
第20页 / 共29页
亲,该文档总共29页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

JAVA语言面向对象基础实验.docx

《JAVA语言面向对象基础实验.docx》由会员分享,可在线阅读,更多相关《JAVA语言面向对象基础实验.docx(29页珍藏版)》请在冰点文库上搜索。

JAVA语言面向对象基础实验.docx

JAVA语言面向对象基础实验

成都大学实验报告

姓名

系别班级

学号

课程名称

指导教师

实验成绩

实验日期

软件工程6班

JAVA程序设计基础

郑加林

2011/04/25

实验项目名称JAVA语言面向对象基础

一、实验目的:

1、编写一个体现面向对象思想的程序;

2、编写一个创建对象和使用对象的方法的程序;

3、编写一个显示当前日期和时间的程序;

4、编写不同成员变量修饰方法的程序;

5、编写不同成员方法修饰方法的程序;

6、编写体现类的继承性(成员变量、成员方法、成员变量隐藏)的程序;

7、编写体现类的多态性(成员方法重载、构造方法重载)的程序;

8、编写体现接口功能的程序。

二、实验内容(包括源程序及相关说明):

1、设计一个用来描述汽车的类,使用类的非静态成员变量来表示汽车的车主姓名、当前的速率和当前方向盘的转向角度,使用类的非静态成员方法来表示改变汽车的速率和停车两个操作。

以下为源代码:

classCarinfo{

Stringname;

doublespeed;

intview;

publicCarinfo(Stringn,doubles,intv)

{

name=n;

speed=s;

view=v;

}

voidchangespeed(doubles)

{

speed=s;

System.out.println("汽车速度改变为:

"+speed+"km/h");

}

voidstop()

{

speed=0;

System.out.println("汽车已停止");

}

}

publicclassEXP3_1{

publicstaticvoidmain(String[]args){

Carinfocar=newCarinfo("Tom",40,20);

System.out.println("车主姓名:

"+car.name);

System.out.println("前的速率:

"+car.speed+"km/h");

System.out.println("方向盘的转向角度:

"+car.view+"°");

car.changespeed(60);

car.stop();

}

}

2、创建类EXP3_1的对象,在调用类的构造函数时指定对象的变量的初始值,以后再使用对象的方法来访问或修改对象的变量的值。

源代码如下

classbox{

intA;

doubleB;

publicbox(inta,doubleb)

{

A=a;

B=b;

System.out.println("A的初始值是:

"+A);

System.out.println("B的初始值是:

"+B);

}

voidchange(inta,doubleb)

{

A=a;

B=b;

System.out.println("A的当前值是:

"+A);

System.out.println("B的当前值是:

"+B);

}

}

publicclassEXP3_1{

publicstaticvoidmain(String[]args)

{

boxa=newbox(1,2.5);

a.change(2,5.5);

}

}

3、编写一个显示当前时间和日期的程序。

源代码如下

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()

{

returnhh+"时"+mm+"分"+ss+"秒";

}

}

publicclassexample{

publicstaticvoidmain(String[]args)

{

Timet=newTime();

System.out.println("当前日期:

"+t.getDate());

System.out.println("当前时间:

"+t.getTime());

}

}

4、使用修饰符来限定类的成员变量或成员方法的属性。

源代码如下:

classStaticDemo{

staticintx;

inty;

publicstaticintgetX(){

returnx;

}

publicstaticvoidsetX(intnewX){

x=newX;

}

publicintgetY(){

returny;

}

publicvoidsetY(intnewY){

y=newY;

}

}

publicclassEXP3_1{

publicstaticvoidmain(String[]args){

System.out.println("静态变量x="+StaticDemo.getX());

//System.out.println("实例变量y="+StaticDemo.getY());//运行时出错

StaticDemoa=newStaticDemo();

StaticDemob=newStaticDemo();

a.setX

(1);

a.setY

(2);

b.setX(3);

b.setY(4);

System.out.println("静态变量a.x="+a.getX());

System.out.println("实例变量a.y="+a.getY());

System.out.println("静态变量b.x="+b.getX());

System.out.println("实例变量b.y="+b.getY());

}

}

5、程序首先给整型变量x和y赋一个初值10,然后使用传值调用方式调用方法ff1对x和y做乘方及输出x和y的乘方值,最后再输出x和y的值。

源代码如下:

 

publicclassEXP3_1{

publicstaticvoidmain(String[]args)

{

intx=10,y=10;

ffl(x,y);

System.out.println("x="+x+",y="+y);

}

staticvoidffl(intpassX,intpassY){

passX=passX*passX;

passY=passY*passY;

System.out.println("passX"+passX+",passY"+passY);

}

}

6、通过调用对象的方法在方法调用后修改了成员变量的值。

源代码如下:

publicclassExp3_1{

publicstaticvoidmain(String[]args){

Powerp=newPower();

p.ff2(10,10);

System.out.println("方法调用后x="+p.x+",y="+p.y);

}

}

classPower{

intx=10,y=10;

voidff2(intpassX,intpassY){

System.out.println("初始时x="+x+",y="+y);

x=passX*passY;

y=passY*passY;

System.out.println("初始时x="+x+",y="+y);

}

}

7、创建将被继承的类。

通过EXP3_7类产生子类EXP3_8,其不仅具有父类的成员变量xm(姓名)、xh(学号),还定义了新成员变量xy(学院)、xi(系)。

在程序中调用了父类的print方法,同时可以看出子类也具有该方法。

源代码如下:

classEXP3_7{

protectedStringxm;

protectedintxh;

voidsetdate(Stringm,inth){

xm=m;

xh=h;

}

publicvoidprint(){

System.out.println(xm+","+xh);

}

}

publicclassEXP3_8extendsEXP3_7{

protectedStringxy;

protectedStringxi;

publicstaticvoidmain(String[]args){

EXP3_7p1=newEXP3_7();

p1.setdate("李四",12321);

p1.print();

EXP3_8s1=newEXP3_8();

s1.setdate("张三",12345);

s1.xy="成都大学";

s1.xi="计算机系";

s1.print();

System.out.println(s1.xm+","+s1.xy+","+s1.xi);

}

}

8、了解成员方法的覆盖方式。

源代码如下:

classCircle{

privateintradius;

Circle(intr){

setRadius(r);

}

publicvoidsetRadius(intr){

radius=r;

}

publicintgetRadius(){

returnradius;

}

publicdoublearea(){

return3.14159*radius*radius;

}

publicStringtoString(){

return"圆半径:

"+getRadius()+"圆面积:

"+area();

}

}

publicclassEXP3_9{

publicstaticvoidmain(String[]args){

Circlec=newCircle(10);

System.out.println("\n"+c.toString());

}

}

9、说明this、super和super()的用法。

程序首先定义Point(点)类,然后创建点的子类Line(线)。

最后通过LX3_10类输出线段的长度。

程序中通过super(a,b)调用父类Point的构造方法为父类的x和y赋值。

在子类Line的setLine方法中,因为参数名和成员变量名相同,为给成员变量赋值,使用this引用,告诉编译器是为当前类的成员变量赋值。

在length和toString方法中使用父类成员变量时,使用super引用,告诉编译器使用的是父类的成员变量。

源代码如下:

classPoint{

protectedintx,y;

Point(inta,intb){

setPoint(a,b);

}

publicvoidsetPoint(inta,intb){

x=a;

y=b;

}

}

classLineextendsPoint{

protectedintx,y;

Line(inta,intb){

super(a,b);

setLine(a,b);

}

publicvoidsetLine(intx,inty)

{

this.x=x+x;

this.y=y+y;

}

publicdoublelength(){

intx1=super.x,y1=super.y,x2=this.x,y2=this.y;

returnMath.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));

}

publicStringtoString(){

return"直线端点:

["+super.x+","+super.y+"]["+x+","+y+"]直线长度:

"+this.length();

}

}

publicclassEXP3_10{

publicstaticvoidmain(String[]args){

Lineline=newLine(50,50);

System.out.println("\n"+line.toString());

}

}

10、使用同名方法对两个、三个或用数组容纳的一组数进行排序。

源代码如下:

classIntSort{

publicStringsort(inta,intb){

if(a>b)

returna+""+b;

else

returnb+""+a;

}

publicStringsort(inta,intb,intc){

intswap;

if(a

swap=a;

a=b;

b=swap;

}

if(a

swap=a;

a=c;

c=swap;

}

if(b

swap=b;

b=c;

c=swap;

}

returna+""+b+""+c;

}

publicStringsort(intarr[]){

Strings="";

intswap;

for(inti=0;i

for(intj=0;j

if(arr[j]>arr[j+1]){

swap=arr[j];

arr[j]=arr[j+1];

arr[j+1]=swap;

}

for(inti=0;i

s=s+arr[i]+"";

returns;

}

}

publicclassEXP3_11{

publicstaticvoidmain(String[]args){

IntSorts=newIntSort();

intarr[]={2,5,4,3,0};

System.out.println("两数由大到小:

"+s.sort(4,5));

System.out.println("三数由大到小:

"+s.sort(4,7,5));

System.out.println("数组由小到大:

"+s.sort(arr));

}

}

11、构造函数的重载。

源代码如下:

classRunDemo{

privateStringuserName,password;

RunDemo(){

System.out.println("全部为空!

");

}

RunDemo(Stringname){

userName=name;

}

RunDemo(Stringname,Stringpwd){

this(name);

password=pwd;

check();

}

voidcheck(){

Strings=null;

if(userName!

=null)

s="用户名:

"+userName;

else

s="用户名不能为空!

";

if(password!

="12345678")

s=s+"口令无效!

";

else

s=s+"口令:

********";

System.out.println(s);

}

}

publicclassEXP3_12{

publicstaticvoidmain(String[]args){

newRunDemo();

newRunDemo("张三");

newRunDemo(null,"李四");

newRunDemo("王五","12345678");

}

}

12、接口技术,源代码如下:

interfaceNL{

intyear=2004;

intage();

voidoutput();

}

publicclassEXP3_13implementsNL{

Stringxm;

intcsrq;

publicEXP3_13(Stringn1,inty){

xm=n1;

csrq=y;

}

publicintage(){

returnyear-csrq;

}

publicvoidoutput(){

System.out.println(this.xm+"今年的年龄是"+this.age()+"岁");

}

publicstaticvoidmain(String[]args){

NLa=newEXP3_13("张三",1990);

a.output();

}

}

 

三、实验结果:

实验一

实验二:

实验三:

实验四:

实验五:

实验六:

实验七:

实验八:

实验九:

实验十:

实验十一:

实验十二:

 

四、实验小结与建议:

1、初步了解面向对象思想;

2、了解不同成员变量修饰方法;

3、了解类的继承性(成员变量、成员方法、成员变量隐藏);

4、了解类的多态性(成员方法重载、构造方法重载);

成都大学信息科学与技术学院制

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2