




全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、课程名称:封装性 2、知识点 2.1、上次 课程主要知识点 1、内与对象的定 义; 2、对 象的 引用 传递 ; 2.2、本次 预计讲解的知识点 封装的基础实现。 3、具体内容( ) Java 中所有面向对象的概念都是类与对象的关系为主的。 那么下面首先通过一个具体 程序来研究一下,为什么需要提供封装行。 范例:观察如下程序代码 class Person /现 在定义了一个类 /定义类中的两个属性 String name;/表示人的姓名 int age; /表示人的年龄 public void tell() System.out.println(“姓名:“+name+“,年龄:“+age); public class TestDemo /另外一个类 public static void main(String args) Person per = new Person(); =“唧咤“; per.age = -30; per.tell(); 现在的代码没有语法错误,但是从显示的角度来讲, 这个代码是有错误的,而且 问题严 重。这样的错误严格来讲就属于业务错误。那么造成 这种出错的原因是什么?最大的错 误在于当前类中的属性可以直接被类外部的 对象调用。所以,此时就认为这样的操作是 属于不安全的操作。 那么现在 最需要解决的问题是 将内部属性保护起来,即:不 让外部直接操作。 为此在 java 中提供有一个 private 关键字,利用此关 键字可以实现封装。 class Person /现 在定义了一个类 /定义类中的两个属性 Private String name;/表示人的姓名 private int age; /表示人的年龄 public void tell() System.out.println(“姓名:“+name+“,年龄:“+age); 加入了 private 之后,就表示此时 name 与 age 两属性只能被 person 类所访问。 范例:错误调用 public class TestDemo /另外一个类 public static void main(String args) Person per = new Person(); =“唧咤“;/TestDemo.java:16: error: name has private access in Person per.age = -30;/ TestDemo.java:17: error: age has private access in Person per.tell(); 现在发现,使用了 private 定 义的属性, 类 的外部不能直接 进行访问了,所安全性是最高 的。 那么如果现在需要通过对象操作类中的属性,在 java 中就有一个明确的要求:可以 使用 sitter、getter 方法设置或取得封装属性内容,以 private String name;封装属性为例; 设置数据:public void setName(String n); 取得数据:public String getName(); 以 private int age ; 封装属性 为例: 设置数据:public void setAge(int a); 取得数据:pubic int getAge(); 范例:修改程序,使得外部可以访问私有属性。 class Person /现 在定义了一个类 /定义类中的两个属性 private String name;/表示人的姓名 private int age; /表示人的年龄 public void tell() System.out.println(“姓名:“+name+“,年龄:“+age); public void setName(String n) name = n; public void setAge(int a) age=a; public String getName() return name; public int getAge() return age; public class TestDemo /另外一个类 public static void main(String args) Person per = new Person(); =“唧咤“; per.age = -30; per.tell(); 开发原则:以后只要是类中的 属性全部使用 private 封装,封装后属性必须严格按照编写 setter、getter 方法。 如果非要进行检测操作,则可以修改 setter 方法。 (只是现在临时的说明) class Person /现 在定义了一个类 /定义类中的两个属性 private String name;/表示人的姓名 private int age; /表示人的年龄 public void tell() System.out.println(“姓名:“+name+“,年龄:“+age); public void setName(String n) name = n; public void setAge(int a) if(a=0 public String getName() return name; public int getAge() return age; public class TestDemo /另外一个类 public static void main(String args) Person per = new Person(); per.SetName=(“唧咤
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年水运工程试验检测师资格考试(水运材料)测试题及答案一
- 煎酒工成本预算考核试卷及答案
- 2025年水运工程试验检测师资格考试(水运材料)考前冲刺试题及答案一(9月1日)
- 井下采煤机司机岗位知识更新考核试卷及答案
- 2025年专升本艺术概论考试模拟卷:艺术创作分析艺术与变革试题含答案
- 农发行巴中市南江县2025秋招笔试性格测试题专练及答案
- 2025年全国中级经济师考试真题卷含答案《经济基础知识》
- 自贡学法减分题库及答案
- 2025年安全生产培训考试题库及答案解析
- 石材护理工特殊工艺考核试卷及答案
- 2025-2030中国完全同态加密行业市场发展趋势与前景展望战略研究报告
- 濒危野生动植物种国际贸易公约(附录一二三)
- 代采代销合同范本
- DB3715-T 19-2022 桑黄栽培技术规程
- 纪录片观念与历史知到智慧树章节测试课后答案2024年秋云南艺术学院
- 叉车安全协议合同范本
- 2023版国家关于轻伤、重伤鉴定新标准(人体损伤程度鉴定标准)
- 加油站承包合同范本
- 中医诊断学舌诊介绍
- 《挥发性有机污染地块现场分析检测技术验证评价指南》
- 护理质控鱼骨头制作流程
评论
0/150
提交评论