Java的成长之路----三大特性之封装

</pre></h1><h4><span style="font-family:KaiTi_GB2312;font-size:18px;">     从接触java到现在差不多也有一个月了吧,之前也曾经接触各种语言。和很多人不同的是,我是先接触的android,后来发现学不下去了,才反过来决定好好学一下Java。虽然学的时间不长,但也算是持之以恒下来了,老师讲的很多,但由于老师讲课的风格不是我喜欢的,所以我更多的还是自学,自学途中的苦自然不必多说,但是仍然还是有一些心得的,现在话不多说,就让我们从Java的三大特性--封装,开始说起吧。</span><span style="font-family:KaiTi_GB2312;font-size:18px;">    封装(Encapsulation)是面向对象方法的重要原则,就是把对象的属性和操作(或服务)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节。这段话是百度百科里给出的解释,名词解释,很难懂。其实就是说,我把里面的东西隐藏起来,然后打包让它成为一个不可分割的独立实体,最后只保留一定的接口与外界联系。那么这样做有什么好处呢?第一点,它提高了程序的可复用性和可维护性。就是说如果你需要修改什么,只要在类里面修改就好,从而避免了大规模的代码修改,程序也就更容易维护了。第二点呢,就是说封装还可以把对象的私有属性和公共数据分离开,保护了私有数据,减少了可能模块之间的干扰,达到降低程序复杂度,提高可控性的目的。很好理解,不多解释了。</span><span style="font-family:KaiTi_GB2312;font-size:18px;">      打个比方,你有一栋房子,那么这个房子就是一个对象,房里的电视沙发都是你自己的,所以他们就是私有属性咯。墙就是挡住外面的风雨,不让外界随意访问。而窗户呢,可以让阳光洒进来,那么窗户就是对象留给外界访问的接口了。</span><span style="font-family:KaiTi_GB2312;font-size:18px;">    说那么多都不如实例来得清楚,那么我们来看一看下面的例子。</span></h4><h4><span style="font-size:18px;"></span><span style="font-family: Arial, Helvetica, sans-serif;">public class person{</span></h4><pre name="code" class="java">
<span style="font-family: Arial, Helvetica, sans-serif;">/*对属性的封装*/</span>
<span style="font-family: Arial, Helvetica, sans-serif;">
</span>
/*姓名和年龄都是私有属性*/
private String name;
<span style="font-family: Arial, Helvetica, sans-serif;">private int age;</span>
<span style="font-family: Arial, Helvetica, sans-serif;">/*可以通过get方法获取属性,set方法设置属性*/</span>
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
/*顺便提一下,this是指对象内部对自身的引用,可避免实例变量和局部变量同名的冲突*/

            通过上面的例子我们可以看出,封装是把一个对象的属性私有化,并给外界提供一些访问这些属性的方法。当然我们也可以不提供方法给外界访问,但这样你说这个类建了就还有意义么?

         再说说封装的好处吧,在一个项目中,一个属性肯定不止一次被调用。单单只是值得改变还好,但是如果连数据类型都要求改那要怎么办?天呐,难不成,你要一个个去找,然后在慢慢改?且不说你还有可能把其中的有些给遗漏了。

         比如上面这个例子,我要是想把age的数据类型改成String怎么办?对了,就是直接在方法里面改。只要将set方法里的this.age=age;改成this.age=String.Valueof(age);是不是很简单呢!

好了,这就是我眼里的封装了,其实我刚开始也是很难理解java的封装、继承、多态,但是多自己动手去写,多思考,不要执拗与名词,还是很好理解的。

        哈哈,如有不对还望指正!

      

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值