zoukankan      html  css  js  c++  java
  • 封装

    封装是面向对象的三大特征之一。

    隐藏对象的属性和实现细节,仅对外提供公共的访问方式。

    ①封装就是将面对对象的状态和行为看成是一个整体,将二者存放在一个独立的模块中,比如说类

    ②封装也是信息隐藏,把不需要让外界知道的信息隐藏起来,尽肯能隐藏对象功能实现细节,向外暴露方法,保证外界的安全访问,比如说方法

    封装的好处:

    ①封装提高了代码的安全性。

    ②隐藏了实现细节,对外提供可以访问的方式。便于调用者的使用。

    ③提高了代码的复用性。

     1 class Person {
     2     int age;
     3     String name;
     4 
     5     public void show() {
     6         System.out.println("age=" + age + ",name" + name);
     7     }
     8 }
     9 
    10 public class PersonDemo {
    11     public static void main(String[] args) {
    12         // 创建Person对象
    13         Person p = new Person();
    14         p.age = -20; // 给Person对象赋值
    15         p.name = "张三";
    16         p.show(); // 调用Person的show方法
    17     }
    18 }

    通过上述代码发现,虽然我们用Java代码把Person描述清楚了,但有个严重的问题,就是Person中的属性的行为可以任意访问和使用。而这样是很不安全的

    解决方式:使用修饰符 private(私有,权限修饰符)要将Person的属性和行为私有起来,这样就无法直接访问

    可无法直接访问后,错误的值无法赋值,可是正确的值也赋值不了

    解决方式:提供访问方式

    为成员变量提供赋值(设置 set)方法,取值(获取 get)方法

     1 public class Person {
     2     private String name;
     3     private int age;
     4     public String getName() {
     5         return name;
     6     }
     7     public void setName(String name) {
     8         this.name = name;
     9     }
    10     public int getAge() {
    11         return age;
    12     }
    13     public void setAge(int age) {
    14         this.age = age;
    15     }

    java中有四种访问权限修饰符,分别是private私有的,default不写,protected受保护的,public公共的

     

    public

    protected

    default

    private

    同一类中

    同一包中(子类与无关类)

    不同包的子类

    不同包中的无关类

     

  • 相关阅读:
    一个Package Load Failed问题的解决方法

    .NET相关的最好东西--全球最新评价
    一年了...
    MSBuild 的简单入门
    开发基于.NET Compact Framework的程序时, 常遇到的问题(2) 为什么在Visual Studio 2003调试程序时不能通过ActiveSync连接PDA
    如何:显示用逗号分隔的项集合(摘自MSDN)
    每日一句(2008.10.8)
    每日一句(2008.10.16)
    男人这辈子
  • 原文地址:https://www.cnblogs.com/ty-v/p/8920276.html
Copyright © 2011-2022 走看看