Java实验报告w5w6.docx
- 文档编号:26032938
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:12
- 大小:66.32KB
Java实验报告w5w6.docx
《Java实验报告w5w6.docx》由会员分享,可在线阅读,更多相关《Java实验报告w5w6.docx(12页珍藏版)》请在冰豆网上搜索。
Java实验报告w5w6
福建师大福清分校计算机实验报告(W5,W6)
院/系:
数学与计算机科学系课程名称:
Java面向对象程序设计日期:
专业
12计本
组号
学号
实验室
C204
班级
12计本
姓名
老师签名
赵少卡
实验名称
类与对象
成绩评定
实验环境
JDK
ExitPlus
实验
目的
和要
求
掌握类与对象的创建方法,掌握类变量与实例变量、类方法与实例方法的区别等相关知识。
实
验
原
理
类体的内容由成员变量和方法构成:
成员变量刻画类创建的对象的属性;方法一般由类所创建的对象调用,对象调用这些方法操作成员变量形成一定的算法,体现对象具有某种功能。
类变量是和该类所创建的所有对象相关联的变量,改变其中一个对象的这个类变量就同时改变了其它对象的这个类变量。
实例方法必须通过对象来调用,而类方法既可以由对象调用也可以通过类名调用。
实
验
内
容
1、补全下列程序并回答注释中的两个问题。
classA{
【代码1】//声明一个实例float变量a
【代码2】//声明一个static的float变量b
voidsetA(floata){
【代码3】//将参数a的值赋值给成员变量a
}
voidsetB(floatb){
【代码4】//将参数b的值赋值给成员变量b
}
floatgetA(){
returna;
}
floatgetB(){
returnb;
}
voidinputA(){
System.out.println(a);//能否改写成System.out.println(a+b);为什么?
}
实
验
内
容
staticvoidinputB(){
System.out.println(b);//能否改写成System.out.println(a+b);为什么?
}
}
publicclassEx2_1{
publicstaticvoidmain(Stringargs[]){
【代码5】//通过类名操作类变量b,并赋值100
【代码6】//通过类名调用方法inputB()
Acat=newA();
Adog=newA();
【代码7】//cat调用方法setA(inta)将cat的成员a的值设置为200
【代码8】//cat调用方法setB(intb)将cat的成员b的值设置为400
【代码9】//dog调用方法setA(inta)将dog的成员a的值设置为200
【代码10】//dog调用方法setB(intb)将dog的成员b的值设置为900
【代码11】//cat调用inputA()
【代码12】//cat调用inputB()
【代码13】//dog调用inputA()
【代码14】//dog调用inputB()
}
}
2、编写一个类Letter,要求该类创建对象p,并调用方法printLetter输出英文字母表。
3、编写一个类DengCha,该类含有成员:
(1)构造方法;
(2)setStart(ints):
用于指定等差数列的起始值;
(3)setD(intd):
用于指定等差数列的公差;
(4)getSum(intn):
用于计算等差数列n项的和。
并创建对象shulie对该类进行测试。
4、编写一个类SquareEquation,该类封装了一元二次方程共有的属性和功能,即该类含有刻画方程系数的3个成员变量a,b,c以及计算实根的方法getRoots,并用数据测试该类的正确性。
要求:
该类的所有对象共享常数项。
实
验
内
容
5、定义一个复数类Complex,内有两个成员变量:
实部real和虚部image,还有两个成员方法add()和sub(),用来求两复数的和以及两复数的差。
编程验证该程序的复数加减运算是正确的。
其中main方法已给出:
publicclassShiyan_5{
publicstaticvoidmain(Stringargs[]){
Complexx=newComplex(4.0,2.1);
Complexy=newComplex(2.5,5.0);
Complext1=newComplex();
Complext2=newComplex();
t1=x.add(y);
t2=x.sub(y);
t1.print();
t2.print();
}
}
系
统
实
施
voidinputA(){
System.out.println(a);//能否改写成System.out.println(a+b);为什么?
}
可以,实例方法可以调用类变量
staticvoidinputB(){
System.out.println(b);//能否改写成System.out.println(a+b);为什么?
}
不可以,类方法不可以调用实例变量
测
试
报
告
结
果
分
析
注意非法字符
附
录
1.
classA{
floata;//声明一个实例float变量a
staticfloatb;//声明一个static的float变量b
voidsetA(floata){
this.a=a;//将参数a的值赋值给成员变量a
}
voidsetB(floatb){
A.b=b;//将参数b的值赋值给成员变量b
}
floatgetA(){
returna;
}
floatgetB(){
returnb;
}
voidinputA(){
System.out.println(a);//能否改写成System.out.println(a+b);为什么?
}
staticvoidinputB(){
System.out.println(b);//能否改写成System.out.println(a+b);为什么?
}
}
publicclassEx2_1{
publicstaticvoidmain(Stringargs[]){
A.b=100f;//通过类名操作类变量b,并赋值100
A.inputB();//通过类名调用方法inputB()
Acat=newA();
Adog=newA();
cat.setA(200f);//cat调用方法setA(inta)将cat的成员a的值设置为200
cat.setB(400f);//cat调用方法setB(intb)将cat的成员b的值设置为400
dog.setA(200f);//dog调用方法setA(inta)将dog的成员a的值设置为200
dog.setB(900f);//dog调用方法setB(intb)将dog的成员b的值设置为900
cat.inputA();//cat调用inputA()
cat.inputB();//cat调用inputB()
dog.inputA();//dog调用inputA()
dog.inputB();//dog调用inputB()
}
}
2
classLetter{
charstart='A';
voidprintLetter()
{
for(inti=0;i<25;i++)
{
charc='0';
c=(char)(i+start);
System.out.printf("%c",c);
if(i%7==0&&i!
=0)System.out.printf("\n");
}
}
}
classLetter2{
publicstaticvoidmain(String[]args){
Letterp=newLetter();
p.printLetter();
}
}
3.
importjava.util.*;
publicclassDengCha3{
publicstaticvoidmain(String[]args){
DengChashulie=newDengCha();
shulie.setStart(6);
shulie.setD(7);
System.out.printf("首项为6,公差为7的等差数列的前5项和为%d",shulie.getSum(5));
}
}
classDengCha{
ints;
intd;
intsum;
DengCha(){}
voidsetStart(ints){this.s=s;}
voidsetD(intd){this.d=d;}
intgetSum(intn)
{
sum=n*s+n*(n-1)*d/2;
returnsum;
}
}
4.
importjava.lang.Math;
classSquareEquation{
doublea;
doubleb;
staticdoublec;
doublex1,x2;
SquareEquation(doublea,doubleb,doublec)
{
this.a=a;
this.b=b;
SquareEquation.c=c;
}
voidgetRoots()
{
doubletemp=b*b-4*a*c;
if(temp<0)System.out.println("方程无根\n");
elseif(temp!
=0)
{
x1=(-b+Math.sqrt(temp))/(2.0*a);
x2=(-b-Math.sqrt(temp))/(2.0*a);
System.out.printf("方程有两个不同的实根其中x1=%.2f,x2=%.2f\n",x1,x2);
}
else
{
x1=-b/(2.0*a);
System.out.printf("方程有两个相同的实根,值为%f\n",x1);
}
}
}
publicclassSquareEquation4{
publicstaticvoidmain(String[]args){
SquareEquationyi=newSquareEquation(1,2,3);
System.out.println("方程式一为x*x+2x+3=0");
yi.getRoots();
SquareEquationer=newSquareEquation(4,10,1);
System.out.println("方程式二为4x^2+10x=0");
er.getRoots();
System.out.printf("方程一的常数项为%.2f,方程二的常数项为%.2f",yi.c,er.c);
}
}
5.
publicclassShiyan_5{
publicstaticvoidmain(Stringargs[]){
Complexx=newComplex(4.0,2.1);
Complexy=newComplex(2.5,5.0);
Complext1=newComplex();
Complext2=newComplex();
t1=x.add(y);
t2=x.sub(y);
t1.print();
t2.print();
}
}
classComplex{
doublea;
doubleb;
Complex(){}
Complex(doublea1,doubleb1){a=a1;b=b1;}
Complexadd(Complexx){
doublea1,a2;
a1=a+x.a;
a2=b+x.b;
returnnewComplex(a1,a2);
}
Complexsub(Complexx){
doublea1,a2;
a1=a-x.a;
a2=b-x.b;
returnnewComplex(a1,a2);
}
voidprint()
{
System.out.printf("实部%.2f,虚部%.2f\n",a,b);
}
}
说明:
系统实施:
(程序流程图、重要过程说明、参数设置、变量的说明等)
测试报告:
(调试输入数据、结果数据或状态。
给出一、两个不同的输入和结果)
结果分析:
(碰到的问题、如何解决、有何体会)
附录:
(主要的源程序代码)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 实验 报告 w5w6