抽象、封装与类(一)
更新时间: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语言与面向对象程序设计题解及实验指导》 清华大学出版社
正在阅读:
抽象、封装与类(一)11-02
高中直线及方程知识点解析及经典例题04-13
2012全国首届家校通高峰论坛会草稿05-22
2013年一建实务复习与思考08-16
农村小学学校体育现状简析01-25
电气一次试题09-09
湖南省永州市18-19学年高一下学期期末考试化学试题解析版03-12
苏财综67号、 苏价工346号、苏水资66 号江苏省水资源费征收使用管理实施办法10-19
英语自学基础知识第267期07-17
信息安全风险评估技术01-15
- 人教新课标必修4 Unit2 Working the land名师导航
- 毕业生“校漂族”大行其道 - 0
- 江苏各市中考作文题出炉 - 0
- 暑期精品班 - 三角形 - 图文
- 情人节送什么礼物好??超强礼物已抵达
- 工程项目管理制度1
- 第四次业务学习 2016
- 会计要素与会计科目
- 欠发达地区小企业会计准则运用问题研究
- 一级锅炉水G4题库
- BBD双进双出筒式磨煤机安装使用说明书 SM-1
- 初一数学有理数教案
- 渝北区房地产评估市场调研报告
- iWebMall 数据字典
- 2018年小学入学教育工作计划
- 计量专业实务与案例分析 - 模拟题三 - 2013年版
- 启示录讲义
- 路基灰土改良(方案)
- 人行反洗钱岗位准入培训测试题集
- 2015电大《学前儿童发展心理学》期末试题及答案
- 封装
- 抽象
- 语文(人教版)基础模块下册教学计划
- 1、童年的泥巴 第一课时
- 阿斯利康医药代表岗位实习报告
- 《金色的草地》毕业设计教案
- 党员答辩题目和自我介绍
- 离散数学(本)2016年10月份试题
- 2017-2018年重庆市万州区七年级下学期期末数学试卷及参考答案
- 小学英语语法大全 - 经典全面1
- 小企业会计准则试题二
- 用友T6-小企业管理软件V3.3PLUS1上市说明
- 电力系统过电压复习题
- 工程监管停检点、必检点初步统计
- 阅读理解-2006年在职攻读硕士学位全国联考英语真题
- 《假如给我三天光明》试题集锦(含答案)
- 庙号与谥号:为什么有些皇帝不给他起庙号?
- 新人教版小学二年级数学上册计算题专项练习(十套)
- 2018年浦东新区高二地理等级考模拟卷
- 2017-2018学年人教版初中英语七年级下册第二次月考试卷及答案
- 内科试题
- Access上机操作题 - 报表操作