面向对象与java程序设计实验内容.docx

上传人:b****6 文档编号:4174218 上传时间:2022-11-28 格式:DOCX 页数:16 大小:18.26KB
下载 相关 举报
面向对象与java程序设计实验内容.docx_第1页
第1页 / 共16页
面向对象与java程序设计实验内容.docx_第2页
第2页 / 共16页
面向对象与java程序设计实验内容.docx_第3页
第3页 / 共16页
面向对象与java程序设计实验内容.docx_第4页
第4页 / 共16页
面向对象与java程序设计实验内容.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

面向对象与java程序设计实验内容.docx

《面向对象与java程序设计实验内容.docx》由会员分享,可在线阅读,更多相关《面向对象与java程序设计实验内容.docx(16页珍藏版)》请在冰豆网上搜索。

面向对象与java程序设计实验内容.docx

面向对象与java程序设计实验内容

实验一

1、JDK的下载、安装和配置

2、编写一个打印出“TheJavaWorld”的JavaApplication程序,并编辑运行

3、编写一个打印出“TheFirstApplet”的JavaApplet程序,并编译,然后编写调用此Applet类的HTML文件,并用appletviewer.exe和InternetExplorer打开。

实验二

1、编写程序输出乘法口诀表

publicclassEg21

{

publicstaticvoidmain(String[]args)

{

inti,j,k;

for(i=1;i<=9;i++)

{

j=1;

for(k=i;k<=9;k++,j++)

{

System.out.printf("%d*%d=%2d",j,k,j*k);

}

System.out.println();

}

}

}

2、分别用do-while和for循环计算1+1/2!

+1/3!

+….的前20项的和

publicclassEg22

{

publicstaticvoidmain(String[]args)

{

inti,j;

double[]arr=newdouble[21];

doublesum=0.0;

arr[0]=1.0;

//这是以for循环处理的

for(i=1;i<=20;i++)

{

arr[i]=arr[i-1]*i;

}

for(i=1;i<=20;i++)

{

sum=sum+1.0/(arr[i]);

}

//这是以DOWHILE循环处理的

/*

i=1;

do

{

arr[i]=arr[i-1]*i;

i++;

}while(i<=20);

i=1;

do

{

sum=sum+1.0/arr[i];

i++;

}while(i<=20);

*/

System.out.println(""+sum);

}

}

3、一个数如果恰好等于除它本身外的因子之和,这个数就称为“完数”。

编写应用程序求1000以的所有完数并输出。

publicclassEg23

