Java实验报告三类和对象

合集下载

实验三 类与对象

实验三 类与对象

实验编号: 3 实验报告 2019年4月15日级班实验名称:类与对象姓名:_ 学号:_ 2017110554 指导老师:_____实验成绩:_ __实验3 类与对象一、实验目的:1)本实验的目的是让学生使用类来封装对象的属性和功能2)学会对象的使用3)学会构造函数的使用和初始化二、实验任务任务1:编写一个Java应用程序,该程序中有3个类:Trangle、Lander和Circle,分别用来刻画“三角形”、“梯形”和“圆形”。

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

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

完成上述操作后,给Trangle再增加3个方法,分别用来返回3个边sideA,sideB, sideC的值。

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

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

程序运行效果三、代码实现1)Trangle类具有类型为double的三个边,以及周长、面积属性,Trangle 类具有返回周长、面积以及修改三个边的功能。

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

完成上述操作后,给Trangle再增加3个方法,分别用来返回3个边sideA,sideB, sideC的值。

(1)Trangle类,声明成员变量和构造方法。

(2)getPerimeter()方法:当满足任意两边和大于第三边的条件时,打印三边长并计算三角形周长,否则输出:不是一个三角形,不能计算周长。

(3)getArea()方法:当满足任意两边和大于第三边的条件时,计算三角形面积,否则输出:不是一个三角形,不能计算面积。

java面向对象实验三 类与对象编程—类与对象基础

