实验报告二 类和对象 截止时间9月30日

您所在的位置:网站首页 编写java源程序 实验报告二 类和对象 截止时间9月30日

实验报告二 类和对象 截止时间9月30日

#实验报告二 类和对象 截止时间9月30日| 来源: 网络整理| 查看: 265

一、实验目的及要求 1.实验目的

1)掌握Java语言中类的定义、基本格式、构造方法和对象的建立等。

2)掌握Java语言中三大特性中的封装性,用类封装对象的属性和行为。

3)掌握类方法与实际方法的区别,同时了解类变量与实际变量的区别。

4)掌握Java中方法的几乎所有参数的传值机制和不同类型参数的传值。

5)掌握方法的重载,体会多态思想的运用。

2.实验要求

1) 理解并掌握类与对象的各种基本概念,要求会定义类和创建对象。

2)了解并使用类的构造方法,了解有参构造与无参构造的区别,定义类并创建对象。

3)熟悉Java语言中的三大特性特点,并在实验步骤中体现封装性。

4)实验中实现并显示类方法与实际方法的区别。

5) 在实验步骤和代码中体现方法的参数传递等。

6)将实验中的心得体会和代码实现过程中出现的错误进行分析、总结,并完成实验报告。

3.上机实验内容:

1)定义类和创建对象,完成方法重载操作

2)通过对象的组合、参数传值,完成具体程序功能

3)或者通过类与对象展示类变量与实例变量、以及类方法与实例方法之间的区别

4)完成实验报告。

二、实验环境

工具、配置等

硬件要求:计算机一台

软件要求:Windows操作系统,使用Java语言,集成开发环境不限,建议使用如Eclipse、MyEclipse或IntelliJ IDEA等。

三、实验内容 实验方案

1. 现有 Teacher 类和 Student 类继承 User 类,User 类及其子类均通过 work() 方法来进行工作,教师给学生上课,则是教师和学生都调用 work()方法,请实现 Teacher 类和 Student 类的 work() 方法。

(本题实现:定义类,创建对象,方法重载,参数传值,实现程序具体功能,体现面向对象编程中类的继承思想)

运行正确的代码后,控制台应返回结果:

Tom is learning Jerry is teaching

2.

课本例题8.圆锥的底是一个圆,即圆锥有一个圆形的底。圆锥对象在计算体积时首先委托圆锥的底 bottom(一个circle 对象)调用getArea()方 法计算底的面积,然后圆锥对象再计算出自身的体积

四、实验结果与分析

实验思路:

1. 创建user类作为基类,定义work方法和behavior变量

2. 编写student和teacher类

3. 在主函数中调用子类的方法完成要求

运行结果截图: 图片描述

实验思路

1. Circle类创建圆的对象。

2. Circular 类创建圆锥对象,Circular类将Circle类声明的对象作为自己的一个成员。

3. 圆锥通过调用方法将某个圆的引用传递给原罪的Circle类型的成员变量。

运行结果截图:

图片描述

1.实验遇到的问题: 重载时只修改了函数的返回值报错。 静态方法的调用报错。 2.问题解决的方法: 返回值不同不能重载,重载条件为必须返回值相同,参数不同 应该用类名调用。 五、附源程序

第一题

//User.java public class User { String name = new String(); String behavior = new String(); public static void main(String[] args) { Teacher tom = new Teacher("tom"); tom.work(); System.out.println("tom is " + tom.behavior); Student jerry = new Student("jerry"); jerry.work(); System.out.println("jerry is "+jerry.behavior); } } //Teacher.java public class Teacher extends User { public Teacher(String name) { this.name = name; } public void work(){ behavior="teaching"; } } //Student.java public class Student extends User { public Student(String name) { this.name = name; } public void work(){ behavior="learning"; } }

第二题

//Main.java public class Main { public static void main(String[] args) { Circle circle=new Circle(); circle.setRadius(10); Cirular circlal=new Cirular(); System.out.println("circle的引用"+circle); System.out.println("圆锥的bottom的引用"+circlal.bottom); circlal.setHeight(5); circlal.setBottom(circle); System.out.println("circle的引用:"+circle); System.out.println("圆锥的bottom的引用"+circlal.bottom); System.out.println("圆锥的体积"+circlal.getVolume()); System.out.println("修改circle的半径,bottom的半径同样变化"); circle.setRadius(20); System.out.println("bottom的半径:"+circlal.getBottomRadius()); System.out.println("重新创建circle,circle的引用将变化"); circle=new Circle(); System.out.println("circle的引用:"+circle); System.out.println("但是不影响circular的bottom的引用"); System.out.println("圆锥的bottom的引用:"+circlal.bottom); } } //Cirular.java public class Cirular { Circle bottom; double height; void setBottom(Circle c){ bottom=c; } void setHeight(double h){ height=h; } double getVolume(){ if(bottom==null) return -1; else return bottom.getArea()*height/3.0; } double getBottomRadius(){ return bottom.getRadius(); } public void setBottomRadius(double r){ bottom.setRadius(r); } } //Circle.java public class Circle { double radius,area; void setRadius(double r){ radius=r; } double getRadius(){ return radius; } double getArea(){ area=3.14*radius*radius; return area; } }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3