实验三:类与对象(bo)
类与对象的实验报告

类与对象的实验报告类与对象的实验报告引言:在计算机科学领域,类与对象是面向对象编程(Object-Oriented Programming,简称OOP)的核心概念之一。
类是一种抽象的数据类型,用于描述具有相同属性和行为的对象集合。
对象则是类的实例,具体化了类的属性和行为。
本实验旨在通过编写一个简单的类与对象的程序,深入理解类与对象的概念及其在编程中的应用。
实验过程:1. 定义一个类:在这个实验中,我们以动物为例,定义了一个名为Animal的类。
该类具有以下属性和行为:- 属性:名称、年龄、种类- 行为:吃、睡、叫2. 创建对象:在主程序中,我们创建了两个Animal对象,分别代表一只狗和一只猫。
通过调用构造函数,为对象的属性赋值。
3. 调用对象的方法:我们通过调用对象的方法,模拟了动物的行为。
例如,我们调用了eat()方法,让动物吃东西;调用了sleep()方法,让动物睡觉;调用了make_sound()方法,让动物发出叫声。
4. 修改对象属性:我们还演示了如何修改对象的属性。
通过调用set_age()方法,我们改变了动物的年龄;通过调用set_type()方法,我们改变了动物的种类。
实验结果:通过运行程序,我们观察到以下结果:- 狗的名称是"旺财",年龄是3岁,种类是"狗"。
狗吃骨头,睡觉时打呼噜,发出汪汪的叫声。
- 猫的名称是"咪咪",年龄是2岁,种类是"猫"。
猫吃鱼,睡觉时打呼噜,发出喵喵的叫声。
- 经过修改后,狗的年龄变为5岁,种类变为"藏獒";猫的年龄变为3岁,种类变为"波斯猫"。
讨论与分析:通过这个实验,我们深入理解了类与对象的概念及其在编程中的应用。
类是一种抽象的模板,用于描述具有相似属性和行为的对象集合。
对象是类的实例,具体化了类的属性和行为。
通过定义类和创建对象,我们可以更好地组织和管理程序的代码。
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.调试过程六、实验结果用与测试用例不同的输入数据运行算法,写出得到的结果,并分析结果是否正确。
实验三 类与对象