java面向对象实验三 类与对象编程—类与对象基础
}
}
⒉实验测试结果:
实验结果及分析
实验结果:
(1)成功输出平均成绩和总成绩。
(2)创建四个学生对象,并成功输出学生信息。
教师评阅
System.out.println(name+"的平均成绩"+(java+c+db)/3.0);
}
voidsum(){
System.out.println(name+"的总成绩为"+(java+c+db));
}
}
publicclassTest{
publicstaticvoidmain(String []args){
classUndergraduate {
Stringname;
intcourse;
Stringeducation="本科";
Undergraduate(String _name,int_course) {
name= _name;
course= _course;
}
String getGrade() {
return("良好");
if(course>= 70)
return("一般");
if(course>= 60)
return("及格");
return("不及格");
实验过程及步骤
}
}
publicclassTest {
publicstaticvoidmain(String[] args) {
Underg("张三", 68);

Java实验三实验报告1

Java实验三实验报告1

Java实验三实验报告1一、实验目的本次 Java 实验的主要目的是深入理解和掌握 Java 中的面向对象编程概念,通过实际的编程实践,提高对类、对象、继承、多态等特性的运用能力,同时培养良好的编程习惯和代码规范。

二、实验环境1、操作系统:Windows 102、开发工具:Eclipse IDE for Java Developers三、实验内容1、设计一个名为`Shape` 的抽象类,其中包含一个抽象方法`calculateArea()`用于计算图形的面积。

2、分别创建`Circle`(圆形)、`Rectangle`(矩形)和`Triangle`(三角形)类继承自`Shape` 类,并实现各自的`calculateArea()`方法来计算具体图形的面积。

3、创建一个测试类`TestShapes`,在其中创建不同图形的对象,并调用其计算面积的方法,输出结果。

四、实验步骤1、创建`Shape` 抽象类```javaabstract class Shape {abstract double calculateArea();}```2、创建`Circle` 类继承自`Shape` 类```javaclass Circle extends Shape {private double radius;public Circle(double radius) {thisradius = radius;}@Overridedouble calculateArea(){return MathPI radius radius;}}```3、创建`Rectangle` 类继承自`Shape` 类```javaclass Rectangle extends Shape {private double length;private double width;public Rectangle(double length, double width) {thislength = length;thiswidth = width;}@Overridedouble calculateArea(){return length width;}}```4、创建`Triangle` 类继承自`Shape` 类```javaclass Triangle extends Shape {private double base;private double height;public Triangle(double base, double height) {thisbase = base;thisheight = height;}@Overridedouble calculateArea(){return 05 base height;}}```5、创建测试类`TestShapes````javapublic class TestShapes {public static void main(String args) {Circle circle = new Circle(50);Rectangle rectangle = new Rectangle(40, 60);Triangle triangle = new Triangle(30, 80);Systemoutprintln("圆形的面积:"+ circlecalculateArea());Systemoutprintln("矩形的面积:"+ rectanglecalculateArea());Systemoutprintln("三角形的面积:"+trianglecalculateArea());}}```五、实验结果运行测试类`TestShapes` 后,输出结果如下:```圆形的面积:78539816矩形的面积:240三角形的面积:120```六、实验中遇到的问题及解决方法1、在编写抽象类和子类的代码时,一开始对于抽象方法的定义和实现理解不够清晰,导致代码出现错误。

java基础实验报告

java基础实验报告

java基础实验报告Java基础实验报告引言:Java作为一种面向对象的编程语言,广泛应用于软件开发领域。

本次实验旨在通过一系列的实验任务,加深对Java基础知识的理解,并掌握Java编程的基本技巧。

实验一:Java环境搭建在本实验中,我们首先需要搭建Java开发环境。

Java开发工具包(JDK)是进行Java编程的基础,我们可以从Oracle官网上下载并安装最新版本的JDK。

安装完成后,我们需要配置环境变量,以便在命令行中能够直接运行Java相关的命令。

实验二:Java语言基础Java语言基础是进行Java编程的基石。

在本实验中,我们需要掌握Java的基本语法规则、数据类型和运算符等。

通过编写简单的程序,如计算两个数的和、判断一个数是否为素数等,加深对Java语言基础的理解。

实验三:面向对象编程面向对象编程是Java的核心特性之一。

在本实验中,我们需要学习Java中的类和对象的概念,并通过编写简单的类和对象来实现一些功能。

例如,创建一个学生类,包含姓名、年龄和成绩等属性,并实现一些与学生相关的操作方法。

实验四:异常处理异常处理是Java编程中重要的一部分。

在本实验中,我们需要学习Java中的异常处理机制,并通过编写代码来处理可能出现的异常情况。

例如,通过try-catch语句来捕获并处理用户输入非法字符的异常。

实验五:文件操作在实际的软件开发中,文件操作是非常常见的需求。

在本实验中,我们需要学习Java中的文件操作相关的类和方法,并通过编写代码来实现文件的读取和写入等功能。

例如,读取一个文本文件中的内容,并将其写入到另一个文件中。

实验六:多线程编程多线程编程是提高程序性能和效率的一种方式。

在本实验中,我们需要学习Java中的多线程编程相关的知识,并通过编写代码来实现多线程的应用。

例如,创建多个线程来同时下载多个文件,并实现进度条的显示。

结论:通过完成以上一系列的实验任务,我们对Java基础知识有了更深入的理解,并掌握了Java编程的基本技巧。

java编程实验报告

java编程实验报告

java编程实验报告Java编程实验报告引言:Java是一种广泛应用于软件开发领域的高级编程语言,具有跨平台、面向对象、安全性高等特点。

本篇文章将介绍我在Java编程实验中的实践和收获。

实验一:Hello World程序在本实验中,我学习了如何使用Java编写一个简单的Hello World程序。

通过这个实验,我了解了Java的基本语法和程序结构。

在编写过程中,我发现Java的语法规范相对严格,需要注意语句的结束符号和代码的缩进。

通过运行程序,我成功输出了"Hello World"这个简单的字符串,这让我对Java编程的基本流程和语法有了更深入的了解。

实验二:变量与运算符在本实验中,我学习了Java中的变量和运算符的使用。

通过编写程序,我实现了对不同类型的变量进行声明和赋值,并进行基本的运算操作。

在这个过程中,我发现Java的变量需要先声明后使用,而且在进行运算时需要注意数据类型的匹配。

通过这个实验,我对Java中的变量和运算符有了更深入的理解。

实验三:条件语句与循环结构在本实验中,我学习了Java中的条件语句和循环结构的使用。

通过编写程序,我实现了对不同条件进行判断,并根据不同的条件执行相应的操作。

同时,我还学习了循环结构的使用,通过循环语句实现了对一段代码的重复执行。

在这个实验中,我发现条件语句和循环结构是Java编程中非常重要的部分,能够帮助程序实现更复杂的逻辑。

实验四:数组和字符串在本实验中,我学习了Java中数组和字符串的使用。

通过编写程序,我实现了对数组和字符串的声明、赋值和操作。

在这个过程中,我发现Java中的数组和字符串是一种非常方便的数据结构,能够帮助程序处理大量的数据。

通过这个实验,我对Java中数组和字符串的使用有了更深入的了解。

实验五:面向对象编程在本实验中,我学习了Java中的面向对象编程的基本概念和使用。

通过编写程序,我实现了对类的定义、对象的创建和方法的调用。

实验三 类与对象

实验三 类与对象

实验三类与对象专业班级网络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 类与对象

实验报告_实验3 类与对象

实验报告_实验3 类与对象(学生学号_姓名)一、实验目的1.熟悉类的组成,掌握类的声明方法;2.理解构造方法的作用,并掌握构造方法的定义;3.熟练使用访问器和设置器实现信息隐藏和封装;4.熟悉一般方法、构造方法的重载;5.能够正确地区分静态变量与实例变量、静态方法与实例方法的不同,掌握静态变量和静态方法的使用;6.掌握对象的创建、引用和使用及向方法传递参数的方式;7.掌握this关键字的使用以及对象数组的创建和访问;8.掌握Java包的创建、包成员的各种访问方式;9.掌握一维数组:声明,创建,初始化,数组元素的访问;10.掌握多维数组的概念:二维数组的声明,初始化,元素的访问。

二、实验内容与步骤1.请回答下列问题:(1)Cirecle类定义了几个属性?它们的类型、访问权限各为什么?答:两个PI,floatl类型,静态私有权限Radius,float;类型,私有权限(2)类中的“PI”的值可以在程序的方法中更改吗?答:不可以,因为PI为静态变量(3)Cirecle类定义了几个方法?它们的访问权限怎样?答:四个,getRadius(),setRadius(float radius),getPerimeter(),getArea()都是公有权限2.写出Rectangle类的程序代码:class Rectangle{private float width;private float length;public float getWidth( ) 法4.写出OverrideTest中所缺的三行代码:public class OverrideTest {public static void main(String[] args) {ength;j++) ength __________;j++) ength ___________;i++){ e ngth;j++){问题:(1)二维数组如何声明、创建?二维数组的列数是否一定要求相同?答:数据类型数组名[ ][ ] 或数据类型[ ][ ] 数组名;不要求相同。

Java类与对象实验报告

Java类与对象实验报告

西安邮电大学(计算机学院)课实验报告实验名称:类与对象专业名称:计算机科学与技术班级:计科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赋值。

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面向对象实验报告

java面向对象实验报告《Java面向对象实验报告》摘要:本实验报告旨在探讨Java面向对象编程的基本概念和实践方法。

通过实验,我们将学习如何创建类、对象、封装、继承和多态等面向对象的特性,并通过实际代码演示这些概念的应用。

本报告将详细介绍实验过程和结果,并总结所得到的经验和教训。

一、实验目的1. 了解面向对象编程的基本概念和原则2. 掌握Java语言中类、对象、封装、继承和多态的使用方法3. 通过实验加深对面向对象编程的理解和掌握二、实验环境1. Java开发环境:Eclipse/IntelliJ IDEA等2. Java SDK版本:1.8及以上三、实验内容1. 创建一个简单的Java类2. 创建对象并调用对象方法3. 实现类的封装和访问控制4. 实现类的继承和方法重写5. 实现类的多态四、实验步骤1. 创建一个名为Person的Java类,包含姓名和年龄两个私有属性,并提供公有的get和set方法进行访问和修改。

2. 创建一个名为Student的子类,继承Person类,并重写父类的get方法。

3. 创建一个名为Teacher的子类,继承Person类,并重写父类的get方法。

4. 创建一个名为Main的主类,实例化Person、Student和Teacher对象,并调用其方法进行测试。

五、实验结果1. 成功创建了Person、Student和Teacher三个类,并实现了类的封装、继承和多态。

2. 通过测试,验证了类的封装和访问控制的有效性。

3. 通过测试,验证了类的继承和方法重写的有效性。

4. 通过测试,验证了类的多态的有效性。

六、实验总结通过本次实验,我深刻理解了面向对象编程的重要性和优势,掌握了Java语言中面向对象编程的基本概念和实践方法。

在今后的学习和工作中,我将继续加强对面向对象编程的理解和应用,不断提高自己的编程水平。

七、实验感想通过本次实验,我对Java面向对象编程有了更深入的了解,也更加熟练地掌握了面向对象编程的基本概念和实践方法。

java类与对象实验报告心得

java类与对象实验报告心得

java类与对象实验报告心得哇,做完这个Java类与对象的实验,真的是感触颇多呢。

在做这个实验之前呀,对于Java里的类和对象,我就只停留在理论知识上,觉得它们好抽象哦。

什么是类呢?就像是一个蓝图一样,描述了对象应该具有的属性和行为。

可那时候,我对这个概念也只是一知半解啦。

当开始做实验的时候,我才真正体会到其中的乐趣与挑战。

创建类的时候,我要去仔细思考这个类到底需要哪些属性。

就好比我要创建一个表示学生的类,那姓名、年龄、学号这些属性肯定是必不可少的呀。

这就像是在设计一个学生的模板一样,好有趣呢。

定义类中的方法也很有意思。

这些方法就像是这个类的功能一样。

比如说学生类中的学习方法,我可以在这个方法里编写一些代码来表示学生学习的过程。

刚开始写的时候,还老是出错呢,哎呀。

不是语法错误,就是逻辑上有点混乱。

不过这也是学习的过程嘛。

创建对象就像是根据这个蓝图来制造一个具体的东西。

我根据学生类创建了具体的学生对象,每个学生对象都有自己独特的属性值。

这就像是在现实生活中,每个学生都是独一无二的一样。

当我成功创建出这些对象并且让它们执行相应的方法时,那种成就感真的难以言表,哈哈。

在实验过程中,我还深刻体会到了封装的重要性。

把类的属性和方法封装起来,就像是给它们穿上了一层保护罩一样。

这样可以防止外部的代码随意修改类内部的数据,使得代码更加安全和可靠。

这让我觉得Java真的是一门很严谨的编程语言呢。

另外呀,类与类之间的关系也很复杂但又很有趣。

有继承关系,就像儿子类继承父亲类的属性和方法一样。

还有组合关系,一个类可以包含其他类的对象作为自己的属性。

理解这些关系的时候,我费了好大的劲呢,不过一旦理解了,就感觉像是打开了新世界的大门。

这次实验让我对Java类与对象的理解不再停留在书本上的文字,而是真正地可以运用它们来编写程序了。

我觉得自己在编程的道路上又前进了一大步呢。

希望以后还能做更多这样有趣又有挑战性的实验,让我可以更加熟练地掌握Java编程呀。

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类,并创建了多个对象。

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

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

Java类与对象实验报告

Java类与对象实验报告

实验报告一、实验项目:类与对象二、实验目的:1。

学会使用类来封装对象的属性和功能2. 掌握类变量与实例变量,以及类方法与实例方法的区别3。

掌握使用package和import语三、实验器材:计算机、Java编程软件JCreator四、实验原理(或仪器装置图):1. 类与对象类是组成Java程序的基本要素。

类封装了一类对象的状态和方法。

类是用来定义对象的模板。

类声明class 类名{类体}对象的声明一般格式为:类的名字对象名字;定义对象引用后,用new运算符完成对象的创建工作,分配存储空间,并对其初始化。

变量名=new 类名([构造方法实参表]);对象的使用访问成员的基本语法形式如下:对象名。

变量成员名对象名.方法成员名([实际参数表])2.成员变量和局部变量成员变量格式:[修饰符] 变量类型变量名[=初值];成员方法:格式:[修饰符]返回值的数据类型方法名(参数1,参数2,…){语句序列;return[表达式];}类中定义的变量是成员变量,而方法中定义的变量是局部变量。

3. 构造方法构造方法是一种特殊的方法,创建对象时被自动调用.与一般的方法不同,它没有返回值类型的说明,方法体中也不可以用return语句带回返回值。

构造方法的方法名与类名相同在构造方法中可以通过this关键字调用该类中其他的构造方法。

4。

包包是Java语言中有效地管理类的一个机制。

①通过关键字package声明包语句。

package 语句作为Java源文件的第一条语句,指明该源文件定义的类所在的包.package语句的一般格式为:package 包名;②import 语句:使用import 语句可以引入包中的类。

五、实验步骤及数据记录:1.定义一个圆柱体类Cylinder,并创建相应的对象,然后计算圆柱体的底面积与体积。

class Cylinder{double radius;int height;double pi=3.14;void area(){System。

java实验报告

java实验报告

java实验报告Java 实验报告一、实验目的本次 Java 实验的主要目的是通过实际编程操作,深入理解和掌握Java 语言的基本语法、面向对象编程的概念和方法,以及常用类库的使用。

同时,培养我们的问题解决能力、逻辑思维能力和代码规范意识,为今后的软件开发工作打下坚实的基础。

二、实验环境1、操作系统:Windows 102、开发工具:Eclipse IDE for Java Developers3、 JDK 版本:JDK 18三、实验内容本次实验共包括以下三个部分:1、 Java 基本语法练习变量与数据类型运算符与表达式控制流语句(ifelse、for、while、dowhile)数组2、面向对象编程实践类与对象的定义和使用构造函数与方法重载封装、继承与多态抽象类与接口3、 Java 常用类库应用String 类与字符串操作集合框架(ArrayList、HashMap)文件输入输出(File、FileReader、FileWriter)四、实验步骤及代码实现1、 Java 基本语法练习变量与数据类型:```javapublic class VariableDataType {public static void main(String args) {int age = 20;double salary = 50005;String name ="张三";boolean isStudent = true;Systemoutprintln("年龄:"+ age);Systemoutprintln("工资:"+ salary);Systemoutprintln("姓名:"+ name);Systemoutprintln("是否是学生:"+ isStudent);}}```运算符与表达式:```javapublic class OperatorExpression {public static void main(String args) {int num1 = 10;int num2 = 5;int sum = num1 + num2;int difference = num1 num2;int product = num1 num2;int quotient = num1 / num2;int remainder = num1 % num2; Systemoutprintln("和:"+ sum);Systemoutprintln("差:"+ difference);Systemoutprintln("积:"+ product);Systemoutprintln("商:"+ quotient);Systemoutprintln("余数:"+ remainder);}}```控制流语句:```javapublic class ControlFlowStatement {public static void main(String args) {// ifelse 语句int score = 80;if (score >= 90) {Systemoutprintln("优秀");} else if (score >= 80) {Systemoutprintln("良好");} else if (score >= 70) {Systemoutprintln("中等");} else if (score >= 60) {Systemoutprintln("及格");} else {Systemoutprintln("不及格");}// for 循环for (int i = 1; i <= 5; i++){Systemoutprintln("第" + i +"次循环");}// while 循环int j = 1;while (j <= 5) {Systemoutprintln("第" + j +"次 while 循环");j++;}// dowhile 循环int k = 1;do {Systemoutprintln("第" + k +"次 dowhile 循环");k++;} while (k <= 5);}}```数组:```javapublic class ArrayExample {public static void main(String args) {//一维数组int numbers ={1, 2, 3, 4, 5};for (int num : numbers) {Systemoutprintln(num);}//二维数组int matrix ={{1, 2, 3},{4, 5, 6},{7, 8, 9}};for (int row : matrix) {for (int num : row) {Systemoutprint(num +"");}Systemoutprintln();}}}```2、面向对象编程实践类与对象的定义和使用:```javapublic class Person {private String name;private int age;public Person(String name, int age) {thisname = name;thisage = age;}public void showInfo(){Systemoutprintln("姓名:"+ name +",年龄:"+ age);}public static void main(String args) {Person person1 = new Person("张三", 20);person1showInfo();}}```构造函数与方法重载:```javapublic class ConstructorOverloading {private String name;private int age;public ConstructorOverloading(String name) {thisname = name;}public ConstructorOverloading(String name, int age) {thisname = name;thisage = age;}public void showInfo(){if (age == 0) {Systemoutprintln("姓名:"+ name);} else {Systemoutprintln("姓名:"+ name +",年龄:"+ age);}}public static void main(String args) {ConstructorOverloading person1 = new ConstructorOverloading("张三");person1showInfo();ConstructorOverloading person2 = new ConstructorOverloading("李四", 25);person2showInfo();}}```封装、继承与多态:```java//父类class Animal {private String name;public Animal(String name) {thisname = name;}public void eat(){Systemoutprintln(name +"正在吃东西");}}//子类继承父类class Dog extends Animal {public Dog(String name) {super(name);}public void bark(){Systemoutprintln(name +"在叫");}}public class InheritancePolymorphism {public static void main(String args) {Animal animal = new Dog("小黑");animaleat();//向下转型为 Dog 类型调用 bark 方法if (animal instanceof Dog) {Dog dog =(Dog) animal;dogbark();}}}```抽象类与接口:```java//抽象类abstract class Shape {abstract void draw();}//实现抽象类的子类class Circle extends Shape {@Overridevoid draw(){Systemoutprintln("画一个圆");}}//接口interface Moveable {void move();}//实现接口的类class Car implements Moveable {@Overridepublic void move(){Systemoutprintln("汽车在移动");}}public class AbstractInterfaceExample {public static void main(String args) {Shape shape = new Circle();shapedraw();Moveable car = new Car();carmove();}}```3、 Java 常用类库应用String 类与字符串操作:```javapublic class StringOperation {public static void main(String args) {String str1 ="Hello, ";String str2 ="World!";String str3 = str1 + str2;Systemoutprintln(str3);int length = str3length();Systemoutprintln("字符串长度:"+ length);char charAt = str3charAt(5);Systemoutprintln("第 5 个字符:"+ charAt);boolean contains = str3contains("World");Systemoutprintln("是否包含 World:"+ contains);}}```集合框架(ArrayList、HashMap):```javaimport javautilArrayList;import javautilHashMap;import javautilMap;public class CollectionFramework {public static void main(String args) {// ArrayListArrayList<String> names = new ArrayList<>();namesadd("张三");namesadd("李四");namesadd("王五");for (String name : names) {Systemoutprintln(name);}// HashMapHashMap<String, Integer> ages = new HashMap<>();agesput("张三", 20);agesput("李四", 25);agesput("王五", 30);for (MapEntry<String, Integer> entry : agesentrySet()){Systemoutprintln(entrygetKey()+"的年龄是" +entrygetValue());}}}```文件输入输出(File、FileReader、FileWriter):```javaimport javaioFile;import javaioFileReader;import javaioFileWriter;import javaioIOException;public class FileIOExample {public static void main(String args) {//写入文件try (FileWriter writer = new FileWriter("outputtxt")){writerwrite("这是写入文件的内容");} catch (IOException e) {eprintStackTrace();}//读取文件try (FileReader reader = new FileReader("outputtxt")){int character;while ((character = readerread())!=-1) {Systemoutprint((char) character);}} catch (IOException e) {eprintStackTrace();}}}```五、实验结果与分析1、 Java 基本语法练习变量与数据类型:能够正确定义和使用各种数据类型的变量,并进行基本的运算和输出。

JAVA实验报告-实验3-类与对象-

JAVA实验报告-实验3-类与对象-

Java Object-Oriented Programming Experimental ReportSystem.out.println ("Your lucky numbers are " + lucky1 + ", " + lucky2+ ", and " + lucky3);}}3.2 Working with Strings(Choose to do)3.3 Rolling Dice3.4 Computing Distance3.5 formatting Output3.6 Playing with Cards(Choose to do)3.7 Experimenting with the Integer Class(Choose to do) 3.8 Nested Panels(1)宽度两倍(4)添加主界面宽度高度设定(5)添加MyPanels4.Experimental results and data processing5.Analysis and discussionScore: 6.Teacher ReviewsSignature:Date:Experimental Report List1Exercises1) Source code list3.3package test_java_03;import java.util.Random;public class point3_3 {public static void main(String[] args) {Random ger = newint lucky1, lucky2, lucky3;lucky1 = ger.nextInt(6)+1;lucky2 = (int)(ger.nextFloat()*6)+1;lucky3 = (int)(ger.nextFloat()*10)+20;System.out.print(lucky1+lucky2);}}3.4package test_java_03;import java.util.Scanner;public class point_3_4 {public static void main (String[] args){double x1, y1, x2, y2;double distance;Scanner scan = new Scanner(System.in);System.out.print ("Enter the coordinates of the first point " + "(put a space between them): ");x1 = scan.nextDouble();y1 = scan.nextDouble();System.out.print ("Enter the coordinates of the second point: ");x2 = scan.nextDouble();y2 = scan.nextDouble();doubley=Math.abs(y2-y1)*Math.abs(y2-y1),x=Math.abs(x2-x1)*Math.abs(x2-x1);double z=Math.sqrt(y+x);System.out.print("The distance between the two points is "+z);}}3.5package test_java_03;import java.util.*;import java.text.NumberFormat;import java.text.DecimalFormat;public class point_3_5 {public static void main (String[] args){final double OUNCES_PER_POUND = 16.0;double pricePerPound;double weightOunces;double weight;double totalPrice;Scanner scan = new Scanner(System.in);NumberFormat money=NumberFormat.getCurrencyInstance();DecimalFormat fmt=new DecimalFormat("0.#####");System.out.println ("Welcome to the CS Deli!!\n ");System.out.print ("Enter the price per pound of your item: ");pricePerPound = scan.nextDouble();System.out.print ("Enter the weight (ounces): ");weightOunces = scan.nextDouble();weight = weightOunces / OUNCES_PER_POUND;totalPrice = pricePerPound * weight;System.out.println("total price is:"+fmt.format(totalPrice));}}3.8(1)package test_java_03;import java.awt.*;import javax.swing.*;public class point_3_8 {public static void main (String[] args){JFrame frame = new JFrame ("Nested Panels");// Set up first subpanelJPanel subPanel1 = new JPanel();subPanel1.setPreferredSize (new Dimension(150, 100));subPanel1.setBackground (Color.green);JLabel label1 = new JLabel ("One");subPanel1.add (label1);// Set up second subpanelJPanel subPanel2 = new JPanel();subPanel2.setPreferredSize (new Dimension(150, 100));subPanel2.setBackground (Color.red);JLabel label2 = new JLabel ("Two");subPanel2.add (label2);JPanel subPanel3 = new JPanel();subPanel3.setPreferredSize (new Dimension(300, 100));subPanel3.setBackground (Color.black);JLabel label3 = new JLabel ("Three");subPanel3.add (label3);// Set up primary panelJPanel primary = new JPanel();primary.setBackground (Color.blue);primary.add (subPanel1);primary.add (subPanel2);primary.add (subPanel3);frame.getContentPane().add(primary);frame.pack();frame.setVisible(true);}}(4)package test_java_03;import java.awt.*;import javax.swing.*;public class point_3_8 {public static void main (String[] args){JFrame frame = new JFrame ("Nested Panels");// Set up first subpanelJPanel subPanel1 = new JPanel();subPanel1.setPreferredSize (new Dimension(150, 100));subPanel1.setBackground (Color.green);JLabel label1 = new JLabel ("One");subPanel1.add (label1);// Set up second subpanelJPanel subPanel2 = new JPanel();subPanel2.setPreferredSize (new Dimension(150, 100));subPanel2.setBackground (Color.red);JLabel label2 = new JLabel ("Two");subPanel2.add (label2);JPanel subPanel3 = new JPanel();subPanel3.setPreferredSize (new Dimension(300, 100));subPanel3.setBackground (Color.black);JLabel label3 = new JLabel ("Three");subPanel3.add (label3);// JPanel subPanel4 = new JPanel();// subPanel4.setPreferredSize(new Dimension(320,20));// subPanel4.setBackground(Color.orange);// JLabel label4 = new JLabel("My Panels");// subPanel4.add(label4);// Set up primary panelJPanel primary = new JPanel();primary.setBackground (Color.white);primary.setPreferredSize(new Dimension(320,260));//primary.add (subPanel4);primary.add (subPanel1);primary.add (subPanel2);primary.add (subPanel3);frame.getContentPane().add(primary);frame.pack();frame.setVisible(true);}}(5)package test_java_03;import java.awt.*;import javax.swing.*;public class point_3_8 {public static void main (String[] args){JFrame frame = new JFrame ("Nested Panels");// Set up first subpanelJPanel subPanel1 = new JPanel();subPanel1.setPreferredSize (new Dimension(150, 100));subPanel1.setBackground (Color.green);JLabel label1 = new JLabel ("One");subPanel1.add (label1);// Set up second subpanelJPanel subPanel2 = new JPanel();subPanel2.setPreferredSize (new Dimension(150, 100));subPanel2.setBackground (Color.red);JLabel label2 = new JLabel ("Two");subPanel2.add (label2);JPanel subPanel3 = new JPanel();subPanel3.setPreferredSize (new Dimension(300, 100));subPanel3.setBackground (Color.black);JLabel label3 = new JLabel ("Three");subPanel3.add (label3);JPanel subPanel4 = new JPanel();subPanel4.setPreferredSize(new Dimension(320,20));subPanel4.setBackground(Color.orange);JLabel label4 = new JLabel("My Panels");subPanel4.add(label4);// Set up primary panelJPanel primary = new JPanel();primary.setBackground (Color.white);primary.setPreferredSize(new Dimension(400,400));primary.add (subPanel4);primary.add (subPanel1);primary.add (subPanel2);primary.add (subPanel3);frame.getContentPane().add(primary);frame.pack();frame.setVisible(true);}}。

java实验报告实验原理

java实验报告实验原理

java实验报告实验原理Java实验报告实验原理一、引言Java是一种广泛使用的计算机编程语言,具有跨平台、面向对象、简单易学等特点。

在学习Java编程的过程中,实验是不可或缺的一部分。

本文将介绍Java实验的原理和相关知识。

二、实验环境搭建在进行Java实验之前,需要搭建相应的实验环境。

首先,需要安装Java Development Kit(JDK),这是Java开发的基础工具包。

其次,需要选择一个集成开发环境(IDE)来编写和运行Java程序,比如Eclipse、IntelliJ IDEA等。

最后,需要配置Java的环境变量,以便在命令行中能够直接运行Java程序。

三、实验原理1. Java的基本语法Java的语法规范包括数据类型、变量、运算符、控制语句等。

在Java实验中,我们需要掌握这些基本语法知识,以便正确编写和理解Java程序。

2. 面向对象编程Java是一种面向对象的编程语言,它支持封装、继承和多态等特性。

在实验中,我们需要理解面向对象的概念,并能够正确应用这些特性来解决实际问题。

3. 类和对象在Java中,类是对象的模板,用于描述对象的属性和行为。

对象是类的实例,具有独立的状态和行为。

在实验中,我们需要学会定义和使用类和对象,以及理解它们之间的关系。

4. 异常处理Java提供了异常处理机制,可以捕获和处理程序中的异常情况。

在实验中,我们需要学会使用try-catch语句来捕获异常,并进行相应的处理,以保证程序的稳定性和可靠性。

5. 输入输出Java提供了丰富的输入输出功能,可以从键盘读取输入,也可以将结果输出到控制台或文件中。

在实验中,我们需要学会使用Java提供的输入输出类和方法,以便与用户进行交互和展示程序的结果。

6. 集合框架Java的集合框架提供了一系列的数据结构和算法,用于存储和操作数据。

在实验中,我们需要学会使用集合框架提供的各种数据结构,比如List、Set、Map 等,以及相应的操作方法,比如添加、删除、查找等。

实验报告三(完整版)

实验报告三(完整版)

实验报告三实验三、对象和类〔一〕1.实验目的〔1〕结合面向对象思想掌握类的定义以及类中成员的定义,学会设计自己的类。

〔2〕掌握方法重载、尤其是构造方法的重载,深入理解构造函数的作用与调用时机。

附录2packagech3; publicclassPassValueTest{ privateinti=-100;〔3〕理解this关键字同static关键字的意义,掌握成员变量的具体隐藏实现。

〔4〕理解对象同对象引用间的区别,掌握创立对象与调用对象成员的方法,以及对象作为参数与根本数据类型变量做参数的区别。

publicvoidtest1(intb){b=100;2.实验内容和步骤}上机输入程序并调试运行程序。

编译并运行附件1和附件附录12,观察结果分析其原因。

publicvoidtest2(PassValueTestb){=100;packagech3;}publicclassClassLoadTest{static{System.out.println("classloding");publicvoidtest3(PassValueTestb){b=this;}publicstaticvoidmain(String[]args){}}}结果:原因:publicstaticvoidmain(String[]args){ PassValueTestobj=newPassValueTest(); inttemp=100;obj.test1(temp);System.out.println(temp);o1.nonstaticmethod();obj.test2(obj); StaticTesto2=newStaticTest();System.out.println(obj.i); o2.nonstaticmethod();}obj.i=100; */PassValueTestnewobj=newPassValueTest();obj.test3(newobj); publicvoidnonstaticmethod(){System.out.println(newobj.i);System.out.println("非静态方法被调用");} }}结果:publicstaticvoidstaticmethod(){原因:System.out.println("静态方法被调用");〔2〕编译附件3,分析结果;将“注释这行〞所在的行注释,再将注释的call2方法去掉注}释,再次编译,观察结果分析其原因。

java 实验报告结论

java 实验报告结论

java 实验报告结论Java实验报告结论Java是一种面向对象的编程语言,具有跨平台、安全性高、可靠性强等特点,在软件开发领域得到了广泛应用。

本篇文章将对Java实验进行总结和结论,探讨Java在实验中的优势和应用。

一、实验目的和方法本次实验的目的是通过编写Java程序,实现对学生信息的管理和操作。

实验方法主要包括设计类和对象、实现基本功能、进行测试和调试等。

二、实验结果经过实验,我们成功实现了学生信息管理系统。

该系统可以实现学生信息的录入、查询、修改和删除等功能,并具备良好的用户界面和操作体验。

三、Java的优势1. 跨平台性:Java程序可以在不同的操作系统上运行,如Windows、Linux、Mac等,极大地提高了软件的可移植性和兼容性。

2. 面向对象:Java是一种面向对象的编程语言,具有封装、继承和多态等特性,使得程序结构更加清晰、易于理解和维护。

3. 安全性高:Java具有严格的安全控制机制,可以防止恶意代码的执行,保护用户的计算机安全。

4. 可靠性强:Java具有自动内存管理和异常处理机制,有效地避免了内存泄漏和程序崩溃等问题,提高了程序的稳定性和可靠性。

5. 丰富的类库:Java拥有丰富的类库,提供了大量的API和工具,可以简化开发过程,提高开发效率。

四、Java在实验中的应用1. 类和对象设计:Java的面向对象特性使得类和对象的设计更加简洁和灵活,可以根据需求定义不同的类和对象,实现功能的模块化和复用。

2. 异常处理:Java的异常处理机制可以捕获和处理程序运行过程中的异常情况,提高程序的健壮性和容错性。

3. 用户界面设计:Java提供了Swing和AWT等图形界面库,可以方便地设计用户友好的界面,提升用户体验。

4. 数据库操作:Java可以通过JDBC等技术与数据库进行交互,实现数据的存储和读取,方便进行数据管理和操作。

五、实验总结通过本次实验,我们深入了解了Java的特性和应用,掌握了Java编程的基本原理和技巧。

java实验报告三类和对象

java实验报告三类和对象

计算机与信息学院实验报告系软件系专业软件工程年级08级成绩姓名学号实验室T312 机号48实验时间2010年11月1日下午3、4节教师签字实验(三)类和对象一、实验目的和要求1.掌握类的构造函数的重载2.深入理解类和对象3.学习NetBeans中UML项目的创建类并生成相应代码的方法二、实验内容和原理设计一个复数类,能够完成复数之间的基本运算,重写方法toString(),使其能输出此复数(形式为:实部 + 虚部i)。

要求设计的复数类必须有三个构造函数,分别为无参数、1个参数和2个参数的构造函数,完成的基本运算包括两个复数的加、减、乘、除法和共轭复数。

三、实验环境1.硬件环境:2.软件环境:JDK1.5四、算法描述及实验步骤1.算法描述(可以用类图、流程图、伪代码或源程序描述)2.实验步骤●创建一个UML项目,并设计类Complex如下图●创建一个Java应用项目●把UML项目中的Complex自动生成代码到Java应用项目中●实现Complex类中的方法●进行编译●进行测试,使用的测试用例:输入:预期输出:…五、调试过程1.编译过程记录算法实现中发现的语法错误及改正以下代码不能实现预期的结果:应该改成如下代码:2.调试过程记录算法实现中发现的逻辑错误及改正,对每个测试用例,记录实际输出,并与预期输出进行比较,如果不同,分析产生错误的原因并改正。

输入:预期输出:实际输出:分析与预期结果一致。

六、实验结果用与测试用例不同的输入数据运行算法,写出得到的结果,并分析结果是否正确。

第一组输入:第二组输入:第一组输出结果:第二组输出结果:结果分析:两组的输出结果都正确。

七、总结不应该一开始就考虑怎么编写代码,而是应该想好其框架。

注意语法上的错误,而逻辑上的错误在改正上有很大的难度,在这方面要多加交流。

附录:import javax.swing.*;public class Complex {private double realPart;private double imaginaryPart;public Complex(){realPart = Double.parseDouble(JOptionPane.showInputDialog("Please enter the realpart:"));imaginaryPart = Double.parseDouble(JOptionPane.showInputDialog("Please enter the imaginarypart:"));}public Complex(double realPart){this.realPart = realPart;this.imaginaryPart = 0;}public Complex(double realPart,double imaginaryPart){this.realPart = realPart;this.imaginaryPart = imaginaryPart;}public double getRealPart(){return this.realPart;}public void setRealPart(double val){realPart = val;}public double getimaginaryPart(){return this.imaginaryPart;}public void setimaginaryPart(double val){imaginaryPart = val;}public Complex plus(Complex complex){Complex c = new Complex(realPart + complex.realPart,imaginaryPart + complex.imaginaryPart);return c;}public Complex minus(Complex complex){Complex c = new Complex(realPart - complex.realPart,imaginaryPart - complex.imaginaryPart);return c;}public Complex times(Complex complex){Complex c = new Complex(realPart * complex.realPart - imaginaryPart * complex.imaginaryPart,realPart * complex.imaginaryPart + imaginaryPart * complex.realPart);return c;}public Complex divideBy(Complex complex){double t = complex.realPart * complex.realPart + complex.imaginaryPart * complex.imaginaryPart;Complex c = new Complex((realPart * complex.realPart + imaginaryPart * complex.imaginaryPart)/t,(imaginaryPart * complex.realPart - realPart * complex.imaginaryPart) / t);return c;}public Complex conjugate(){Complex c = new Complex(realPart,-imaginaryPart);return c;}public String toString(){String str = "";if(realPart != 0 && imaginaryPart > 0)return str+realPart+"+"+imaginaryPart+"i"+"\n";if(realPart != 0 && imaginaryPart < 0)return str+realPart+imaginaryPart+"i"+"\n";if(realPart == 0 && imaginaryPart != 0){return str+imaginaryPart+"i"+"\n";}if(realPart == 0 && imaginaryPart == 0){System.out.println("重新输入:");}return str+realPart+"\n";}public static void main(String[] args){Complex c1 = new Complex();Complex c2 = new Complex();String output = "两个复数:\n"+c1+"\n"+c2+"\n"+"两个复数相加:\n"+c1.plus(c2)+"两个复数相减:\n"+c1.minus(c2)+"两个复数相乘:\n"+c1.times(c2)+"两个复数相除:\n"+c1.divideBy(c2)+"c1的共厄复数:\n"+c1.conjugate()+"c2的共厄复数:\n"+c2.conjugate(); JOptionPane.showMessageDialog(null,output);}}。

java编程基础实验报告

java编程基础实验报告

java编程基础实验报告Java编程基础实验报告一、引言Java是一种广泛应用于软件开发领域的高级编程语言,具有跨平台的特性,因此备受开发者的青睐。

本篇实验报告将介绍我在学习Java编程基础过程中所进行的实验,并总结实验结果和心得体会。

二、实验目的本次实验的主要目的是通过编写Java程序,加深对Java编程语言的理解和掌握,提高编程能力和解决问题的能力。

三、实验内容1. 实验环境搭建在开始实验之前,我首先搭建了Java编程环境。

我选择了使用Eclipse作为集成开发环境(IDE),并安装了Java开发工具包(JDK)。

2. 实验一:Hello World程序在第一个实验中,我编写了一个简单的Hello World程序。

该程序的功能是在控制台输出"Hello, World!"。

通过这个实验,我熟悉了Java程序的基本结构和语法规则。

3. 实验二:变量和数据类型在第二个实验中,我学习了Java中的变量和数据类型。

我编写了一个程序,实现了两个整数相加并输出结果的功能。

通过这个实验,我掌握了Java中的基本数据类型和变量的声明和使用方法。

4. 实验三:条件语句和循环语句在第三个实验中,我学习了Java中的条件语句和循环语句。

我编写了一个程序,实现了判断一个数是否为偶数并输出结果的功能。

通过这个实验,我掌握了Java中的if语句和for循环语句的使用方法。

5. 实验四:数组和字符串在第四个实验中,我学习了Java中的数组和字符串。

我编写了一个程序,实现了对一个整型数组进行排序并输出结果的功能。

通过这个实验,我掌握了Java中数组的声明和使用方法,以及字符串的操作方法。

6. 实验五:面向对象编程在第五个实验中,我学习了Java中的面向对象编程。

我编写了一个程序,实现了一个简单的学生信息管理系统。

通过这个实验,我掌握了Java中类的定义和对象的创建与使用方法。

四、实验结果通过以上实验,我成功编写了各种Java程序,并在控制台输出了预期的结果。

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

Complex c1 = new Complex(); Complex c2 = new Complex(); String output = " 两 个 复 数 : \n"+c1+"\n"+c2+"\n"+" 两 个 复 数 相 加 : \n"+c1.plus(c2)+
" 两 个 复 数 相 减 : \n"+c1.minus(c2)+" 两 个 复 数 相 乘 : \n"+c1.times(c2)+
预期输出: 实际输出:
分析 与预期结果一致。
六、实验结果
用与测试用例不同的输入数据运行算法,写出得到的结果,并分析结果是否 正确。
第一组输入:
第二组输入: 第一组输出结果:
第二组输出结果: 结果分析:
两组的输出结果都正确。
七、总结
不应该一开始就考虑怎么编写代码,而是应该想好其框架。注意语法上的错误, 而逻辑上的错误在改正上有很大的难度,在这方面要多加交流。
realPart * complex.imaginaryPart + imaginaryPart * complex.realPart);
return c; } public Complex divideBy(Complex complex){
double t = complex.realPart * complex.realPart + complex.imaginaryPart * complex.imaginaryPart;
Complex c = new Complex((realPart * complex.realPart + imaginaryPart * complex.imaginaryPart)/t
,(imaginaryPart * complex.realPart - realPart * complex.imaginaryPart) / t);
imaginaryPart + complex.imaginaryPart); return c; } public Complex minus(Complex complex){ Complex c = new Complex(realPart - complex.realPart,
imaginaryPart - complex.imaginaryPart); return c; } public Complex times(Complex complex){ Complex c = new Complex(realPart * complex.realPart - imaginaryPart * complex.imaginaryPart,
this.realPart = realPart;
this.imaginaryPart = 0;
}
public Complex(double realPart,double imaginaryPart){
this.realPart = realPart;
this.imaginaryPart = imaginaryPart;
实现 Complex 类中的方法
进行编译
进行测试,使用的测试用例:
输入:
预期输出:

五、调试过程
1. 编译过程 记录算法实现中发现的语法错误及改正 以下代码不能实现预期的结果:
应该改成如下代码:
2. 调试过程 记录算法实现中发现的逻辑错误及改正,对每个测试用例,记录实际输出, 并与预期输出进行比较,如果不同,分析产生错误的原因并改正。 输入:
}
public void setimaginaryPart(double val){
imaginaryPart = val;
}
public Complex plus(Complex complex){
Complex c = new Complex(realPart + complex.realPart,
附录:
import javax.swing.*;
public class Complex {
private double realPart;
private doubllic Complex(){
realPart = Double.parseDouble(JOptionPane.showInputDialog("Please
return c; } public Complex conjugate(){
Complex c = new Complex(realPart,-imaginaryPart); return c; } public String toString(){ String str = ""; if(realPart != 0 && imaginaryPart > 0)
enter the realpart:"));
imaginaryPart
=
Double.parseDouble(JOptionPane.showInputDialog("Please
enter
the
imaginarypart:"));
}
public Complex(double realPart){
return str+imaginaryPart+"i"+"\n"; } if(realPart == 0 && imaginaryPart == 0){ System.out.println("重新输入:"); } return str+realPart+"\n"; } public static void main(String[] args){
计算机与信息学院实验报告

软件系 专业 软件工程
年级
08 级 成绩
姓名
学号
实验室
T312
机号
48
实验时间 2010 年 11 月 1 日下午 3、4 节
教师签字
实验(三) 类和对象
一、实验目的和要求
1. 掌握类的构造函数的重载 2. 深入理解类和对象 3. 学习 NetBeans 中 UML 项目的创建类并生成相应代码的方法
"两个复数相除:\n"+c1.divideBy(c2)+"c1 的共厄复数:\n"+ c1.conjugate()+"c2 的共厄复数:\n"+c2.conjugate(); JOptionPane.showMessageDialog(null,output); } }
}
public double getRealPart(){
return this.realPart;
}
public void setRealPart(double val){
realPart = val;
}
public double getimaginaryPart(){
return this.imaginaryPart;
return str+realPart+"+"+imaginaryPart+"i"+"\n"; if(realPart != 0 && imaginaryPart < 0)
return str+realPart+imaginaryPart+"i"+"\n"; if(realPart == 0 && imaginaryPart != 0){
二、实验内容和原理
设计一个复数类,能够完成复数之间的基本运算,重写方法 toString(),使 其能输出此复数(形式为: 实部 + 虚部 i)。
要求设计的复数类必须有三个构造函数,分别为无参数、1 个参数和 2 个参 数的构造函数,完成的基本运算包括两个复数的加、减、乘、除法和共轭复数。
三、实验环境
1. 硬件环境: 2. 软件环境:JDK1.5
四、算法描述及实验步骤
1. 算法描述(可以用类图、流程图、伪代码或源程序描述)
2. 实验步骤
创建一个 UML 项目,并设计类 Complex 如下图
创建一个 Java 应用项目
把 UML 项目中的 Complex 自动生成代码到 Java 应用项目中
相关文档
最新文档