黑马程序员————面向对象之封装

来源:互联网 发布:centos 7 xfce4 中文 编辑:程序博客网 时间:2024/06/05 00:47

------- android培训java培训、期待与您交流! ----------

众所周知,面向对象思想有三大特征:封装,继承,多态。

下面详细说说封装。

封装是很好理解的,就是隐藏属性和实现细节,仅对外提供公共的访问方式。

    封装的体现有类,方法,以及private修饰成员变量等。

类实际就是一个封装体,把事物的属性和行为功能封装成一个整体,使我们在new对象的时候能够使用里面的属性和方法。

方法也是一个封装体,将方法实现的细节封装成一个整体,而我们要用的只是需要调用方法来得到结果,而不必知道方法的具体细节。一个方法可以方便的被多个调用者调用。即使方法发生了变化,也仅对方法进行修改就可以了。

在使用类new对象的时候,可以直接对属性进行赋值,这样很容易给属性赋一个并不符合实际情况的值,而对成员变量的值进行判断必须依靠逻辑语句,显然在成员变量的位置进行逻辑语句的判断并不合理,而应在方法中进行判断才是合理的。这样java就提供了一个private关键字,将成员变量私有化,对外隐藏类中的成员变量。比如可以对不希望直接进行赋值的属性私有化,而对外提供赋值的方法。提高了数据的安全性。

private也是封装的一种体现。

由此可见封装的好处有:

1、  便于使用

2、  提高重用性

3、  将变化隔离

4、  提高安全性

封装的原则就是将不需要对外提供的内容都隐藏起来。

举例:

class Student{

        //将年龄属性私有化

         private int age;

         //对外提供方法,可以对年龄属性进行赋值,并且可以对赋值进行判断

         //而调用者并不需要知道是如何进行判断的,只要赋值提示不正确,改正即可 

//并且也可以修改方法,改变判断条件

        public void setAge(int age){

                   this.age = age;

                   if(!(age>0&&age<130)){

                            System.out.println(“年龄超出范围!”);

                   }

         }

         //同时对外提供外部对年龄属性的访问方法

        public int getAge(){

                 returnage;

        }

}

0 0
原创粉丝点击