{

publicstaticvoidmain(String[]args)

{

inti,j,sum;

for(i=1;i<=1000;i++)

{

sum=0;

for(j=1;j

{

if(i%j==0)

{

sum=sum+j;

}

}

if(sum==i)

{

System.out.printf("%4d",i);

}

}

System.out.println();

}

}

实验三

1、编写一个程序来计算10000以的素数之和并输出

publicclassEg2611

{

publicstaticvoidmain(String[]args)

{

intsum=0;

inti,j;

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

{

for(j=2;j

{

if(i%j==0)

{

break;

}

}

if(j==i)

{

sum=sum+i;

}

}

System.out.println(""+sum);

}

}

2、创建一个程序把输入字符串的大小写互换。

字符的输入用例1.3中的方法。

importjava.util.*;

publicclassEg2615

{

publicstaticvoidmain(String[]args)

{

Scannerreader=newScanner(System.in);

StringanStr=reader.next();

char[]anArr=anStr.toCharArray();

inti;

for(i=0;i

{

if(anArr[i]>='A'&&anArr[i]<='Z')

{

anArr[i]+=32;

}

elseif(anArr[i]>='a'&&anArr[i]<='z')

{

anArr[i]-=32;

}

}

for(i=0;i

{

System.out.printf("%c",anArr[i]);

}

System.out.println();

}

}

3、创建一个简单的成绩单程序,帮助老师评估学生的表现。

该程序用double数组存放成绩来计算平均成绩和标准方差。

成绩通过键盘输入字符串,然后转换成double类型的数据。

importjava.util.*;

publicclassEg2620

{

publicstaticvoidmain(String[]args)

{

System.out.println("请输入学生各科成绩,以空格区别!

");

Scannerreader=newScanner(System.in);

Stringtext=reader.nextLine();

char[]arr=text.toCharArray();

inti,gs=0,js=1,mg=10;

doublesum=0,kg=1,germ=0,aver=0,sd=0;

for(i=0;i

{

if(arr[i]==''||arr[i]=='\0')

{

germ=germ*kg;

sum=sum+germ;

js=1;

kg=1;

germ=0;

gs++;

}

elseif(arr[i]=='.')

{

js=0;

}

else

{

germ=germ*mg+(arr[i]-'0');

if(js==0)

{

kg=kg/10;

}

}

}

if((arr.length-1>=0)&&(arr[arr.length-1]!

=''))

{

germ=germ*kg;

sum=sum+germ;

gs++;

}

double[]gArr=newdouble[gs];

gs=0;

js=1;

mg=10;

kg=1;

germ=0;

for(i=0;i

{

if(arr[i]==''||arr[i]=='\0')

{

germ=germ*kg;

gArr[gs]=germ;

js=1;

kg=1;

germ=0;

gs++;

}

elseif(arr[i]=='.')

{

js=0;

}

else

{

germ=germ*mg+(arr[i]-'0');

if(js==0)

{

kg=kg/10;

}

}

}

if((arr.length-1>=0)&&(arr[arr.length-1]!

=''))

{

germ=germ*kg;

gArr[gs]=germ;

gs++;

}

if(gs!

=0)

{

aver=sum/gs;

for(i=0;i

{

sd=sd+(gArr[i]-aver)*(gArr[i]-aver);

}

sd=sd/gs;

sd=Math.sqrt(sd);

}

System.out.println("平均值:

"+aver+""+"标准方差:

"+sd);

}

}

试验四

1、定义一个表示学生的类Student,包括域:

学号、、性别、年龄;方法:

获得学号、、性别、年龄;修改年龄。

书写JAVA程序创建Student类的对象及测试其方法的功能。

importjava.util.*;

classStudent

{

privateintnomber;

privateStringname;

privateStringsex;

privateintage;

Student(intnomber,Stringname,Stringsex,intage)

{

this.nomber=nomber;

this.name=name;

this.sex=sex;

this.age=age;

}

voidshow()

{

System.out.println("show函数被调用");

System.out.println("学号:

"+nomber+"名字:

"+name+"性别:

"+sex+"年龄:

"+age);

}

voidreage(intage)

{

System.out.println("修改年龄函数被调用");

this.age=age;

}

}

publicclassEg484

{

publicstaticvoidmain(String[]args)

{

Scannerreader=newScanner(System.in);

System.out.println("请输入学号:

");

intnomber=reader.nextInt();

System.out.println("请输入:

");

Stringname=reader.next();

System.out.println("请输入性别:

");

Stringsex=reader.next();

System.out.println("请输入年龄:

");

intage=reader.nextInt();

Studentobj=newStudent(nomber,name,sex,age);

obj.show();

System.out.println("请修改年龄:

");

age=reader.nextInt();

obj.reage(age);

obj.show();

}

}

 

实验五

1、成员方法的参数传递

classF{

intm=3;

intn=4;

}

classTestVarPass{

publicvoidchangeInt(intx,inty){//方法参数是基本数据类型

inttemp;

temp=x;

x=y;

y=temp;

System.out.println("数据交换后:

x="+x+",y="+y);

}

publicvoidchangeArray(int[]z){//方法参数是数组

inttemp;

temp=z[0];

z[0]=z[1];

z[1]=temp;

}

publicvoidchangeObject(Fff){//方法参数是对象

inttemp;

temp=ff.m;

ff.m=ff.n;

ff.n=temp;

}

publicstaticvoidmain(Stringargs[]){

int[]c=newint[2];

c[0]=1;

c[1]=2;

Ff=newF();

TestVarPasst=newTestVarPass();//创建测试类对象

System.out.println("调用changeInt方法前:

c[0]="+c[0]+",c[1]="+c[1]);

t.changeInt(c[0],c[1]);

System.out.println("调用changeInt方法后:

[0]="+c[0]+",c[1]="+c[1]);

System.out.println("调用changeArray方法前:

c[0]="+c[0]+",c[1]="+c[1]);

t.changeArray(c);

System.out.println("调用changeArray方法后:

c[0]="+c[0]+",c[1]="+c[1]);

System.out.println("调用changeObject方法前:

f.m="+f.m+",f.n="+f.n);

t.changeObject(f);

System.out.println("调用changeObject方法后:

f.m="+f.m+",f.n="+f.n);

}

}

2、举一个包含静态变量与非静态变量的例子,说明静态成员变量的特征

classStaticTest

{

publicintx=1;

publicstaticinty=1;

}

classStaticTester{

publicstaticvoidmain(Stringargs[])

{

StaticTest.y+=1;

StaticTestt1=newStaticTest();

StaticTestt2=newStaticTest();

t1.x+=1;

t1.y+=1;

t2.x+=2;

t2.y+=2;

System.out.println("T1:

X="+t1.x+",y="+t1.y);

System.out.println("T2:

X="+t2.x+",y="+t2.y);

}

}

3、以矩形的面积计算为例,编写一个方法将引用类型作为参数

classRefTypePara{

doublewidth,height,area;

RefTypePara(doublew,doublel){

width=w;

height=l;

}

voidcalculateArea(RefTypeParap){//引用类型参数

p.area=p.width*p.height;

}

}

classPassObj{

publicstaticvoidmain(Stringargs[]){

RefTypePararr=newRefTypePara(10,10);

rr.calculateArea(rr);

System.out.println("矩形面积为"+rr.area);

}

}

实验六

1、静态变量的应用

classAccount{

StringAccountNumber;

StringAccountName;

doublebalance;

staticdoublelixi=0.1;

publicAccount(Stringnumber,Stringname){

AccountNumber=number;

AccountName=name;

balance=0.0;

}

publicvoidprint(){

System.out.println("账号:

"+AccountNumber);

System.out.println("名:

"+AccountName);

System.out.println("年利率:

"+lixi);

}

}

publicclassTestAccount{

publicstaticvoidmain(Stringargs[]){

Accounta=newAccount("3454523314","三");

Accountb=newAccount("3454524315","四");

a.print();

b.print();

b.lixi=0.9;

System.out.println("修改年利率后:

");

a.print();

b.print();

}

}

2、静态方法的应用

classSuperClass{

publicstaticvoidmethod1(){

System.out.println("这里调用的是:

父类的静态方法method1");

}

publicvoidmethod2(){

System.out.println("这里调用的是:

父类的非静态方法method2");

}

}

classSubClassextendsSuperClass{

publicstaticvoidmethod1(){

System.out.println("这里调用的是:

子类的静态方法method1");

}

publicvoidmethod2(){

System.out.println("这里调用的是:

子类的非静态方法method2");

}

}

publicclassTestStaticMethod{

publicstaticvoidmain(Stringargs[]){

SubClasssub=newSubClass();

SuperClasssup;

sup=sub;

sup.method1();

sub.method1();

sup.method2();

sub.method2();

}

}

3、抽象方法的应用

abstractclassEmployee{

Stringname;

Stringsex;

publicEmployee(Stringn,Strings){

name=n;

sex=s;

}

publicabstractStringgetDetail();

}

classHourlyEmployeeextendsEmployee{

privatedoublewageRate;

privatedoublehours;

publicHourlyEmployee(Stringn,Strings,doubler,doubleh){

super(n,s);//调用父类的构造方法

wageRate=r;

hours=h;

}

publicStringgetDetail(){

returnname+""+sex+"每小时工资"+wageRate+"元,工作了"+hours+"小时,共收入"+wageRate*hours+"元";

}

}

classSalariedEmployeeextendsEmployee{

privatedoublesalary;

publicSalariedEmployee(Stringn,Stringse,doublesa){

super(n,se);//调用父类的构造方法

salary=sa;

}

publicStringgetDetail(){

returnname+""+sex+"每月工资"+salary+"元";

}

}

publicclassTestAbstract{

publicstaticvoidmain(Stringargs[]){

Employeee;

HourlyEmployeehe=newHourlyEmployee("伟","男",50,20);

e=he;

System.out.println(e.getDetail());

SalariedEmployeese=newSalariedEmployee("娜","女",3000);

System.out.println(se.getDetail());

}

}

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

当前位置:首页 > 初中教育 > 政史地

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

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