实验3Java类和对象
一、 实验目的及要求
1. 2. 3. 4.
掌握类的定义,熟悉属性、构造函数、方法的作用;
理解类和对象的区别,掌握构造函数的使用,熟悉通过对象名引用实例的方法和属性; 掌握类的继承、方法的继承和重写,理解访问控制修饰符的作用;
填写实验报告(文件以“Java程序设计+ 班级+ 学号+ 姓名+ 实验3”的方式命名)。
二、 实验内容
1. 设计并实现一个课程类,将课程的相关信息组成该类的属性(如课程代码、课程名称、课程类别、学时、学分等),并在类中定义各个属性相关的访问方法(如获取和设置课程代码、课程名称,课程类别,获取和修改学时、学分,打印输出课程基本信息等),最后使用主函数测试此类(包括创建对象,调用相应方法等)。
2. 运行下面的程序,写出运行结果,写出类成员属性和实例成员属性的区别。
classMyParts {
public static int x = 7; publicint y = 3; }
public class Test2{
public static void main(String[] args) {
MyParts a = new MyParts(); MyParts b = new MyParts();
System.out.println(\输出一:a.x = \System.out.println(\输出一:b.x = \a.y = 5; b.y = 6; a.x = 1; b.x = 2;
System.out.println(\输出二:a.y = \System.out.println(\输出二:b.y = \System.out.println(\输出三:a.x = \System.out.println(\输出三:b.x = \} }
回答下列问题:
1) 输出一的结果是什么,它的值的来源是什么,反映了什么特性? 2) 输出二的结果是什么,它的值的来源是什么,反映了什么特性? 3) 输出三的结果是什么,它的值的来源是什么,反映了什么特性?
3. 编写一个Java应用程序,该程序中有3个类:Trangle、Leder和Circle,分别用来定
义“三角形”、“梯形”和“圆形”类,。具体要求如下: 1) 要求每个类中包含构造方法、求周长及面积的方法;
2) 在主方法中为三角形、梯形和圆形类创建对象并打印输出各种图形的周长及面积。
4. 实现一个名为Person的类和它的子类Employee。具体要求如下:
1) Person类中的属性有:姓名name(String类型),地址address(String类型),
电话号码telphone(String类型); 2) Employee类中的属性有:办公室office(String类型),工资wage(double类型); 3) 编写这两个类,及相应的测试代码,各个属性赋值在构造函数中完成。
5. 编写一个Java应用程序,除了主类外,该程序中还有4个类:People、ChinesePeople、
AmericanPeople和BeijingPeople类。要求如下:
1) People类有访问权限是protected的double型成员变量:height和weight,以及
public void speakHello()、public void averageHeight()和public void averageWeight()方法;
2) ChinesePeople类是People的子类,新增了public void chinaGongfu()方法。要
求ChinesePeople重写父类的public void speakHello()、public void averageHeight()和public void averageWeight()方法;
3) AmericanPeople类是People的子类,新增public void americanBoxing()方法,
要求AmericanPeople重写父类的public void speakHello()、public void averageHeight()和public void averageWeight()方法;
4) BeijingPeople类是ChinesePeople的子类,新增public void beijingOpera()方
法,要求BeijingPeople重写父类的public void speakHello()、public void averageHeight()和public void averageWeight()方法;
6. 根据题目要求编写模拟洗牌的程序。
1) 请定义一个名为Card的扑克牌类,该类有两个private访问权限的字符串变量face
和suit:分别描述一张牌的牌面值(如:A、K、Q、J、10、9、?、3、2等)和花色(如:“黑桃”、“红桃”、“梅花”和“方块”);
2) 定义Card类中的public访问权限的构造方法,为类中的变量赋值; 3) 定义protected访问权限的方法getFace(),得到扑克牌的牌面值; 4) 定义protected访问权限的方法getSuit(),得到扑克牌的花色;
5) 定义方法toString(),返回表示扑克牌的花色和牌面值字符串(如“红桃A”、“梅
花10”等)。