黑马程序员-day05-面向对象(封装 Encapsulation)
来源:互联网 发布:数据采集卡原理设计 编辑:程序博客网 时间:2024/06/17 21:59
------- android培训、java培训、期待与您交流! ----------
假如:
1.买电脑:你去买电脑,为了方便找一个具有硬件参数方法和讲价方法的对象帮你去买电脑,至于这个对象怎么去和销售员讲价,怎么去和销售员说硬件信息,这个你没有必要知道;你只要知道你找他能买到一个合适的电脑,至于这些细节你没有必要知道,这些细节相对你来说就是隐藏的,这就是封装。
2.面试:我招聘一些具有专业能力的人,然后给他们一个项目,至于怎么开发的我不需要管,我只要结果,开发发再多时间跟我没关系,不要和老板说你流了多少血多少汗,就看结果OK不OK。
3.电脑:机箱里面怎么构造的你不需要知道,机箱里面的内部构造相对你来说就是封装的。
好处:
(1)将变化隔离。机箱里面改了显卡,改了主板,是不是对于你来说都无所谓,机箱里面怎么变化跟你没关系,你直接拿来用就可以了。
(2)便于使用。你不需要了解内部构造就能完成应用。
(3)提高重用性。
(4)提高安全性。
封装原则:
(1)将不需要对外提供的内容都隐藏起来。
(2)把属性都隐藏,提供公共方法对其访问。
函数是最小的封装块。
private关键字:
(1)是一个权限修饰符。
(2)用于修饰成员(成员变量和成员函数)
(3)被私有化的成员只在本类中有效。
注意:私有仅仅是封装的一种表现形式。
如何进行具体的封装,如何把内容隐藏,同时又怎么通过公共方式来访问,通过一个实例来说明。
/** * 需求: * 1. Person类。对Person的属性进行私有化,让外界不能直接访问,对外提供公 * 共的访问方式。 * 2. 对访问的数据进行逻辑判断等操作,提高代码健壮性。 *///Person类class Person{private String name;private int age;//对外提供公共设置姓名的方式public void setName(String name){this.name = name;}//对外提供公共得到姓名的方式public String getName(){return name;}//对外提供公共设置年龄的方式public void setAge(int age){if(age > 0 && age < 120){this.age = age;}else{System.out.println("非法年龄");}}//对外提供公共得到年龄的方式public int getAge(){return age;}//speak方法public void speak(){System.out.println("name:" + name + ",age:" + age);}}//测试类public class PersonDemo {public static void main(String[] args) {Person p = new Person();p.setName("zhangsan");p.setAge(30);p.speak();}}
0 0
- 黑马程序员-day05-面向对象(封装 Encapsulation)
- 黑马程序员——面向对象3:面向对象的特点之——封装(Encapsulation)
- 黑马程序员-Java面向对象-day05
- 黑马程序员-day05-面向对象(基本概念)
- 黑马程序员-day05-面向对象(构造函数)
- 黑马程序员-day05面向对象一
- 黑马程序员--面向对象(day05)
- 黑马程序员——day05面向对象(一)
- 黑马程序员-day05-面向对象(this关键字和super关键字)
- 黑马程序员-面向对象,封装
- 黑马程序员--面向对象(封装)
- Java面向对象编程之封装(encapsulation)
- Java - Encapsulation封装(面向对象1-封装)
- 黑马程序员_面向对象-封装
- 【黑马程序员】- 面向对象_封装
- 黑马程序员:面向对象之----------------------封装
- 黑马程序员-面向对象之封装
- 黑马程序员_面向对象---封装
- poj1181--变形课(BFS)
- 杭电1198--Farm Irrigation(BFS外…
- 杭电1372--Knight Moves(BFS)
- poj1321--棋盘问题(DFS)
- 杭电1242--Rescue(BFS+优先队列)
- 黑马程序员-day05-面向对象(封装 Encapsulation)
- 杭电1159——Common Subsequence
- 杭电1087--Super Jumping! Jumping…
- iOS中Block介绍(一)基础
- 杭电1059--Dividing(多重背包一)
- 杭电2602--Bone Collector(01背包…
- 杭电1171--Big Event in HDU(多重…
- poj1315--Don't Get Rooked(DPS)
- 杭电1085--Holding Bin-Laden Capt…