Java类与对象实验报告

合集下载

实验四 Java类和对象

实验四 Java类和对象

实验四类与对象、继承【目的】①使用类来封装对象的属性和功能;②掌握类变量与实例变量,以及类方法与实例方法的区别;③掌握使用package和import语句。

④巩固以下概念:子类的继承性子类对象的创建过程成员变量的继承与隐藏方法的继承与重写【内容】1.三角形、梯形和圆形的类封装✧实验要求:编写一个Java应用程序,该程序中有3个类:Trangle、Leder和Circle,分别用来刻画“三角形”、“梯形”和“圆形”。

具体要求如下:a) Trangle类具有类型为double的三个边,以及周长、面积属性,Trangle类具有返回周长、面积以及修改三个边的功能。

另外,Trangle类还具有一个boolean型的属性,该属性用来判断三个属能否构成一个三角形。

b) Lader类具有类型double的上底、下底、高、面积属性,具有返回面积的功能。

c) Circle类具有类型为double的半径、周长和面积属性,具有返回周长、面积的功能。

✧程序模板:AreaAndLength.javaclass Trangle{double sideA,sideB,sideC,area,length;boolean boo;public Trangle( double a,double b,double c){【代码1】//参数a,b,c分别赋值给sideA,sideB,sideCif(【代码2】) //a,b,c构成三角形的条件表达式{【代码3】//给boo赋值。

}else{【代码4】//给boo赋值。

}}double getLength(){【代码5】//方法体,要求计算出length的值并返回}public double getArea(){if(boo){double p=(sideA+sideB+sideC)/2.0;area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC)) ;return area;}else{System.out.println("不是一个三角形,不能计算面积");return 0;}}public void setABC(double a,double b,double c){【代码6】//参数a,b,c分别赋值给sideA,sideB,sideCif(【代码7】) //a,b,c构成三角形的条件表达式{【代码8】//给boo赋值。

Java实验报告三类与对象

Java实验报告三类与对象

福建农林大学计算机与信息学院实验报告实验(三)类与对象一、实验目的和要求1.深入理解类和对象二、实验内容和原理1. 建立包myPackageA,在包中创建一个矩形类,其中包括计算矩形周长和面积两个方法。

在包myPackageB中建立一个Main类,在Main类中使用该矩形类,计算给定长和宽的矩形的周长和面积。

要求:当给定的长或者宽为负数或者0时,应该无法计算。

2. 编写一个Rational(有理数)类,具体要求如下:①Rational类有两个int型的成员变量,名字分别为fengZi(分子)和fengMu(分母)。

②提供Rational add(Ration al r)方法,即有理数调用该方法与参数指定的有理数做加法运算,并返回一个Rational对象③提供Rational multi(Rational r)方法,即有理数调用该方法与参数指定的有理数做乘法运算,并返回一个Rational对象。

④为了弱化难度,设参与运算的有理数均为正数。

三、实验环境1.硬件环境:2.软件环境:JDK1.5四、算法描述及实验步骤1.算法描述(可以用流程图、伪代码或源程序描述)2.实验步骤一、package myPackageA;public class 矩形类{public double Long,Wide;public double Girth(){if(Long>0&&Wide>0){double result=(Long+Wide)*2;System.out.println("长为:"+Long+","+"宽为:"+Wide+"的矩形");System.out.print("其周长是"+result+";");return result;}elseSystem.out.println("您输入的数据有误");return 1;}public double Area(){if(Long>0&&Wide>0){double result=Long*Wide;System.out.println("其面积是"+result);return result;}elsereturn 1;}}package myPackageB;import myPackageA.*;public class Main {public static void main(String args[]){矩形类a=new 矩形类();a.Long=2;a.Wide=0; // a.Wide=6;a.Girth();a.Area();}}二、package myPackageC;public class Rational {int fengzi,fengmu;Rational add(Rational r) {int a=r.fengzi;int b=r.fengmu;int newFengzi=fengzi*b+fengmu*a;int newFengmu=fengmu*b;Rational result1=new Rational();result1.fengzi=newFengzi;result1.fengmu=newFengmu;int x=newFengzi;int y=newFengmu;if(x<y) {int z=x;x=y;y=z;}int c=x%y;while(c!=0) {x=y;y=c;c=x%y;}System.out.println(fengzi+"/"+fengmu+"+"+r.fengzi+"/"+r.fengmu +"="+newFengzi/y+"/"+newFengmu/y);return result1;}Rational multi(Rational r){int a=r.fengzi;int b=r.fengmu;int newFengzi=fengzi*a;int newFengmu=fengmu*b;Rational result2=new Rational();result2.fengzi=newFengzi;result2.fengmu=newFengmu;int x=newFengzi;int y=newFengmu;if(x<y) {int z=x;x=y;y=z;}int c=x%y;while(c!=0) {x=y;y=c;c=x%y;}System.out.println(fengzi+"/"+fengmu+"*"+r.fengzi+"/"+r.fengmu+ "="+newFengzi/y+"/"+newFengmu/y);return result2;}public static void main(String args[]){Rational r1=new Rational();r1.fengzi=7;r1.fengmu=10;Rational r2=new Rational();r2.fengzi=2;r2.fengmu=5;r1.add(r2);r1.multi(r2);}}五、调试过程1.编译过程2.调试过程六、实验结果用与测试用例不同的输入数据运行算法,写出得到的结果,并分析结果是否正确。

java实验报告——类与对象

java实验报告——类与对象
id=i; } public void setName(String n){
name=n; } public void setAge(int a){
age=a; } public void setSex(boolean s){
sex=s; } public void setPhone(String p){
phone=p; } public long getId(){
return id; } public String getName(){
return name; } public int getAge(){
return age;
2
实验报告
} public boolean getSex(){
return sex; } public String getPhone(){
6)写出 Cmanage 类中的属性
由 Customer 中的属性决定,即:编号 id,姓名 name,年龄 age,性别 sex, 电话号码 phone。
7)写出 Cmanage 类中的构造方法 Cmanage();//无参构造函数
4
实验报告
8)写出 Cmanage 类中插入方法 public void insert(){ Scanner in=new Scanner(System.in); System.out.println("请输入要插入的人数:"); int n=in.nextInt(); cu=new Customer[n]; for(int i=0;i<n;i++){ cu[i]=new Customer(); System.out.println("请输入第"+(i+1)+"个要插入的顾客的信息:"); cu[i].id=in.nextLong(); cu[i].name=in.next(); cu[i].age=in.nextInt(); cu[i].sex=in.nextBoolean(); cu[i].phone=in.next(); }

Java实验报告3类与对象的使用

Java实验报告3类与对象的使用
charsex;
Stringdate;
voidinit(Stringusername,Stringname,charsex,Stringdate)
{
ername=username;
=name;
this.sex=sex;
this.date=date;
}
voiddisplay()
1学习类的一般结构2学习类的成员变量及成员方法的声明3学习对象的创建4学习调用对象的成员变量与成员方法5理解类的构造方法的作用和执行过程6学习方法调用时参数的传递7掌握方法的重载实验内容
Java语言程序设计实验报告
系别
班级
学号
姓名
地点
计算机科学系
课程名称
Java语言程序设计
实验名称
实验3类与对象的使用
}
publicvoidsetPassword(StringPassword){
this.password=password;
}
publicString getUsername(){
returnusername;
}
publicvoidsetUsername(Stringname){
ername=username;
{
System.out.println("用户名:"+username);
System.out.println("姓名:"+name);
System.out.println("性别:"+sex);
System.out.println("出生日期:"+date);
}
voidmodify(Strቤተ መጻሕፍቲ ባይዱngusername,Stringname,charsex,Stringdate)

java 类与对象实验报告

java 类与对象实验报告

java 类与对象实验报告Java 类与对象实验报告一、实验目的本次实验的目的是通过实际操作,加深对Java类与对象的理解与掌握。

通过编写程序,创建类和对象,实现类的各种属性和方法,并进行相应的测试和调试,从而熟悉类与对象的概念、创建与使用。

二、实验内容本次实验包括以下几个方面的内容:1. 创建一个名为"Student"的类,该类包含学生的姓名、年龄、性别等属性,以及相应的get和set方法。

2. 创建一个名为"Course"的类,该类包含课程的名称、学分、教师等属性,以及相应的get和set方法。

3. 创建一个名为"Teacher"的类,该类包含教师的姓名、年龄、性别等属性,以及相应的get和set方法。

4. 在"Student"类中添加一个名为"selectCourse"的方法,该方法可以选择课程,并将其添加到学生的课程列表中。

5. 在"Student"类中添加一个名为"dropCourse"的方法,该方法可以退选课程,并将其从学生的课程列表中移除。

6. 在"Course"类中添加一个名为"showInfo"的方法,该方法可以显示课程的详细信息。

7. 在"Teacher"类中添加一个名为"teachCourse"的方法,该方法可以教授课程,并显示教师的相关信息。

三、实验过程首先,我们需要创建一个名为"Student"的类。

在该类中,我们定义了学生的姓名、年龄、性别等属性,并为每个属性添加了相应的get和set方法。

接着,我们在该类中添加了一个名为"selectCourse"的方法,该方法可以选择课程,并将其添加到学生的课程列表中;同时,我们还添加了一个名为"dropCourse"的方法,该方法可以退选课程,并将其从学生的课程列表中移除。

java类与对象实验报告

java类与对象实验报告

AraAndlengBV3 drdejala ranglejava laderjavadlass Laderdouble above,bottcm,height,area;Lader(double a, double b,double habove=a;bottom=b;height=h;/ /方法体,将参数a,b,h分别赋值给above,bottom,heightdouble getArea()arealabove+bottom)/2*height;return area; 11方法体,,要求计算出areai返回uerava AreaAnuLengunyavaa型类变量b,即static 变量ba变量b二. 、学习实例成员与类成员的区别的简单例题:HH raLKagec l nierarcmy 日 年 マ hik罗 x t tsrc曲(default package)AjavaExamplejavaJRE System Library [idk1.6.0 11d Irangeaa J UITCIE,Javd ua ny ieava La c las s A {float a; / / 声 明 一 个 f l o a t 型 实 例 变 量 stat ic f loat b; / / 声 明 一 个 f lo a t vo id setA (float a)this. a =a; / / 将 参 数 a 的 值 赋 值 给 成 员 变 量evo id{setB (f loatthis . k =b; b)/ / 将 参 数 b 的 值 赋 值 给 成 员}floatgetA()retu rn a;}e f lo a t getB()re tu rn b;}vo id inputA() {System. out .println(a);}s tat ic vo id inputB(){System. out .println(b);h) 命 令 提 示 符Microsoft Windows[版本6. 1.7601]版权所有(c >2809 Microsoft Corporation 。

java类与对象实验报告

java类与对象实验报告

java类与对象实验报告Java类与对象实验报告一、引言Java是一种面向对象的编程语言,类和对象是Java编程的基本概念。

在本次实验中,我们将学习和掌握Java类和对象的概念、定义和使用方法,并通过实际的编程实验来加深对这些概念的理解。

二、实验目的1. 理解Java类和对象的概念;2. 学会定义和使用Java类;3. 掌握创建和操作Java对象的方法;4. 熟悉Java类和对象的相关语法和规范。

三、实验过程1. 类的定义在Java中,类是对象的模板,用于描述对象的属性和行为。

我们首先需要定义一个类,以便创建对象。

类的定义包括类名、属性和方法。

属性即对象的特征,方法即对象的行为。

2. 对象的创建通过使用关键字"new",我们可以创建一个类的对象。

对象是类的实例化,每个对象都有自己的属性和方法。

3. 对象的属性和方法对象的属性和方法可以通过对象名加点操作符来访问。

属性可以是基本类型或其他类的对象,方法可以是对象的行为或功能。

4. 构造方法构造方法是一种特殊的方法,用于创建对象时进行初始化操作。

构造方法的名称必须与类名相同,没有返回类型,可以有参数。

5. 封装性封装性是面向对象编程的重要特性之一,它将数据和方法封装在类中,对外部隐藏内部实现细节。

通过使用访问修饰符(private, public, protected)来控制属性和方法的访问权限。

6. 继承继承是面向对象编程的另一个重要特性,它允许我们创建一个新类,并从现有类中继承属性和方法。

通过使用关键字"extends"来实现继承。

7. 多态性多态性是面向对象编程的核心概念之一,它允许我们使用一个父类类型的引用来引用子类的对象。

通过方法的重写和重载来实现多态性。

四、实验结果通过本次实验,我们成功定义了一个Java类,并创建了多个对象。

我们可以通过对象名来访问对象的属性和方法,并对其进行操作。

我们还学习了构造方法的使用,以及封装性、继承和多态性的相关概念。

实验3Java面向对象编程(类与对象)实验

实验3Java面向对象编程(类与对象)实验

实验3Java面向对象编程(类与对象)实验实验3 Java面向对象编程(1)一、实验目的:1.掌握Java 面向对象编程的基础概念和编程方法2.掌握类的概念,属性和方法的定义注意:类的结构的设计,类的编写方法。

二、实验环境(硬/软件要求):通过局域网互联,安装Windows 2000/XP操作系统环境的JDK1.6.0(或以上版本),eclipse。

三、实验内容:编写并调试运行Java程序,进行类的设计,掌握构造函数及类的继承的设计方法。

本次可开始使用Eclipse进行程序开发。

四、实验主要步骤:(一)、编写一个Java Application程序,文件名为Rect_One.java。

目的:掌握类的结构,对象的引用,熟悉属性、方法的使用。

要求::1.建立一个类,①矩形的属性宽、高、面积、周长分别为width、height,S、L;②方法setBox( ),设置width和height的初始值,③方法getArea( ),计算矩形的面积S。

④方法getL( ),计算矩形的周长L。

2.在主类的main方法中,输出矩形的长、宽和面积、周长。

3.增加两个构造方法,对矩形进行初始化。

4.对构造方法分别进行测试。

(二)编写一个复数类,包含实部和虚部属性,还有复数相加、相减以及复数的求模、输出复数字符串”a+bi”。

(三)课后试验,教材实验3内容(2)设计银行账户类。

包括帐号、姓名、开户时间、余额,成员方法包括存款、取款、查询余额,计算利息等。

对所设计的类进行测试。

(四)编写一个描述学生基本情况的类属性包括姓名,学号,语文成绩,数学成绩和英语成绩,方法包括信息输出,设置姓名和学号,设置三门课程成绩,计算总成绩和平均成绩, 并对所录入的学生按照总分排序进行输出。

选作题:(五)设计实验验证有继承关系的三级父子类的构造方法和析沟方法的执行次序,并回答以下问题1 构造子类对象的时候会调用父类的构造方法吗?2 父类和子类构造方法的执行顺序?谁先执行?五、实验报告(要求独立完成参考程序的代码、编译、调试与运行)1 独立完成参考程序的代码、编译、调试与运行六、实验报告形式(纸质/电子):1.本次试验报告采用手写一、二、三题代码(纸质A4纸),试验结果截图打印出来,附在试验报告后。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

西安邮电大学(计算机学院)课实验报告实验名称:类与对象专业名称:计算机科学与技术班级:计科1405班学生:高宏伟学号:04141152指导教师:霞林实验日期:2016.9.29一、实验目的通过编程和上机实验理解Java 语言是如何体现面向对象编程基本思想,了解类的封装方法,以及如何创建类和对象,了解成员变量和成员方法的特性,掌握OOP 方式进行程序设计的方法。

二、实验要求1.编写一个创建对象和使用对象的方法的程序。

2.编写一个包含类成员和示例成员的程序。

3.编写一个使用Java包的程序。

三、实验容(一)三角形、梯形和圆形的类封装✧实验要求:编写一个Java应用程序,该程序中有3个类:Trangle、Leder和Circle,分别用来刻画“三角形”、“梯形”和“圆形”。

具体要求如下:a) Trangle类具有类型为double的三个边,以及周长、面积属性,Trangle类具有返回周长、面积以及修改三个边的功能。

另外,Trangle类还具有一个boolean型的属性,该属性用来判断三个属能否构成一个三角形。

b) Lader类具有类型double的上底、下底、高、面积属性,具有返回面积的功能。

