Java面对对象之封装

Posted ls001

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java面对对象之封装相关的知识,希望对你有一定的参考价值。

学习到了封装,也希望这篇文章能个给后面学习java的人一点帮助.

 

首先我们用实际问题先感受一下封装的概念.

  用人来举例,人的年龄是有限的,0-120左右

  我们在社交网站填写个人信息的时候,也会有年龄这一项,那么这个年龄允许填写负数或者很大的数吗?

  实际上是不允许的.

  这个时候实际上是对年龄这一项做出了某些条件的限制

 

  再比如,中国人的名字.

  登记户口的时候,名字和领导人的名字同名是否可行?

  还是不行,因为国家不予许这样做

  这个时候国家对名字这一项也做出了条件限制

 

  回到我们程序

public static void main(String[] args) {
      
    //符合语言规则,不符实际生活的案例,不推荐这样做
Person p
= new Person(); p.age = -18;//这样做在语言层面是合法的,但是并不符合实际生活中的情况 p.name = "习主席"; }
class Person{
    int age;//类比人的年龄
    String name;//类比中国人的名字
}

  

  但是这样做会有很多不符生活的名字,年龄.

  所以Java的前辈们想出了一种方法,封装,用封装来给成员变量一定的限制.

    1.对成员变量或者方法添加private_____使其不允许被对象的引用(p.age会报错)直接访问;被private修饰之后无法直接访问那我们如何访问呢?

      例如age,可以这样去得到age  p.getAge();

        public int getAge() {
              return age;
          }

       设置年龄

        p.setAge();

        public void setAge(int age) {
            //这样我们对年龄做出了限制,更加符合我们的需求
           if(age>120 && age<0){
            age==0;
            return;
            }        this.age = age;        }

 

 

    2.使用public成员方法操作被private修饰的成员

  

class Person{
    private int age;//使用private修饰age,不让这个属性被对象的引用直接访问,(p.age会报错)

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
   
}

 

 

  

 

  

 

  











以上是关于Java面对对象之封装的主要内容,如果未能解决你的问题,请参考以下文章

JAVA面对对象三大特征之继承多态

javascript面对对象编程 之继承

Java入门——面对对象(上)

java 面对对象的三大特性

java面对对象

Python 面对对象编程