实验三:类与对象的定义与使用
1.实验目的
(1) 理解 Java 语言的面向对象编程基本思想,掌握OOP方法
(2) 掌握类的声明、对象的创建方法
(3) 理解类的构造方法的作用,并掌握构造方法的定义与重载
(4) 理解成员变量与成员方法的特性,并掌握它们的定义与调用方法
(5) 理解并记忆类及其成员的访问控制符的作用,并会熟练使用
(6) 了解UML的作用与如何在Eclipse中进行UML建模
2.实验内容
(1) 定义一个圆类Circle,该圆类的数据成员包括:圆心点位置及圆的半径;
方法成员有:设置圆心位置和半径的方法,获取圆心位置和半径的方法,无参的构造方法初始化圆心位置为(0,0),半径为1。另外定义一个构造方法可以接收圆心位置与半径的参数。编写测试类创建Circle类的对象,并且分别调用各种方法,对比这些方法的执行结果。
(2) 定义一个矩形类MyRectangle,类中有4个私有的整型变量,分别是矩形的左上角坐标(xUp,yUp)和右下角坐标(xDown,yDown);类中定义没有参数的构造方法和有4个int参数的构造方法,用来初始化类对象。类中还有以下方法: getW( )——计算矩形的宽度;getH( )——计算矩形的高度;area( )——计算矩形的面积;toString( )——把矩形的宽、高和面积等信息作为为字符串返回。编写应用程序创建MyRectangle类的对象并输出矩形对象的信息。
(3)
一个长方体类MyCube,该类包含第2题中的MyRectangle类对象作为类的成员变量,
示长方体的底面;此外还包含一个整型变量d,表示长方体的高。类中定义构造方法初始化类对象、定义求体积和表面积的方法。编写应用程序测试MyCube类。
(4) 对于第2、3题的类分别用类的访问修饰符public与无修饰符定义,同时把它们声明在同一个包中、不同的包中,分析程序的编译情况,理解类及其成员的访问控制符的作用。
(5) 设计一个表示用户的User类,类中的变量有用户名、口令(私有的)和记录用户个数的变量(静态的),定义类的3个构造方法(没有参数、有一个参数给用户名赋值、有两个参数给用户名和口令赋值)、获取和设置口令的方法、返回字符串表示的类信息(包括用户名、口令)的方法。编写应用程序测试User类。
(6) 应用程序中定义方法头如下所示的方法:
static int[] add(int[] x, int[] y)
static int[] multi(int[] x, int[] y)
add方法的功能是:把参数数组x和y(其元素个数相同)的每个元素相加,并作为返回数组的元素;multi方法的功能是:把参数数组x和y(其元素个数相同)的每个元素相乘,并作为返回数组的元素。在Java应用程序中使用这两个方法。
3.思考题
(1) 类与对象的关系。
(2) 构造方法与成员方法的区别。
(3) 类变量与实例变量的区别。
(4) 简述public、protected、无修饰符、private的保护范围。
4.实验报告内容
(1) 实验内容
设计一个表示用户的User类,类中的变量有用户名、口令(私有的)和记录用户个数的变量(静态的),定义类的3个构造方法(没有参数、有一个参数给用户名赋值、有两个参数给用户名和口令赋值)、获取和设置口令的方法、返回字符串表示的类信息(包括用户名、口令)的方法。编写应用程序测试User类。
(2) 实验目的
(3) 实验步骤
(4) 遇到的问题
(5) 实验结果与实验心得
5. 在Eclipse中进行UML建模
(1) 下载EclipseUML(该插件中包含EclipseUML Studio, EMF, GEF and UML2插件),它分为Studio和Free版本,同时还分为j2ee和java版本。下载地址为:http://www.eclipsedownload.com,选择导航栏中的Download菜单下的EclipseUML菜单项的Eclipse3.4子菜单(如图3-1所示),进入下载页面后直接选择下载超链接eclipseUML3.4 Download now (如图3-2所示),假设选择的下载目录为E:\Download。下载完后的EclipseUML只有一个jar文件:eclipseUML_E340_2008_studioEdition_3.4.2.v20090618.jar,将该压缩文件重命名简化为EclipseUML.jar(目的是在执行该程序时输入的文件名简短些)。下载该版本的EclipseUML要使用Eclipse3.4。
图3-1 下载EclipseUML的首页
图3-2 点击Download下载EclipseUML
(2) 安装EclipseUML,安装方法:在命令行下输入以下命令(如图3-3所示)
java -jar EclipseUML.jar
图3-3 输入命令运行EclipseUML的安装程序
接下来将启动EclipseUML的安装界面(如图3-4所示),安装过程中提示选择安装路径,假设安装在默认的目录C:\EclipseUML,另外还要选择要安装的插件(EclipseUML Studio, EMF, GEF and UML2),全部默认安装即可。
图3-4 EclipseUML的安装界面
(3) 在Eclipse中安装EclipseUML插件。安装的方法与其他插件的安装方式类似,以下采用links方法安装。
在Eclipse目录下新建一个links文件夹,在该文件夹中新建一个文本文件,文本文件的名字任意取,假设取名为EclipseUML.txt,在该文件中输入以下内容:
path=C:\\EclipseUML
或者path=C:/EclipseUML (注意目录分隔符)
Eclipse启动时会自动读取links文件夹下的所有文件,以安装相应的插件。
(4) 启动Eclipse,查看EclipseUML插件是否安装成功,查看的方法:
选择以下菜单File—New—Other,若在弹出的窗口中看到如图3-5所示的UML Diagrams列表项则表示EclipseUML插件安装成功。
图3-5 UML Diagrams选项
(5) 新建一个类,方法如下:
新建一个Java
,在该工程中新建一个类Person,类的内容如下:
public class Person {
private String name;
private Address address;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Address getAddress() {
return address;
}
public void setAddress(Address address) {
this.address = address;
}
}
另外新建一个Address类,类的内容如下:
public class Address {
private Person person;
private String province;
private String city;
private String street;
private int gateNumber;
public Person getPerson() {
return person;
}
public void setPerson(Person person) {
this.person = person;
}
public String getProvince() {
return province;
}
public void setProvince(String province) {
this.province = province;
}
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getStreet() {
return street;
}
public void setStreet(String street) {
this.street = street;
}
public int getGateNumber() {
return gateNumber;
}
public void setGateNumber(int gateNumber) {
this.gateNumber = gateNumber;
}
}
(6) 为Person类与Address类生成UML类图,方法如下:
在工程名上点击右键,选择New—Other菜单,在弹出的窗口中选择UML Diagrams列表中的UML Class Diagram,在弹出的对话框中选择要生成类图的类文件所在目录、输入类图的文件名File name、选择类图存放的文件夹位置package、选择类图的表现模式(Association、Inheritance、Dependency),点击Finish后选择要生成类图的类。生成的类图如图3-6所示。
图3-6 生成的类图与类之间的关系
另外,还可以通过手动绘制类图,在UML的图形编辑器中选择工具栏上的“create a class”按钮,之后输入类名等信息,在生成的图形中单击右键,可以添加属性与方法。此时,软件会根据类图生成源代码。在UML中还有很多模型元素,在软件设计课程中会涉及到,此处不详细介绍。
PAGE
2