实验目的
熟悉面向对象编程中类的编写。
实验内容
(1).编写一个Athlete类。该类包含三个成员变量name、sport和medal,分别代表一个运动员的姓名、最擅长的运动项目名称和在2023年亚运会获得的奖牌数量。在该类中重写Object类的toString方法,当调用它重写的toString方法时,输出这个运动员的姓名、运动项目和奖牌数量。在报告中附上程序截图、运行结果截图(要求以2023年亚运会中国队某一块金牌获得者为例)和详细的文字说明。
(2).在一个包中定义一个默认访问权限控制的类DefaultClass,然后在该包以及另一个包中分别定义类来测试DefaultClass类中的private, default, protected和public数据成员的访问控制能力。在报告中附上程序截图、运行结果截图和详细的文字说明。
(3).在一个包中定义一个public访问权限控制的类PublicClass,然后在该包以及另一个包中分别定义类来测试PublicClass类中的private, default, protected和public数据成员的访问控制能力。在报告中附上程序截图、运行结果截图和详细的文字说明。
实验过程
(1).编写一个Athlete类。该类包含三个成员变量name、sport和medal,分别代表一个运动员的姓名、最擅长的运动项目名称和在2023年亚运会获得的奖牌数量。在该类中重写Object类的toString方法,当调用它重写的toString方法时,输出这个运动员的姓名、运动项目和奖牌数量。在报告中附上程序截图、运行结果截图(要求以2023年亚运会中国队某一块金牌获得者为例)和详细的文字说明。
运行结果截图:
详细的文字说明:
该程序定义了一个名为"Athlete"的公共类,具有私有成员变量"name"、“sport"和"medal”。
类中包含一个构造函数,用于初始化"Athlete"对象的实例。类中还有一个重写的"toString()"方法,该方法返回一个包含运动员名字、比赛项目和奖牌数量的字符串。在类的"main()"方法中,创建了一个名为"athlete"的"Athlete"对象实例,并传递了运动员的名字、比赛项目和奖牌数量作为参数。然后,使用"System.out.println()"方法打印出该对象的字符串表示形式,即调用了对象的"toString()"方法。
(2).在一个包中定义一个默认访问权限控制的类DefaultClass,然后在该包以及另一个包中分别定义类来测试DefaultClass类中的private, default, protected和public数据成员的访问控制能力。在报告中附上程序截图、运行结果截图和详细的文字说明。
包内测试:
包外测试:
运行结果截图:
包内测试:
包外测试:
全部报错
详细的文字说明:
在一个包中定义一个默认访问权限控制的类DefaultClass,然后在该包以及另一个包中分别定义类来测试DefaultClass类中的private, default, protected和public数据成员的访问控制能力。
结论:在同一个包内,可以访问default, protected和public属性的数据成员;在不同包,不可以访问其他包的默认访问权限控制的类的所有数据成员。
(3).在一个包中定义一个public访问权限控制的类PublicClass,然后在该包以及另一个包中分别定义类来测试PublicClass类中的private, default, protected和public数据成员的访问控制能力。在报告中附上程序截图、运行结果截图和详细的文字说明。
包内测试:
包外测试:
运行结果截图:
包内测试:
包外测试:
详细的文字说明:
在一个包中定义一个public访问权限控制的类PublicClass,然后在该包以及另一个包中分别定义类来测试PublicClass类中的private, default, protected和public数据成员的访问控制能力。
结论:在同一个包内,可以访问default, protected和public属性的数据成员;在不同包,可以访问public访问权限控制的类里的public属性的数据成员。