java封装基础详解

java的封装性即是信息隐藏,把对象的属性和行为结合成一个相同的独立单体,并尽可能地隐藏对象的内部细节

封装的特性是对属性来讲的。

封装的目标就是要实现软件部件的"高内聚,低耦合",防止程序相互依赖带来的变动影响。

高内聚(就是类的内部数据操作细节自己完成,不允许外部干涉)。

低耦合(仅暴露少量的方法给外部使用)。

在面向对象的编程语言中,对象是封装的基本单位,面向对象的封装比传统语言的封装更清晰,有力。

注:一般来说,只要是属性,就必须封装,java中通过将属性声明为私有的(private),再通过公共的(public),以及getter和setter方法设置和获取,实现对属性的操作。

那么信息隐藏是指:禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问。

  • 属性私有,get/set

    简单的代码示例

    首先我们对student这个类应有的属性进行私有,即private

    package oop.Demo05;
    
    public class Student {
    //首先进行属性私有
    private String name;
    private int id;
    private char sex;
    //然后提供一些可以操作这个属性的方法
    //提供一些private的get,set方法 //首先get获得这个数据
    public String getName(){
    return this.name;
    }
    //然后set给这个数据设置值
    public void setName(String name){
    this.name= name;
    }
    //alt+insert 快捷键生成get set方法
    }

    然后我们找一个测试类进行调用

    package oop1;
    import oop.Demo05.Student;
    public class Application02 {
    public static void main(String[] args) {
    Student s1 = new Student();
    s1.setName("神经病");
    System.out.println(s1.getName());
    }
    }

    那么封装的意义:

    /*1.封装可以提高程序的安全性
    2.隐藏代码的实现细节性
    3.可以统一接口
    4.系统的可维护性增加
    */

B站视频狂神说java

最新文章

  1. C和指针 第十五章 输入输出缓冲
  2. iOS Swift 3 open
  3. [Java 进阶]Java中的国际化
  4. hzwer模拟赛 Hzwer的陨石
  5. 【线段树区间合并】HDU1540-Tunnel Warfare
  6. js封装包
  7. [.NET WebAPI系列03] WebAPI Controller 中标准CRUD方法
  8. 图片轮换cycle插件的运用
  9. 修改文件所有者 chown
  10. spring项目log4j使用入门
  11. DDD理论学习系列(8)-- 应用服务&领域服务
  12. flutter 底部按钮切换页面
  13. git 新建仓库
  14. springboot练习
  15. 解决 Android Device Monitor 常见问题
  16. 对xml进行数据查询时发生NoClassDefFoundError,dom4j和jaxen
  17. ElasticSearch权威指南学习(索引管理)
  18. C#异步编程のawait和async关键字来写异步程序
  19. 通过show variables like ‘general_log%’可以看查询日志
  20. zabbix的搭建与入门

热门文章

  1. Mybati-Plus的用法 记录
  2. [.NET Core知识点回顾]-自动内存管理
  3. 解放生产力,自动化生成vue组件文档
  4. C++调用Libreoffice接口
  5. vue中输入框事件监听 v-on:input
  6. 【IllegalArgumentException】: object is not an instance of declaring class
  7. mysql中的条件语句case when/if函数
  8. Archive for required library:’ WebRoot/WEB-INF/Mytag.tld’in project ‘TagTest’ cannot be read or is not a valid ZIP file
  9. rz上传文件报错:rpm Read Signature failed: sigh blob(1268): BAD, read returned 0
  10. 两个字符串,s1 包含 s2,包含多次,返回每一个匹配到的索引---python