实验7JAVA面向对象.docx

上传人:b****6 文档编号:7243282 上传时间:2023-01-22 格式:DOCX 页数:13 大小:106.61KB
下载 相关 举报
实验7JAVA面向对象.docx_第1页
第1页 / 共13页
实验7JAVA面向对象.docx_第2页
第2页 / 共13页
实验7JAVA面向对象.docx_第3页
第3页 / 共13页
实验7JAVA面向对象.docx_第4页
第4页 / 共13页
实验7JAVA面向对象.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

实验7JAVA面向对象.docx

《实验7JAVA面向对象.docx》由会员分享,可在线阅读,更多相关《实验7JAVA面向对象.docx(13页珍藏版)》请在冰豆网上搜索。

实验7JAVA面向对象.docx

实验7JAVA面向对象

实训报告

实验七JAVA面向对象

(2)

 

【实验目的】

1.掌握JAVA语言类的定义和使用。

2.掌握JAVA语言对象的声明和使用。

3.掌握JAVA语言构造方法的概念和使用。

4.掌握类及其成员的访问控制符的区别和使用。

【预习内容】

1.JAVA类的定义格式;

2.JAVA对象的使用三步骤:

声明、创建以及初始化;

3.访问控制修饰符:

public、private和protected的功能和区别;

4.JAVA构造方法的概念和特点;

5.JAVA多态的概念,及重载和覆盖的区别;

【实验内容及步骤】

1.上机验证题:

运行以下程序,查看运行结果,若出错,请分析原因,并修改。

(1)publicclassLX2_2{

staticinti=10;

publicstaticvoidmain(Stringargs[]){

{

intk=10;

System.out.println("i="+i);

System.out.println("k="+k);

}

System.out.println("i="+i);

System.out.println("k="+k);

}

}

[程序运行过程]

[程序分析]

publicclassLX2_2

{

staticinti=10;

publicstaticvoidmain(Stringargs[])

{

intk=10;//只定义了一个K,所以下面的模块便出错了。

{

System.out.println("i="+i);

System.out.println("k="+k);

}

System.out.println("i="+i);

System.out.println("k="+k);

}

}

 

(2)建立包含复合语句程序,源代码如下。

classLX2_5{

publicstaticvoidmain(Stringargs[]){

intk,i=3,j=4;

k=i+j;

System.out.println("在复合块外的输出k="+k);

{

floatf;

f=j+4.5F;

i++;

System.out.println("在复合块内的输出f="+f);

System.out.println("在复合块内的输出k="+k);

}

System.out.println("在复合块外的输出i="+i);

}

}

运行结果并分析变量k,I,j,f各自的作用范围。

k:

全局变量

i:

全局变量

j:

全局变量

f:

局部变量

[程序运行过程]

[程序分析]

在主函数里,已经定义了全局变量k=7,i=3,j=4。

又定义了f=j+4.5F=8.5。

此时i++,因此i=4,k不变。

(3)classStaticDemo{

staticintx;

inty;

publicstaticintgetX(){

returnx;

}

publicstaticvoidsetX(intnewX){

x=newX;

}

publicintgetY(){

returny;

}

publicvoidsetY(intnewY){

y=newY;

}

}

publicclassLX6_3{

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

}

}

 

[程序运行结果]

[程序分析]

未定义StaticDemo,因此才会非法,编译时出错。

[程序修改后清单]

classStaticDemo{

staticintx;

inty;

publicstaticintgetX(){

returnx;

}

publicstaticvoidsetX(intnewX){

x=newX;

}

publicintgetY(){

returny;

}

publicvoidsetY(intnewY){

y=newY;

}

}

publicclassLX6_3{

publicstaticvoidmain(String[]args){

StaticDemoa=newStaticDemo();

StaticDemob=newStaticDemo();

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

System.out.println("实例变量y="+b.getY());//非法,编译时将出错

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

}

}

[正确结果]

2.上机编程题

(1)读入6个整数,求出非负数个数及其和,并将6个整数按从小到大的次序输出。

如:

输入:

