胡博君浅谈Java属性的封装
来源:互联网 发布:浏览器java插件 编辑:程序博客网 时间:2024/04/29 15:55
大家都应该知道类里面的属性都加了private,所以属性被私有化了,那么如果要外面能够调用这个类的属性的话,只能提供get、set与外面对接。大家经常听到这个概念,但是未必真正理解为什么需要私有化,所以呢,今天我就来和大家来谈谈属性封装的本质。
举个例子:
封装前: 封装后:
public class Person{ public class Person{
String name; private String name;
public void setName(String name){
} this.name = name ;
}
public String getName(){
reuturn name;
}
}
以上这个例子其实说明不了给属性封装的好处来,比如说我们现在再建一个带main方法的测试类,然后写上这句代码Person p = new Person(); ,封装前p.name = "老k"; 封装后p.setName("老k"); ,结果似乎完全一致,加不加封装有啥关系?但是我们试想一下,我们是不是还可以在setName方法中加入一些判断呢,比如说我在setName方法中加入:
public void setName(String name){
if(name.equals("小明")){
this.name = name;
}
}
大家通过这个例子有没有稍微看出一点点区别来呢?也就是说现在你想用p.setName("老k");是存不进去值了,为什么呢,因为里面加了一个判断要求name为 "小明" 的时候才能进行this.name = name 赋值,这是不是就好像是被私有化啦呢,也就是说别人现在想传值进来不一定可以,必须按照我的要求来,我只要求传的值为 "小明" 的时候才有用,传入其他的值都是没有用的,所以这就是封装的好处。
现在我们来看一下封装前的代码,p.name = "小红"; 或者p.name = "小白" 或者 p.name = "小黑" 都不受限制,所以这么做是非常不符合我们的生活逻辑的,因为我们生活总是私有化的,比如我们的银行卡密码、我们的身份证号码等。
我录制一套Java视频,现在在慢慢上传,大部分是超清,今后呢我们团队会有大量免费视频出炉,包括Android、php、web前端等,收看网址百度胡博君讲java,或者
网址:
http://v.youku.com/v_show/id_XODQzMTIzNzEy.html,欢迎大家订阅我的优酷视频
百度搜索:输入Fcs_D调的码农 ,或者输入"胡博君"就能看到我的很多视频
加我的微信号fcsboy
加入我的学习交流群:2370536932
- 胡博君浅谈Java属性的封装
- 浅谈JS对象的属性封装性
- java--封装浅谈
- java 属性的封装和访问
- Java的成员隐藏与属性封装
- Java之属性封装
- 浅谈Java抽象,封装,继承,多态的
- Java封装特性的小谈 ——封装基于抽象,封装的本质在于属性
- C#的“属性”封装
- 属性的封装
- 属性的封装
- java面向对象中对属性和方法的封装
- Java复习——属性的封装与构造方法
- Java的类、方法、属性(多态,继承,封装)
- 浅谈Java三大特性--封装
- 浅谈封装
- 由数组的封装来浅谈JAVA面向对象的思路
- 浅谈java基本类型的封装类型与对象池的概念
- 漫谈科技界及技术
- oracle 定时任务job
- sqlite数据库下载安装和初步操作和所遇到的问题
- java des加解密
- List,set,Map 的用法和区别等 [转]
- 胡博君浅谈Java属性的封装
- Search in Rotated Sorted Array
- Web服务器控件和HTML控件区别
- windows下使用jdbc连接ACCESS
- 黑马程序员之ios学习总结——09 OC语言的点语法、@property和@synthesize
- Cracking the coding interview--Q8.5
- Android dispatchTouchEvent, onInterceptTouchEvent, onTouchEvent Detailed
- Transformer入门教程(五)由Transformer发布的数据包想到的
- usb vendor id 查询网址