c) Circle类具有类型为double的半径、周长和面积属性,具有返回周长、面积的功能。

✧程序模板:AreaAndLength.javaclass Trangle{double sideA,sideB,sideC,area,length;boolean boo;public Trangle(double a,double b,double c){this.sideA=a; //【代码1】参数a,b,c分别赋值给sideA,sideB,sideCthis.sideB=b;this.sideC=c;if((sideA+sideB)>sideC&&(sideC+sideB)>sideA&&(sideC+sideA)>sideB)//【代码2】a,b,c构成三角形的条件表达式{boo=true;//【代码3】给boo赋值。

}else{boo=false;【代码4】//给boo赋值。

}}double getLength(){return sideA+sideB+sideC;【代码5】//方法体,要求计算出length的值并返回}public double getArea(){if(boo){double p=(sideA+sideB+sideC)/2.0;area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC)) ;return area;}else{System.out.println("不是一个三角形,不能计算面积");return 0;}}public void setABC(double a,double b,double c){this.sideA=a;this.sideB=b;this.sideC=c; //【代码6】参数a,b,c分别赋值给sideA,sideB,sideCif((sideA+sideB)>sideC&&(sideC+sideB)>sideA&&(sideC+sideA)>sideB【代码7】) //a,b,c构成三角形的条件表达式{boo=true;【代码8】//给boo赋值。

}else{boo=false;【代码9】//给boo赋值。

}}}class Lader{double above,bottom,height,area;Lader(double a,double b,double h){this.above=a;this.bottom=b;this.height=h;【代码10】//方法体,将参数a,b,c分别赋值给above,bottom,height}double getArea(){return (above+bottom)*height/2;【代码11】//方法体,,要求计算出area返回}}class Circle{double radius,area;Circle(double r){ this.radius=r;【代码12】//方法体}double getArea(){ return Math.PI*radius*radius;//【代码13】方法体,要求计算出area返回}double getLength(){return Math.PI*2*radius; //【代码14】getArea方法体的代码,要求计算出length 返回}void setRadius(double newRadius) { radius=newRadius; }double getRadius(){return radius; }}public class AreaAndLength {public static void main(String args[]){double length,area;Circle circle=null;Trangle trangle;Lader lader;circle=new Circle(5);【代码15】//创建对象circletrangle=new Trangle(3,4,5); 【代码16】//创建对象trangle。

lader=new Lader(2,3,4);【代码17】//创建对象laderlength=circle.getLength();System.out.println("圆的周长:"+length);area=circle.getArea();System.out.println("圆的面积:"+area);length=trangle.getLength();System.out.println("三角形的周长:"+length);area=trangle.getArea();System.out.println("三角形的面积:"+area);area=lader.getArea();System.out.println("梯形的面积:"+area);trangle.setABC(12, 34, 1);area=trangle.getArea();System.out.println("三角形的面积:"+area);length=trangle.getLength();System.out.println("三角形的周长:"+length);}}实验后的练习:1. 程序中仅仅省略【代码15】,编译能通过吗?不能通过,提示如下Exception in thread "main" ng.Error: Unresolved compilationproblems:The local variable circle may not have been initializedThe local variable circle may not have been initializedat AreaAndLength.Trangle$AreaAndLength.main(Trangle.java:85)2. 程序中仅仅省略【代码16】,编译能通过吗?不能通过,提示如下Exception in thread "main" ng.Error: Unresolved compilationproblems:The local variable trangle may not have been initializedThe local variable trangle may not have been initializedThe local variable trangle may not have been initializedThe local variable trangle may not have been initializedThe local variable trangle may not have been initializedat AreaAndLength.Trangle$AreaAndLength.main(Trangle.java:89)3. 程序中仅仅省略【代码15】,运行时出现怎样的异常提示?Exception in thread "main" ng.Error: Unresolved compilationproblems:The local variable circle may not have been initializedThe local variable circle may not have been initializedat AreaAndLength.Trangle$AreaAndLength.main(Trangle.java:85) 1.给Trangle类增加3个方法,分别用来返回3个边:sideA、sideB和sideC。

double getsideA(){ return sideA; }double getsideB(){ return sideB; }double getsideC(){ return sideC; }2.让AreaAndLength类中的circle对象调用方法修改半径,然后输出修改后的半径以及修改半径后的圆的面积和周长。

circle.setRadius(3);System.out.println("修改后的半径为"+circle.getRadius());System.out.println("修改后的面积为"+circle.getArea());System.out.println("修改后的周长为"+circle.getLength());(二)实例成员与类成员。

✧实验要求:按程序模板的要求编写源文件,要特别注意程序的输出结果,并能正确解释输出的结果。

✧程序运行效果示例:程序运行效果如下图所示:✧程序模板:Example.javaclass A{【代码1】//声明一个float型实例变量a【代码2】//声明一个float型类变量b,void setA(float a){【代码3】//将参数a的值赋值给成员变量a}void setB(float b){【代码4】//将参数b的值赋值给成员变量b}float getA(){return a;}float getB(){return b;}void inputA(){System.out.println(a);}static void inputB(){System.out.println(b);}}public class Example{public static void main(String args[]){A.b=100; //通过类名操作类变量b,并赋值100A.inputB(); //通过类名调用方法inputB()A cat=new A();A dog=new A();cat.setA(200); //cat调用方法setA(int a)将cat的成员a的值设置为200cat.setB(400); //cat调用方法setB(int b)将cat的成员b的值设置为400dog.setA(150); //dog调用方法setA(int a)将dog的成员a的值设置为150dog.setB(300); //dog调用方法setB(int b)将dog的成员b的值设置为300cat.inputA(); //cat调用inputA()。

相关文档
最新文档