码迷,mamicode.com
首页 > 编程语言 > 详细

Java面对对象之封装

时间:2018-11-09 10:40:17      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:社交网站   span   private   属性   成员变量   get   tag   on()   条件   

学习到了封装,也希望这篇文章能个给后面学习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面对对象之封装

标签:社交网站   span   private   属性   成员变量   get   tag   on()   条件   

原文地址:https://www.cnblogs.com/ls001/p/9933069.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!