抽象、封装与类(一)

更新时间:2023-11-02 08:29:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

抽象、封装与类(一)

学生姓名: 学 号: 专业班级:

实验类型:□验证□综合□设计□创新 实验日期: 实验成绩: 一、实验项目名称 抽象、封装与类(一)

二、实验目的

1、熟练掌握如何自定义一个类。

2、熟练掌握如何定义构造函数,如何创建对象。 三、实验基本原理

在计算机技术的软件开发方法中所使用的抽象有两类:一类是过程抽象,另一类是数据抽象。

过程抽象将整个系统的功能划分为若干部分,强调功能完成的过程和步骤。面向过程的软件开发方法采用的就是这种抽象方法。数据抽象是与过程抽象不同的抽象方法,它把系统中需要处理的数据和这些数据上的操作结合在一起,根据功能、性质、作用等因素抽象成不同的抽象数据类型。每个抽象数据类型既包含了数据,也包括了针对这些数据的授权操作,是相对于过程抽象更为严格、也更为合理的抽象方法。

封装就是指利用抽象数据类型将数据和基于数据的操作封装在一起,数据被保护在抽象数据类型的内部,系统的其他部分只有通过包裹在数据外面的被授权的操作,才能够与这个抽象数据类型交流和交互。封装使得抽象数据类型对内成为一个结构完整,可自我管理、自我平衡、高度集中的整体;对外则是一个功能明确、接口单一、可在各种合适的环境下都能独立工作的右击的单元。

Java程序设计就是定义类的过程,但是Java程序中定义的类的数目和功能都是有限的,编程时还需要用到大量的系统定义好的类,即Java类库中的类。

类库是JAVA语言的重要组成部分。JAVA语言由语法规则和类库两部分组成,语法规则确定JAVA程序的书写规范;类库(或称为运行时库)则提供了JAVA程序与运行它的系统软件(JAVA虚拟机)之间的接口。

创建对象:首先说明新建对象所属的类名,然后说明新建对象的名字,赋值号右边的NEW是为新建对象开辟内存空间的算符。 构造函数是与类同名的方法。 四、主要仪器设备及耗材

计算机一台、my Eclipse软件 五、实验步骤

(1)打开My Eclipse,新建工程和类。分别输入本实验的代码。 (2)按照需求,输入如下代码: P95~96:4-7、4-8、4-9(综合) 模仿例4-2,编写如下程序。

定义一个表示学生的类Student,包括属性“学号”、“班号”、“姓名”、“性别”、“年龄”;方法“获得学号”、“获得班号”、 “获得姓名”、“获得性别”、 “获得年龄”、 “修改年龄”。

为Student类定义构造函数初始化所有属性,增加一个方法public String toString(),把Student类对象的所有属性信息组合成一个字符串输出。 在main()中创建Student类对象,测试自定义类。

4-7:

class Student {

private String studentId; private int classId;

private String studentName; private char studentGender; private int studentAge;

String getStudentId() {

return studentId; }

int getClassId() {

return classId; }

char getStudentGender() {

return studentGender; }

String getStudentName() {

return studentName; }

int getStudentAge() {

return studentAge; }

boolean setStudentAge(int newAge) {

if (newAge>0&&newAge<130) {

studentAge=newAge; return true; }

else {

System.out.print(\非法学生年龄!\); return false;

} } } 4-8

package Exercise;

public class exercise {

public static void main(String[] args) { {

Student demoStudent=new Student(); } }

class Student {

private String studentId; private int classId;

private String studentName; private char studentGender; private int studentAge;

String getStudentId() {

return studentId; }

int getClassId() {

return classId; }

char getStudentGender() {

return studentGender; }

String getStudentName() {

return studentName; }

int getStudentAge() {

return studentAge; }

boolean setStudentAge(int newAge) {

if (newAge>0&&newAge<130) {

studentAge=newAge; return true; }

else {

System.out.print(\非法学生年龄!\); return false; } } }

} } 4-9

package Exercise;

public class exercise {

public static void main(String[] args) {

Student demoStudent=new Student(\,111,\,\邓丽云\,21);

System.out.println(demoStudent.toString()); } }

class Student {

private String studentId; private int classId;

private String studentName; private char studentGender; private int studentAge; private char gender;

String getStudentId()

{

return studentId; }

int getClassId() {

return classId; }

char getStudentGender() {

return studentGender; }

String getStudentName() {

return studentName; }

int getStudentAge() {

return studentAge; }

boolean setStudentAge(int newAge) {

if (newAge>0&&newAge<130) {

studentAge=newAge; return true; }

else {

System.out.print(\非法学生年龄!\); return false; } }

public Student(String id, int clsId, String string, String name, int age) {

studentId=new String(id); classId=clsId;

studentName=new String(name); studentAge=age;

studentGender=gender; }

public String toString() {

return\学生信息:\\n\

+\学号\+this.getStudentId() +\班号\+this.getClassId()

+\姓名 \+this.getStudentName()

+\性别\+((this.getStudentGender())=='m'?\男 \:\女\) +\年龄\+this.getStudentAge(); }

六、实验数据及处理结果

七、思考讨论题或体会或对改进实验的建议

代码中的“get”和“set”函数可以直接使用工具创建。 八、参考资料

《Java语言与面向对象程序设计》 清华大学出版社

《Java语言与面向对象程序设计题解及实验指导》 清华大学出版社

本文来源:https://www.bwwdw.com/article/ejt2.html

Top