-326701

输出:

5

-301267

[程序清单]

importjava.util.Scanner;

publicclassb1

{

publicstaticvoidmain(String[]args)

{

inta[]=newint[6];

intsum=0,count=0;

inti;

intk=0;

Scannerinput=newScanner(System.in);

System.out.println("请输入6个整数:

");

for(i=0;i<6;i++)

{

a[i]=input.nextInt();

if(a[i]>=0)

{

sum=sum+a[i];

count=count+1;

}

}

for(i=5;i>=1;i--)

{

for(intj=0;j<=i-1;j++)

{

if(a[j]>a[j+1])

{

k=a[j];

a[j]=a[j+1];

a[j+1]=k;

}

}

}

for(i=0;i<6;i++)

{

System.out.print(a[i]+"");

}

System.out.println("非负数的和为:

"+sum+"非负数的个数为:

"+count);

}

}

[程序运行结果]

2.编程实现:

输入6个整数,用一个2×3的二维数组存储,以2行3列格式打印,并输出其中的最大值。

[程序清单]

importjava.util.Scanner;

classb2

{

publicstaticvoidmain(String[]args)

{

intmax=0;

inti,j;

inta[][]=newint[2][3];

Scannerinput=newScanner(System.in);

System.out.println("请输入6个整数:

");

for(i=0;i<2;i++)

{

for(j=0;j<3;j++)

{

a[i][j]=input.nextInt();

}

}

for(i=0;i<2;i++)

{

for(j=0;j<3;j++)

{

System.out.print(a[i][j]+"");

if(j==2)System.out.println("");

}

}

for(i=0;i<2;i++)

{

for(j=0;j<3;j++)

{

if(a[i][j]>max)max=a[i][j];

}

}

System.out.println("max="+max);

}

}

[程序运行过程]

3、定义一个计数器类,编程管理会议室投影仪的出借情况。

每购入一台投影仪或收回一台投影仪,计数器加一;每淘汰一台投影仪或借出一台投影仪,计数器减一;要求投影仪每次出入库时,都记录操作者的信息,并可以打印当前库存投影仪信息。

[程序清单]

importjava.io.*;

importjava.util.Scanner;

publicclassb3

{

publicstaticvoidmain(String[]args)

{

intn=3;

Counterb3=newCounter();

Scanneri=newScanner(System.in);

System.out.print("2:

新购或回收"+'\n'+"1:

淘汰或借出"+'\n');

n=i.nextInt();

if(n==2)

b3.increment();

elseif(n==1)

b3.decrement();

else

System.out.print("错误!

!

!

输入不合格!

"+'\n');

System.out.print("投影仪数量:

"+b3.Counter());

}

}

classCounter

{

privateintcounter=2;

publicintCounter()

{

returncounter;

}

publicvoidincrement()

{

counter+=1;

}

publicvoiddecrement()

{

counter-=1;

}

publicvoidreset()

{

counter=0;

}

}

[程序运行过程]

4、编程实现矩形类,其中应包括计算矩形周长和面积的方法。

如何使你的定义更好的满足面向对象程序设计中信息隐藏和封装的原则?

对于这个类,你计划定义几个构造函数?

[程序清单]

publicclassb4

{

privatedoublelength;

privatedoublewidth;

publicdoublegetLength()

{

returnlength;

}

publicvoidsetLength(doublelength)

{

this.length=length;

}

publicdoublegetWidth()

{

returnwidth;

}

publicvoidsetWidth(doublewidth)

{

this.width=width;

}

publicb4()

{

}

publicb4(doublelength,doublewidth)

{

this.length=length;

this.width=width;

}

publicdoublearea()

{

returnlength*width;

}

publicdoublegirth()

{

return2*(length+width);

}

publicstaticvoidmain(String[]args)

{

b4rectangle=newb4(2,7);

System.out.println("矩形面积是:

"+rectangle.area());

System.out.println("矩形周长是:

"+rectangle.girth());

}

}

[程序运行过程]

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

当前位置:首页 > 小学教育 > 英语

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1