实验三类与对象专业班级网络1201 学号1218064023 姓名汪枭涵实验学时 2 实验类型验证性实验地点数计学院实验中心实验时间指导老师曹记东实验成绩年月日一、实验目的:理解类与对象的定义,理解封装的含义,掌握数据成员的声明与初始化方法,掌握成员方法的定义、返回值、参数传递的方法。
二、实验内容:用面向对象的思想编写一个简单的计算器,能够实现两个数字的加、减、乘、除运算。
三、实验要求:1.根据需求,用面向对象的方式定义一个计算器类(Calculator);2.由于计算器能对两个数字进行各种运算,所以定义两个成员变量表示两个运算数;3.编写4个成员方法,分别实现加(add)、减(minus)、乘(multiple)、除(divide)四类运算。
4.定义构造函数对成员变量赋初值;5.写出实验报告。
四、实验步骤与结果:(由学生按照实验内容完成)public class Calculator {public static double add(double num1, double num2){return num1 + num2;}public static double minus(double num1, double num2){return num1 - num2;}public static double multiple(double num1, double num2){return num1 * num2;}public static double divide(double num1, double num2){if(num2 != 0){return num1/num2;}return -1;//除数为0,错误}public static void main(String args[]){System.out.println("加法:15 + 5 = " + add(15, 5));System.out.println("减法:15 + 5 = " + minus(15, 5));System.out.println("乘法:15 + 5 = " + multiple(15, 5));System.out.println("除法:15 + 5 = " + divide(15, 5));}}实验结果:总结:通过本次实验,了解了java的开发环境,掌握了NetBeans的使用方法,同时对一些简单的基本JA V A语言的有了进一步的了解和掌握,对JA V A的一些基本语法也明白的很多,但是因为一开始在语法上存在一定的应用缺陷所以导致在实验的过程遇到了一些问题,最终通过和同学的讨论顺利解决了问题。
对象和类实验报告

实验项目名称实验3《对象和类》一、实验目的1.设计类,并画出UML类图2.实现UML中的类3.使用类开发应用程序二、实验内容1、(P305, 9.1)【矩形类Rectangle】遵照9.2节中Circle类的例子,设计一个名为Rectangle的类表示矩形。
这个类包括:♦两个名为width和height的double型数据域,它们分别表示矩形的宽和高。
width和height的默认值都为1。
♦创建默认矩形的无参构造方法。
♦创建width和height为指定值的矩形的构造方法。
♦一个名为getArea()的方法返回这个矩形的面积。
♦一个名为getPerimeter()的方法返回矩形周长。
画出该类的UML图并实现这个类。
编写一个测试程序,创建两个Rectangle对象:一个矩形的宽为4高为40,另一个矩形的宽为3.5高为35.9。
依次显示每个矩形的宽、高、面积和周长。
1.1UML图width: doubleheight: doubleRectangle()Rectangle(newWidth: double, newHeight: double)getArea(): doublegetPerimeter(): doublesetWidthHeight(newWidth: double, newHeight: double): void1.2运行结果与分析结果分析:运行符合要求,输出三组矩形的宽、高、面积和周长1.3心得体会Rectangle类是类的简单运用,了解使用方法即可。
1.4源程序public class program1 {public static void main(String[] args) {Rectangle rectangle0 = new Rectangle();System.out.println("rectangle 0 width: " + rectangle0.width+ " height: " + rectangle0.height + " area: " + rectangle0.getArea()+ " perimeter: " + rectangle0.getPerimeter());//创建宽为4,高为40的矩形Rectangle rectangle1 = new Rectangle(4, 40);System.out.println("rectangle 1 width: " + rectangle1.width+ " height: " + rectangle1.height + " area: " + rectangle1.getArea()+ " perimeter: " + rectangle1.getPerimeter());//创建宽为3.5,高为35.9的矩形Rectangle rectangle2 = new Rectangle(3.5, 35.9);System.out.println("rectangle 2 width: " + rectangle2.width + " height: " + rectangle2.height + " area: " + rectangle2.getArea() + " perimeter: " + rectangle2.getPerimeter());}//main结束}//创建Rectangle类class Rectangle {double width;double height;//无参构造函数Rectangle(){width = 1;height = 1;}//有参构造函数Rectangle(double newWidth, double newHeight){width = newWidth;height = newHeight;}double getArea(){return width*height;}double getPerimeter(){return (width+height)*2;}void setWidthHeight(double newWidth, double newHeight){width = newWidth;height = newHeight;}}//class结束2. (P307, 9.8)【风扇类Fan】设计一个名为Fan的类表示一个风扇。
类与对象实验报告

类与对象实验报告类与对象实验报告引言:类与对象是面向对象编程的基本概念,通过定义类和创建对象,可以实现对数据和行为的封装,使程序更加模块化和可扩展。
本实验旨在通过实际操作,加深对类与对象的理解,并掌握其基本用法。
实验过程:1. 定义类:在实验开始前,我们首先需要定义一个类。
类是对象的抽象描述,包含了对象的属性和方法。
以汽车为例,我们可以定义一个Car类,其中包含品牌、颜色和速度等属性,以及启动、加速和刹车等方法。
2. 创建对象:在定义了Car类之后,我们可以通过创建对象来实例化该类。
通过使用new关键字,我们可以创建多个汽车对象,每个对象都拥有独立的属性和方法。
例如,我们可以创建一个名为myCar的对象,它是Car类的一个实例。
3. 访问对象的属性和方法:创建了对象之后,我们可以通过点运算符来访问对象的属性和方法。
例如,通过myCar.brand可以获取myCar对象的品牌属性,通过myCar.start()可以调用myCar对象的启动方法。
这样,我们可以通过对象来操作和管理数据,使代码更加清晰和可读。
4. 对象之间的交互:在实际编程中,对象之间经常需要进行交互。
通过在类中定义方法,我们可以实现对象之间的数据传递和信息交流。
例如,我们可以定义一个方法来获取其他汽车对象的速度,并根据这些速度进行比较和判断。
实验结果:通过实验,我们深入了解了类与对象的概念和用法。
通过定义类和创建对象,我们可以更好地组织和管理代码,提高程序的可维护性和可扩展性。
通过访问对象的属性和方法,我们可以实现对数据和行为的封装,使代码更加模块化和易于理解。
通过对象之间的交互,我们可以实现数据的共享和协作,提高程序的效率和灵活性。
实验总结:类与对象是面向对象编程的核心概念,掌握了类与对象的基本用法对于开发高质量的程序至关重要。
通过本次实验,我们加深了对类与对象的理解,并通过实际操作掌握了其基本用法。
在以后的编程过程中,我们可以更加灵活地运用类与对象,提高代码的可读性和可维护性。
类和对象实验报告

类和对象实验报告类和对象实验报告引言:在计算机科学领域中,类和对象是面向对象编程的基本概念。
通过类和对象的使用,可以将现实世界中的事物抽象为计算机程序中的实体,从而更好地描述和处理问题。
本实验将通过一个简单的示例来介绍类和对象的基本概念,并展示它们在实际编程中的应用。
实验目的:1. 理解类和对象的概念;2. 学会创建类和对象,并进行基本的操作;3. 掌握类和对象在程序中的应用。
实验过程:1. 定义一个类:首先,我们需要定义一个类来表示一个学生。
一个学生通常有姓名、年龄和成绩等属性。
我们可以使用Python语言来定义这个类,如下所示:```pythonclass Student:def __init__(self, name, age, score): = nameself.age = ageself.score = score```在上述代码中,我们使用了Python中的类和构造函数的概念。
`__init__`方法是类的构造函数,用于初始化类的属性。
`self`表示类的实例对象本身。
2. 创建对象:在类定义完成后,我们可以创建类的对象。
通过创建对象,我们可以访问和操作类的属性和方法。
下面是创建一个学生对象的示例代码:```pythonstudent1 = Student("张三", 18, 90)```在上述代码中,我们使用`Student`类的构造函数创建了一个名为`student1`的学生对象。
通过传入相应的参数,我们可以为学生对象的属性赋值。
3. 访问对象的属性和方法:一旦对象创建成功,我们就可以通过对象来访问和操作类的属性和方法。
下面是一些访问对象属性和方法的示例代码:```pythonprint() # 输出学生的姓名print(student1.age) # 输出学生的年龄print(student1.score) # 输出学生的成绩def study(self):print(f"{}正在学习")student1.study() # 调用学生对象的study方法```在上述代码中,我们通过对象的名称和点操作符来访问对象的属性和方法。
实验三类与对象

实验三类与对象实验三类与对象1、实验目的1)使用类来封装对象的属性和功能。
2)掌握类变量与实例变量,以及雷方法与实例方法的区别。
3)掌握使用package和import语句。
2、实验内容1)编写一个Java应用程序,该程序中有3各类:Trangle、Lader和Circle,分别用来刻画“三角形”、“梯形”和“圆形”。
具体要求如下:●Trangle类具有类型为double的三个边,以及周长、面积属性,Trangle类具有返回周长、面积以及修改三个边的功能。
另外,Trangle类还具有一个boolean型的属性,该属性用来判断三个数能否构成一个三角形。
●Lader类具有类型为double的上底、下底、高、面积属性,具有返回面积的功能。
●Circle类具有类型为double的半径、周长和面积属性,具有返回周长、面积的功能。
程序模板:AreaAndLength.java请按模板要求,将【代码】提换为Java程序代码。
class Trangle{double sideA,sideB,sideC,area,length;boolean boo;public Trangle(double a, double b, double c){【代码1】//参数a、b、c分别赋值给sideA、sideB、sideC if(【代码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、sideC if(【代码7】)//a、b、c构成三角形的条件表达式{ 【代码8】//给boo赋值}else{【代码9】//给boo赋值}}}class Lader{double above,bottom,height,area;Lader(double a,double b,double h){ 【代码10】//方法体,将参数a、b、c分别赋值给above、bottom、height }double getArea(){ 【代码11】//方法体,要求计算出area并返回}}class Circle{double radius,area;Circle(double r){ 【代码12】//方法体}double getArea(){ 【代码13】//方法体,要求计算出area并返回}double getLength(){ 【代码14】//getArea方法体的代码,要求计算出length并返回}void setRadius(double newRadius){ radius = newRadius;}}public class AreaAndLength{public static void main(String args[]){double length,area;Circle circle = null;Trangle trangle;Lader lader;【代码15】//创建对象circle【代码16】//创建对象trangle【代码17】//创建对象lader【代码18】//调用Circle方法返回周长并赋值给lengthSystem.out.println(“圆的周长:”+length);【代码19】//调用Circle方法返回面积并赋值给areaSystem.out.println(“圆的面积”+area);【代码20】//调用Trangle方法返回周长并赋值给lengthSystem.out.println(“三角形的周长:”+length);【代码21】//调用Trangle方法返回面积并赋值给areaSystem.out.println(“三角形的面积:“+area);【代码22】//调用Lader方法返回面积并赋值给area;System.out.println(“梯形的面积:”+area);【代码23】//调用Trangle方法设置三个边,要求将三个边修改为12,34,15【代码24】//调用Trangle方法返回面积并赋值给areaSystem.out.println(“三角形的面积:”+area);【代码25】//调用Trangle方法返回周长并赋值给lengthSystem.out.println(“三角形的周长:”+length);}}实验后的练习(1)程序中仅仅省略【代码15】,编译能通过吗?(2)程序中仅仅省略【代码16】,编译能通过吗?(3)程序中仅仅省略【代码15】,运行时出现怎样的异常提示?(4)给Trangle类增加3个方法,分别用来返回3个边:sideA、sideB和sideC(5)让AreaAndLength类中的Circle对象调用方法修改半径,然后输出修改后的半径以及修改半径后的圆的面积和周长。
实验三 类和对象

[1]定义两个成员变量height和width,表示矩形的长和宽,类型为整型
[2]定义一个getArea方法,返回矩形的面积
[3]定义一个getPerimeter方法,返回矩形的周长
[4]在main函数中,利用输入的2个参数分别作为矩形的长和宽,调用getArea和getPermeter方法,计算并返回矩形的面积和周长
[3]定义一个getD方法,有一个类型为MyPoint的对象参数,功能为返回当前对象和参数对象这两个坐标点的距离,返回值为double类型
[4]编写测试的main方法,调用getD计算两个点之间的距离
输入:
输入2行数据,总共4个有理数。每2个数据一组,表示一个点的x和y坐标,每行的2个数据用空格隔开。例如:
x_1=test.nextDouble();
y_1=test.nextDouble();
MyPoint mypoint_4=new MyPoint(x_1,y_1);
System.out.println("请输入第二个点的坐标,中间用空格隔开:");
x_2=test.nextDouble();
y_2=test.nextDouble();
Rectangle juxing=new Rectangle();
System.out.println("请输入矩形的长和宽,用空格隔开:");
height=rectangle.nextDouble();
width=rectangle.nextDouble();
rectangle.close();
Area=juxing.getArea(height, width);
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三 Java类与对象
【实验目的】
1) 理解面向过程与面向对象区别
2) 理解面向对象的三大特征
3) 掌握类声明的方法
4) 掌握构造方法
5) 掌握对象的创建方法与创建机制
6) 掌握成员变量、类变量和局部变量区别
7) 掌握成员方法与类方法区别
8) 掌握函数的重载
9) 掌握4种访问修饰符的区别
【实验环境】
JDK1.6+Eclpise3.2
【实验准备】
1)复习课件中理论知识
2)练习课堂所讲的例子
【实验内容】
1、创建猴子类。
具体要求如下:
1)编写一个类Monkey,用来表示猴子类;
2)给Monkey类确定添加4个属性:3个实例成员变量(名字、体重、年龄)、1个静态成员变量(爱好:默认值为:吃香蕉);
3)添加默认构造方法和有参构造方法(3个参数,分别给名字、体重和年龄赋初始值)
4)编写展示猴子能够爬树(climbTree)的方法――提供两个参数传入:分别代码猴子的名字(name)和爬树的高度(height)(方法内只需打印猴子的”名字+会爬树,能爬+高度”)
5)测试:在main方法中创建两个猴子对象monkey1(皮蛋、50、3)和monkey2(兰兰、45、2),monkey1使用默认构造方法创建,monkey2使用有参构造方法创建。
分别打印出
monkey1和monkey2的名字、体重、年龄和爱好。
并调用monkey1和monkey2的爬树方法。
2、创建矩形Rectangle类。
具体要求如下:
1)创建一个Rectangle类;
2)创建属性:两个double成员变量:width和height。
3)创建方法:计算矩形的周长getLength()和面积getArea()。
4)测试:创建Rectangle对象,并给两个成员变量赋值,调用周长和面积的方法,输出周长和面积。
【实验过程及结果】
实验代码及结果:
1. package arp;
public class Monkey {//创建类
// 4个属性(成员变量)
private String name;
private int weight;
private int age;
private static String love="吃香蕉";
public Monkey(){
}
//有参构造方法
public Monkey(String name,int weight,int age) { =name;
this.weight=weight;
this.age=age;
}
//爬树
public void climbTree(String name,int height){ System.out.println(name+"会爬树,能爬"+height+"米"); }
//测试
public static void main(String [] args){
Monkey monkey2=new Monkey();
="猪猪";
monkey2.weight=50;
monkey2.age=3;
Monkey monkey3=new Monkey("猫猫",45,2);
System.out.println(+"体重
为"+monkey2.weight +"年龄为:"+monkey2.age+"爱好为:"+monkey2.love);
System.out.println(+"体重
为:"+monkey3.weight+"年龄为:"+monkey3.age+"爱好为:"+monkey3.love);
monkey2.climbTree(,100);
monkey3.climbTree(,88);
}}
2. package arp;
//创建类
public class Rectangle {
//两个成员变量
private double width;
private double height;
//计算周长
public double getLength(){
return (this.width+this.height)*2;
}
//计算面积
public double getArea(){
return this.width*this.height;
}
public static void main(String[] args) {
Rectangle rectangle =new Rectangle();
rectangle.width=100;
rectangle.height=50;
System.out.println("周长
为:"+rectangle.getLength());
System.out.println("面积为:"+rectangle.getArea()); }}
【实验感想】
本次实验态度鲜明的提出了面向对象和面向过程的区别以及面向对象的三大特征,并由此引入了类的声明,对象的创建方法等实质性问题,在上机练习中通过创建相应的类,给我留下了对于类和对象的深刻认识,对于这些新接触的知识还要在进一步的学习中去感悟和理解它所包含的实在的东西。