java 实验二 类与对象初识 实验报告
- 格式:docx
- 大小:1.74 MB
- 文档页数:15
实验报告课程名称面向对象技术(Java)实验项目类和对象实验仪器个人计算机学院计算机学院专业计算机大类班级/学号学生姓名___ ___________实验日期2019/04/03指导教师___ _________实验项目二类和对象一、实验目标1.掌握类的定义和对象的创建以及使用方法;掌握UML类图的绘制。
2.掌握实例变量与静态变量、实例方法与静态方法的区别与使用。
3.掌握成员变量与局部变量的定义与使用。
4.理解和掌握面向对象技术的封装性,能够运用面向对象思想、术语和相关技术正确表达一般工程问题。
二、实验要求1.上机实验前,按照每一个实验题目的具体要求提前完成准备工作,如:查找资料、设计算法、写出全部源程序,做好预习笔记,做到有准备地上机。
2.上机实验课内,积极调试及修改程序。
上传程序到过程化考核平台/http://211.68.40.252:8008/3.上机实验课后,学生应根据实验数据及结果,完成实验报告。
实验报告是评定实验成绩的重要组成部分。
完成的实验报告交给课代表,课代表收齐本班的实验报告后统一交指导教师审阅评定。
三、实验环境硬件环境:个人电脑一台软件环境:JDK1.8及以上版本,NetBeans8.0及以上版本四、实验内容任务1 、定义一个名为Circle的类表示圆形。
这个Circle类包括:(1)一个名为radius的私有double型数据域,表示圆的半径。
radius的默认值为1。
(2)一个名为numberOfObjects的私有静态数据域,用于记录创建的圆对象的个数。
(3)一个无参构造方法。
(4)一个能指定radius的构造方法。
(5)一个名为getArea()的方法返回这个圆形的面积。
(6)一个名为getNumberOfObjects的类静态方法,返回已创建圆的个数。
(7)radius的set/get方法。
然后,编写一个测试程序。
要求在测试程序中:(1)创建一个半径为5.0的圆对象myCircle,并输出这个圆的半径及面积。
JAVA实验二类和对象实验报告实验目的:1.理解Java中类和对象的概念,学会类的定义和对象的创建。
2.学会类的封装、继承和多态性。
3.掌握Java中this和super关键字的使用。
实验内容:本次实验分为两个部分,一是编写Java类和对象,二是编写继承和多态性的代码。
第一部分:编写Java类和对象1.在Eclipse中,创建一个新的Java工程,并在该工程中创建一个名为“Student”的类。
2.在Student类中定义以下静态变量和实例变量:a.静态变量:schoolNameb.实例变量:name、age、gender、majora.无参构造方法:Student()b.有参构造方法:Student(String name, int age, String gender, String major)a.获取学生姓名:getName()f.设置学生年龄:setAge(int age)第二部分:编写继承和多态性的代码1.创建Person类,并在该类中定义以下实例变量:b.年龄(age)c.性别(gender)a.工号(employeeID)b.工资(salary)c.职位(position)d.静态变量:公司名称(company)5.在Employee类中定义以下构造方法:6.编写如下方法:d.设置工号:setEmployeeID(String employeeID)e.设置工资:setSalary(double salary)f.设置职位:setPosition(String position)a.复写Person类中的getName()方法,并返回该员工的姓名。
实验流程:注:此处省略了创建一个新的Java工程和类的步骤,我们可以通过“新建-项目-选择Java Project”然后在该项目中创建“Student”的类。
```javapublic class Student {private String name;private int age;private String gender;private String major;public static String schoolName = "XX大学";}``````javapublic Student() {}public void setName(String name) { = name;}// 创建一个Employee对象Employee employee = new Employee("李四", 30, "男", "001", 10000, "经理");// 输出学生信息System.out.println("学生信息:");System.out.println("姓名:" + student.getName());System.out.println("年龄:" + student.getAge());System.out.println("性别:" + student.getGender());System.out.println("专业:" + student.getMajor());System.out.println("学校:" + Student.schoolName);实验结果:通过以上代码,在控制台输出了学生和员工的信息:```学生信息:姓名:张三年龄:18性别:男专业:计算机科学与技术学校:XX大学员工信息:姓名:李四年龄:30性别:男工号:001工资:10000.0职务:经理公司:XX公司```结论:1.类和对象是Java程序设计的基础。
类与对象实验报告类与对象实验报告引言:类与对象是面向对象编程的基本概念,通过定义类和创建对象,可以实现对数据和行为的封装,使程序更加模块化和可扩展。
本实验旨在通过实际操作,加深对类与对象的理解,并掌握其基本用法。
实验过程:1. 定义类:在实验开始前,我们首先需要定义一个类。
类是对象的抽象描述,包含了对象的属性和方法。
以汽车为例,我们可以定义一个Car类,其中包含品牌、颜色和速度等属性,以及启动、加速和刹车等方法。
2. 创建对象:在定义了Car类之后,我们可以通过创建对象来实例化该类。
通过使用new关键字,我们可以创建多个汽车对象,每个对象都拥有独立的属性和方法。
例如,我们可以创建一个名为myCar的对象,它是Car类的一个实例。
3. 访问对象的属性和方法:创建了对象之后,我们可以通过点运算符来访问对象的属性和方法。
例如,通过myCar.brand可以获取myCar对象的品牌属性,通过myCar.start()可以调用myCar对象的启动方法。
这样,我们可以通过对象来操作和管理数据,使代码更加清晰和可读。
4. 对象之间的交互:在实际编程中,对象之间经常需要进行交互。
通过在类中定义方法,我们可以实现对象之间的数据传递和信息交流。
例如,我们可以定义一个方法来获取其他汽车对象的速度,并根据这些速度进行比较和判断。
实验结果:通过实验,我们深入了解了类与对象的概念和用法。
通过定义类和创建对象,我们可以更好地组织和管理代码,提高程序的可维护性和可扩展性。
通过访问对象的属性和方法,我们可以实现对数据和行为的封装,使代码更加模块化和易于理解。
通过对象之间的交互,我们可以实现数据的共享和协作,提高程序的效率和灵活性。
实验总结:类与对象是面向对象编程的核心概念,掌握了类与对象的基本用法对于开发高质量的程序至关重要。
通过本次实验,我们加深了对类与对象的理解,并通过实际操作掌握了其基本用法。
在以后的编程过程中,我们可以更加灵活地运用类与对象,提高代码的可读性和可维护性。
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. 理解Java类和对象的概念;2. 学会定义和使用Java类;3. 掌握创建和操作Java对象的方法;4. 熟悉Java类和对象的相关语法和规范。
三、实验过程1. 类的定义在Java中,类是对象的模板,用于描述对象的属性和行为。
我们首先需要定义一个类,以便创建对象。
类的定义包括类名、属性和方法。
属性即对象的特征,方法即对象的行为。
2. 对象的创建通过使用关键字"new",我们可以创建一个类的对象。
对象是类的实例化,每个对象都有自己的属性和方法。
3. 对象的属性和方法对象的属性和方法可以通过对象名加点操作符来访问。
属性可以是基本类型或其他类的对象,方法可以是对象的行为或功能。
4. 构造方法构造方法是一种特殊的方法,用于创建对象时进行初始化操作。
构造方法的名称必须与类名相同,没有返回类型,可以有参数。
5. 封装性封装性是面向对象编程的重要特性之一,它将数据和方法封装在类中,对外部隐藏内部实现细节。
通过使用访问修饰符(private, public, protected)来控制属性和方法的访问权限。
6. 继承继承是面向对象编程的另一个重要特性,它允许我们创建一个新类,并从现有类中继承属性和方法。
通过使用关键字"extends"来实现继承。
7. 多态性多态性是面向对象编程的核心概念之一,它允许我们使用一个父类类型的引用来引用子类的对象。
通过方法的重写和重载来实现多态性。
四、实验结果通过本次实验,我们成功定义了一个Java类,并创建了多个对象。
我们可以通过对象名来访问对象的属性和方法,并对其进行操作。
我们还学习了构造方法的使用,以及封装性、继承和多态性的相关概念。
上机实践2 类与对象实验1 学生类1.相关知识点:Java语言和其他面向对象语言一样,引入了类的概念,类是用来创建对象的模板,它包含被创建对象的属性和功能。
Java程序设计的基本单位是类(class),Java的源文件就是由若干个书写形式互相独立的类构成。
因此,要学习Java编程,就必须学会怎样去写类,即怎样用java的语法去表述一类事物共有的属性和功能。
类有两种基本的成员:变量和方法,变量用来刻画对象的属性,方法用来体现对象的功能跟,即方法使用某种算法操作变量来实现一个具体的功能。
2.实验要求:(1) 定义一个Java类来表示学生信息,类名为Student ,包含属性有:int类型的id(学号)、String类型的name(姓名)、double类型的grade(成绩)和int类型的age(年龄)。
(2)编写一个StudentTest类来创建并使用一个或多个Student对象,要求输出:学号姓名成绩年龄1 张三89 202 李四98 21(3) 修改学生类,将各个属性改为private类型的,然后添加相应的get和set方法用来获得和设置属性,然后修改StudentTest类通过get和set方法获得和设置属性。
(4)为学生类添加带参数的构造函数以便用户初始化对象的数据。
实验2 教材p61第10题实验3 三角形、梯形、和圆形的类封装1.实验目的:使用类封装对象的属性和功能2.实验要求:编写一个java类,该程序有3个类:Trangle、Lader和Circle,分别用来刻画“三角形”、“梯形”、“圆形”具体要求如下:●Trangle类具有类型为double的三个边,以及周长,面积属性,Trangle类具有返回周长、面积以及修改三个边的功能,另外Trangle类还具有一个boolean型的属性,该属性用来判断三个数能否构成一个三角形●Lader类具有类型为double的上底、下底、高、面积属性,具有返回面积的功能。
引言概述:实验目的:本次实验的主要目的是通过设计和实现一个简单的Java程序,加深对Java编程语言的理解,培养对面向对象编程思想的应用能力。
实验要求学生熟悉Java语法和类的基本概念,并能够正确运用这些知识编写出符合要求的程序。
实验过程:1.确定实验题目和要求:根据实验要求,确定需要实现的功能和要求,并理解题目中的各个概念和要求。
2.设计程序结构:根据题目要求和功能需求,设计程序的类结构、方法和变量。
要求合理设计类和对象的关系,充分运用封装、继承和多态等面向对象编程的特性。
3.编码实现:根据设计好的程序结构,使用Java语言进行编码实现。
编写各个类和方法的代码,确保代码的规范和可读性。
4.调试和测试:编写完代码后,进行充分的调试和测试工作。
确保程序能够正确运行并符合预期的功能需求。
5.优化和改进:对程序进行优化和改进,提高程序的性能和可维护性。
可以通过重构代码、增加异常处理等方式进行优化。
6.提交实验报告:实验完成后,撰写实验报告,对实验过程和结果进行总结和分析。
实验结果:实验结果表明,本次实验成功实现了所要求的功能。
通过对Java程序的设计和实现,我加深了对Java编程语言的理解,并掌握了Java程序的基本概念和语法。
同时,通过实验过程中的调试和测试工作,我对程序的错误处理和调试技巧也有了一定的了解和掌握。
实验分析:通过本次实验,我认识到了面向对象编程的重要性和优势。
在程序设计过程中,合理设计类和对象的关系,充分利用面向对象编程的特性,可以提高程序的可读性、可维护性和扩展性。
同时,对于Java编程语言的学习和理解也是很有必要的,它是一种广泛应用于软件开发的编程语言。
总结:本次实验是一次很好的学习和实践机会,通过对Java程序的设计和实现,我加深了对Java编程语言的理解,并掌握了Java程序的基本概念和语法。
在实验过程中,我收获了很多,对面向对象编程有了更深刻的理解,也对程序的调试和测试有了更多的经验。
java实验2实验报告1Java 实验 2 实验报告一、实验目的本次 Java 实验 2 的主要目的是通过实际编程操作,深入理解和掌握Java 语言中的一些重要概念和技术,包括面向对象编程的基本思想、类和对象的创建与使用、方法的定义与调用,以及异常处理等方面的知识。
通过实践,提高我们的编程能力和解决问题的能力。
二、实验环境本次实验使用的开发工具是 IntelliJ IDEA,Java 版本为 JDK 18。
操作系统为 Windows 10。
三、实验内容1、设计一个简单的学生类(Student)包含学生的姓名(name)、学号(studentID)、年龄(age)等属性。
定义构造方法用于初始化学生对象的属性。
定义获取和设置学生属性的方法。
2、实现一个计算学生平均年龄的方法接受一个学生对象数组作为参数。
计算并返回学生的平均年龄。
3、异常处理在计算平均年龄的方法中,处理可能出现的除数为 0 的异常情况。
四、实验步骤1、创建学生类(Student)```javapublic class Student {private String name;private int studentID;private int age;public Student(String name, int studentID, int age) {thisname = name;thisstudentID = studentID;thisage = age;}public String getName(){return name;}public void setName(String name) {thisname = name;}public int getStudentID(){return studentID;}public void setStudentID(int studentID) {thisstudentID = studentID;}public int getAge(){return age;}public void setAge(int age) {thisage = age;}}```2、计算平均年龄的方法```javapublic class AverageAgeCalculator {public double calculateAverageAge(Student students) {int totalAge = 0;int studentCount = studentslength;for (Student student : students) {totalAge += studentgetAge();}if (studentCount == 0) {throw new ArithmeticException("除数不能为 0,学生数组为空。
实验二:类与对象一、实验目的1.掌握面向对象程序设计的方法和Java作为面向对象程序设计语言的特点;2.掌握如何构造一个类和如何创建一个对象,了解类与对象的关系;3.掌握修饰符和构造方法的使用规则;4.掌握如何创建包,通过包如何管理类;二、实验要求1.编写一个体现面向对象思想的程序。
2.编写一个创建对象和使用对象的方法的程序。
3.编写不同成员变量、成员方法修饰方法的程序。
4.编写创建自定义包的程序。
三、实验内容(一)创建 Applet 应用小程序1.创建一个Applet 应用程序SY2_1.java 文件。
●程序功能:建立一个Applet 小程序,使其可以进行简单的加法运算。
该程序要包含类、接口、属性、方法、事件等面向对象的基本元素。
●程序源代码如下:import java.awt.*;import java.awt.event.*;import java.applet.Applet;public class SY2_1 extends Applet implements ActionListener {Label label1=new Label("+");Label label2=new Label("=");TextField field1=new TextField(6);TextField field2=new TextField(6);TextField field3=new TextField(6);Button button1=new Button("相加");public void init() { // 初始化add(field1);add(label1);add(field2);add(label2);add(field3);add(button1);button1.addActionListener(this);}public void actionPerformed(ActionEvent e) { // 处理按钮事件intx=Integer.parseInt(field1.getText())+Integer.parseInt(field 2.getText());field3.setText(Integer.toString(x)); // 数值转换为字符串}}2.编写一个浏览Applet 应用程序的页面文件SY2_1.HTML,源代码如。
JAVA类与对象实验报告范文(2)西安财经学院信息学院《Java程序设计》实验报告姓名学号班级年级指导教师实验名称类与对象实验室实验楼521实验日期2022年4月10日类与对象一、实验目的1、掌握类的定义和使用,编写构造方法及成员方法。
2、能够创建类的实例,掌握对象的声明和不同访问属性的成员访问方式。
3、会定义接口、实现接口。
二、实验内容1.在java中,定义一个接口,声明计算图形面积和周长的抽象方法,再用类去实现这个接口,再编写一个测试类去使用这个接口。
2.设计并实现一个课程类,代表学校中的一门课程,将这门课程的相关信息组成该类的属性(如课程代码、课程名称、课程类别、学时、学分等),并在类中定义各个属性相关的访问方法(如获取和设置课程代码、课程名称,课程类别,获取和修改学时、学分,打印输出课程基本信息等),最后使用主函数测试此类(包括创建对象,调用相应方法等)。
三、实验环境以Window环境为平台,使用JDK5.0四、实验步骤第1页共6页第2页共6页五、实验结果六、小结通过掌握类的定义和使用,编写构造方法并且实现创建类的实例,掌握对象的声明和不同访问属性的成员访问方式以及定义接口、实现接口,通过此次实验让我发现了我对类的定义及其运用都不够熟练,对课本的熟悉度还远远不够,在课后应该及时的复习和上机操作是我们的必修课,这样才能让我们进一步的掌握类与对象。
第3页共6页七、源程序1、interfaceShape{//定义Shape接口finaldoublepi=3.14;//数据成员一定要初始化publicabtractdoublearea();publicabtractdoublegirth();//抽象方法,不需要定义处理方式}claCircleimplementShape{}publicclaInterfaceTeter{publictaticv oidmain(Stringarg[]){Circlecir=newCircle(3.0);Sytem.out.println(\第4页共6页doubleradiu;publicCircle(doubler){//构造方法}publicdoublearea(){}publicdoublegirth(){}return(2某pi某radiu);return(pi某radiu某radiu);radiu=r;}}Sytem.out.println(\2、publicclaCoure{privateStringcoureCode;//定义课程代号privateStringcoureName;//定义课程名称privateStringcoureType;//定义课程类别privateintclaHour;//定义课程学时privatefloatcredit;//定义课程学分publicCoure(StringcoureCode,StringcoureName,StringcoureType,intc laHour,floatcredit){thi.coureCode=coureCode;thi.coureName=coureN ame;thi.coureType=coureType;thi.claHour=claHour;thi.credit=credi t;}StringgetCode(){returncoureCode;}voidetCode(Stringcode){thi.c oureCode=code;}StringgetName(){returncoureName;}voidetName(Strin gname){thi.coureName=name;}第5页共6页StringgetType(){returncoureType;}voidetType(StringcoureType) {thi.coureType=coureType;}intgetClaHour(){returnclaHour;}voidetC laHour(intclaHour){thi.claHour=claHour;}floatgetCredit(){returnc redit;}voidetCredit(floatcredit){thi.credit=credit;}publicvoidpr int(){Sytem.out.println(\Sytem.out.println(\Sytem.out.println(\S ytem.out.println(\Sytem.out.println(\Sytem.out.println(\Sytem.ou t.println(\}publictaticvoidmain(String[]arg){Courec=newCoure(\Sytem.out.println(\c.print();Sytem.out.println(\c.etCredit(6.0f);c .print();}}第6页共6页。
Java实验报告_实验⼆实验2 类和对象【实验宗旨】每天做⼀点编程练习。
【实验⽬的】1、学习和掌握Java创建对象的⽅法。
2、学习和掌握通过创建对象、使⽤类的⽅法。
3、学习和掌握Java类定义的⽅法。
4、了解类设计的⼀般原则。
【实验内容】1、(Java API类的应⽤)使⽤java.util.Random类,创建种⼦是1000的Random对象,然后使⽤nextInt(100)⽅法显⽰0到100 之间前50个随机整数。
【实验预习】创建Random对象,含有1000个种⼦,然后输出其中的前50个⽆输⼊,创建Random random = new Random(1000);利⽤for循环输出前50的随机数。
【实验过程及结果记录】import java.util.Random;public class JavaText {public static void main(String[] args) {Random random = new Random(1000);for (int i = 0; i < 50; i++)System.out.print(random.nextInt(100) + " ");}}【实验总结】练习产⽣随机数的⽅法(Random).2.(使⽤StackOfIntegers类,显⽰素数因⼦)编写⼀个程序,提⽰⽤户输⼊⼀个正整数,然后以降序显⽰它的所有最⼩因⼦。
例如:如果整数为120,那么显⽰的最⼩因⼦为5、3、2、2、2。
使⽤StackOfIntegers类存储因⼦(如:2、2、2、3、5),获取之后按倒序显⽰这些因⼦。
【实验预习】练习类的调⽤,使⽤StackOfIntegers类【实验过程及结果记录】import java.util.*;import java.awt.*;import javax.swing.*;public class zhiyinshu{public static void main (String[] args) {StackOfIntegers h1 =new StackOfIntegers(); StackOfIntegers h2 =new StackOfIntegers();String str=JOptionPane.showInputDialog(null,"请输⼊⼀个正整数","分解质因数",JOptionPane.QUESTION_MESSAGE); int yuanshu = Integer.parseInt(str);int i=2;int b=0;int c=0;do{i=2;b=0;do{if(yuanshu%i==0){yuanshu=yuanshu/i;h1.jilu(i);b=1;}i++;}while(b==0&&i}while(ih1.jilu(yuanshu);c=h1.getsize();for(int v=0;vh2.jilu(h1.esc());for(int v=0;vSystem.out.print(""+h2.esc()+"\n"); }}class StackOfIntegers {private int size;private int[] zhan;public static final int a=16;public StackOfIntegers(){this(a);}public StackOfIntegers(int n){zhan = new int[n];}public void jilu(int up) {if(size>=zhan.length){int[] temp = new int[zhan.length * 2];System.arraycopy(zhan,0,temp,0,zhan.length);zhan=temp;}zhan[size++]=up;}public int esc(){return zhan[--size];}public int getsize(){return size;}}【实验总结】练习了创建随机数的⽅法以及Java的输出⽅法,在编码的过程中还是经常出现⼤⼩写打错的情况。
实验二类与对象初识【实验目的】1. 理解类的构造、属性、方法及实例化的使用;2. 学会对类的创建,构造函数的使用,类属性及方法的创建,以及类的实例化及使用;3. 会对类的创建,类的属性及方法的创建进行独立编程;4. 学会对较复杂的类进行分析;5. 掌握使用package和import语句;6. 理解uml类图,尝试使用简单uml工具。
【实验任务】注意:1,本章所有自己创建的类都必须创建到自己的包中,创建规则见课件或自行参考资料;2,本章所有自己创建的类都需附上UML类图截图。
例1:根据java代码生成单个文件(或单个类)的类图本实验以HelloWorld.java这个文件为例,其代码及生成的类图的结果截图如下:以下为UML截图:例2:根据java代码生成多个类之间(可以在同一文件也可以是不同文件)的关系图本实验创建一个HW1类,继承HelloWorld类,即父类与子类的关系,HW1代码见下:然后我把HelloWorld跟HW1两个类分别拖到newfile.cld的编辑窗口,其结果截图如下:实验2-1、给出下面的程序运行结果输出?并解释问题出在哪里?public class My {String s;public void My(){s = "Constructor";}public void go() {System.out.println(s);}public static void main(String args[]) {My m = new My();m.go();}}首先,新建一个类,并将上述代码输入,其运行结果截图如下:然后根据运行提示,将其更改为构造函数,即删除掉void,因为构造方法没有返回类型(修饰符void也不能有),改完程序就能运行并得出正确结果,其截图如下:该程序的UML类图截图如下:实验2-2、课本64页例24,完成BankAccount类以及AccountTester2类,这个例子集中体现了本章2.2-2.5的知识点,注意测试时请使用跟书本不一样测试数据。
实验报告【实验名称】第二章类和对象【实验目的】1.学习Java的基本语法2.学习Java的运算符和控制语句3.学习类和对象的概念【实验原理】1.Java程序设计基本原理2.面向对象程序设计基本原理【实验内容】一、填空题1. System.out.println(“12”+ 5);语句的输出结果是 125 。
2. Java语言中“2.5%1.2”的运算结果是 0.1 。
二、简答1. 为什么类成员方法只能操作类成员变量,而不能操作实例变量?[解答]因为类方法是静态方法,静态方法在加载class的时候就会初始化,而非静态成员(实例成员)还未进行初始化,所以类成员方法只能操作类成员变量,而不能操作实例变量。
2. 简述指针和引用有什么区别?[解答]指针表示的是地址,引用表示的也是地址,但是指针可以进行修改,引用则不能进行改动。
并且使用指针具有三大缺点,指针指向的内存并不是我们所需要的内存、指针所访存的内存空间是不允许被访存的、指针访存的空间并不存在。
三、实验题1. 指出程序中的错误,并修正public class Example{public static void main(String args[]){int a=1.0;float fa=216;float fb=21.656f;double da=125e45d;double db=123.45;float fc=0.1;}}[解答]:int a=1.0 修改为 double a=1.0 (float型比int型级别高)float fc=0.1 修改为 double fc=0.1 (double的类型比float级别高)2.写出如下程序输出结果,并说明原因public class E_c{public static void main(String args[]){String sx1="my";String sx2="god";char cx='a';System.out.println(sx1+sx2);System.out.println(sx2+cx);System.out.println(sx1+5);System.out.println(cx+5);}}结果:mygodgodamy5102原因:因为在输出内容包含字符串的时候,输出结果就全部为字符串,因此前三个结果为字符,第四个并不是,c的ascii为97,所以结果为1023、把如下程序改成从键盘输入两个整数,并判断大小。
java类与对象实验报告《Java类与对象实验报告》实验目的:本实验旨在帮助学生理解和掌握Java中类与对象的概念,以及如何创建和使用它们。
通过实际操作,学生将能够加深对类与对象的理解,并掌握如何在程序中正确地使用它们。
实验内容:1. 创建一个简单的Java类,包括成员变量和成员方法。
2. 创建该类的对象,并调用其成员方法。
3. 理解类与对象之间的关系,以及如何通过对象访问类的成员变量和成员方法。
4. 掌握类的继承与多态的概念,以及如何在程序中应用它们。
实验步骤:1. 首先,我们创建一个名为“Person”的Java类,该类包括姓名和年龄两个成员变量,以及一个打印个人信息的成员方法。
2. 接下来,我们创建一个名为“Main”的主类,在该类中创建“Person”类的对象,并调用其成员方法打印个人信息。
3. 然后,我们创建一个名为“Student”的子类,继承“Person”类,并重写其打印个人信息的方法。
4. 最后,我们创建“Main”类的另一个对象,分别用“Person”类和“Student”类的对象调用成员方法,观察多态的效果。
实验结果:通过本次实验,我们成功创建了一个简单的Java类,并在程序中正确地使用了它。
我们也理解了类与对象之间的关系,以及如何通过对象访问类的成员变量和成员方法。
此外,我们还掌握了类的继承与多态的概念,并成功在程序中应用它们。
结论:本次实验使我们更加深入地理解了Java中类与对象的概念,以及如何正确地创建和使用它们。
通过实际操作,我们掌握了类的继承与多态的概念,并成功在程序中应用它们。
这将为我们今后的学习和工作打下坚实的基础。
实验二类与对象初识【实验目的】1. 理解类的构造、属性、方法及实例化的使用;2. 学会对类的创建,构造函数的使用,类属性及方法的创建,以及类的实例化及使用;3. 会对类的创建,类的属性及方法的创建进行独立编程;4. 学会对较复杂的类进行分析;5. 掌握使用package和import语句;6. 理解uml类图,尝试使用简单uml工具。
【实验任务】注意:1,本章所有自己创建的类都必须创建到自己的包中,创建规则见课件或自行参考资料;2,本章所有自己创建的类都需附上UML类图截图。
例1:根据java代码生成单个文件(或单个类)的类图本实验以HelloWorld.java这个文件为例,其代码及生成的类图的结果截图如下:以下为UML截图:例2:根据java代码生成多个类之间(可以在同一文件也可以是不同文件)的关系图本实验创建一个HW1类,继承HelloWorld类,即父类与子类的关系,HW1代码见下:然后我把HelloWorld跟HW1两个类分别拖到newfile.cld的编辑窗口,其结果截图如下:实验2-1、给出下面的程序运行结果输出?并解释问题出在哪里?public class My {String s;public void My(){s = "Constructor";}public void go() {System.out.println(s);}public static void main(String args[]) {My m = new My();m.go();}}首先,新建一个类,并将上述代码输入,其运行结果截图如下:然后根据运行提示,将其更改为构造函数,即删除掉void,因为构造方法没有返回类型(修饰符void也不能有),改完程序就能运行并得出正确结果,其截图如下:该程序的UML类图截图如下:实验2-2、课本64页例24,完成BankAccount类以及AccountTester2类,这个例子集中体现了本章2.2-2.5的知识点,注意测试时请使用跟书本不一样测试数据。
本实验我采用了一个类放在一个文件中,并更改了测试数据,其代码及运行结果还有UML 图见下:BankAccount2类的代码如下:package jz;enum Grade{VIP,General;}public class BankAccount2 {private static int LAST_ACCOUNT_NUMBER=0;private int accountNumber;private String ownerName;private float balance;Grade grade;public BankAccount2(){this("",0,Grade.General);}public BankAccount2(String initName){this(initName,0,Grade.General);}public BankAccount2(String initName,float initBal,Grade g){ownerName=initName;accountNumber=++LAST_ACCOUNT_NUMBER;balance=initBal;grade=g;}public static BankAccount2 example1(){BankAccount2 ba=new BankAccount2();ba.setOwnerName("LiHong");ba.deposit(3000);return ba;}public static BankAccount2 example2(){BankAccount2 ba=new BankAccount2();ba.setOwnerName("ZhaoWei");ba.deposit(4000);ba.deposit(5000);return ba;}public static BankAccount2 emptyAccountExample(){BankAccount2 ba=new BankAccount2();ba.setOwnerName("HeLi");return ba;}public int getAccountNumber(){return accountNumber;}public String getOwnerName(){return ownerName;}public float getBalance(){return balance;}public void setOwnerName(String aName){ownerName=aName;}public float deposit(float anAmount){balance+=anAmount;return balance;}public float withdraw(float anAmount){if(anAmount<=balance){balance-=anAmount;}return anAmount;}public String toString(){return(grade+"account #"+newjava.text.DecimalFormat("000000").format(accountNumber)+"with balance"+new java.text.DecimalFormat("$0.00").format(balance));}}AccountTester2类代码如下:package jz;public class AccountTester2 {public static void main(String[] args){BankAccount2 bobsAccount,marysAccount,biffsAccount;bobsAccount=BankAccount2.example1();marysAccount=BankAccount2.example1();biffsAccount=BankAccount2.example2();marysAccount.setOwnerName("Mary");marysAccount.deposit(250);System.out.println(bobsAccount);System.out.println(marysAccount);System.out.println(biffsAccount);}}实验结果截图如下:该实验的UML类图截图如下:实验2-3、课本74页习题第10题。
Patient类代码:package jz;public class Patient{private String name;private char sex;private int age;private float weight;private boolean allergies;public void setname(String a){name=a;}public void setsex(char b){sex=b;}public void setage(int c){age=c;}public void setweight(float d){weight=d;}public void setallergies(boolean e){allergies=e;}public String getname(){return name;}public char getsex(){return sex;}public int getage(){return age;}public float getweight(){return weight;}public boolean getallergies(){return allergies;} }Test类的代码:package jz;public class test {public static void main(String args[]){Patient april=new Patient();april.setname("Zhaowei");april.setsex('m');april.setage(27);april.setweight(174.36f);april.setallergies(true);System.out.println("Name: "+april.getname()); System.out.println("sex: "+april.getsex()); System.out.println("age: "+april.getage()); System.out.println("weight: "+april.getweight()); System.out.println("allergies: "+april.getallergies()); april.setname("林珊");april.setsex('女');april.setage(36);april.setweight(162);april.setallergies(false);System.out.println("姓名: "+april.getname()); System.out.println("性别: "+april.getsex()); System.out.println("年龄: "+april.getage()); System.out.println("体重: "+april.getweight()); System.out.println("是否过敏: "+april.getallergies()); }}本实验的运行结果截图如下:其UML类图截图如下:实验2-4、课本74页习题第11题。
ComplexNumber类代码如下:package jz;public class ComplexNumber {private float a;private float b;public String toString(){if(a!=0)return(a+"i"+"+"+b);else return(""+b);}public ComplexNumber(float a,float b) {this.a=a;this.b=b;}public void Add(ComplexNumber p){this.a+=p.a;this.b+=p.b;System.out.println("a+b=");}public void Decrease(ComplexNumber p) {this.a-=p.a;this.b-=p.b;System.out.println("a-b=");}public void Multiply(ComplexNumber p){this.a=this.a*p.a;this.b=this.b*p.b;System.out.println("a*b=");}}Numbertester代码如下:package jz;public class NumberTester {public static void main(String args[]){ComplexNumber a=new ComplexNumber(4,8);ComplexNumber b=new ComplexNumber(10,12);a.Add(b);System.out.println( a.toString()+"\n");a.Decrease(b);System.out.println(a.toString()+"\n");a.Multiply(b);System.out.println(a.toString()+"\n"); }}实验结果截图如下:其UML类图截图如下:实验2-5、课本74页习题第14题。