封装的实现和定义

封装

  • 该露的露,该藏的藏
  • "高内聚,低聚合"。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用。
  • 封装:数据的隐藏。通常应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏。
  • 属性私有,get/set
java 复制代码
package Demo01;

public class Student {



    private String name;
    private int age;
    //get获得这个数据
    //set给这个数据赋值
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        if(age<100&&age>0){//正确的年纪
            this.age = age;
        }
        else{
            this.age=1;
        }
    }
}
java 复制代码
package Demo01;
//一个项目应该只存一个main方法
public class Application {
    public static void main(String[] args) {

        //通过new关键字 实例化一个对象
        Student student = new Student();

        student.setName("小明");
        student.setAge(999);

        System.out.println(student.getName());
        System.out.println(student.getAge());
    }
}

这个代码演示了原本通过private设置之后该属性无法改变,通过get和set获取和设置私有类的值,该程序的输出为

小明

1


它的意义

  1. 提高程序的安全性,保护数据
  2. 隐藏代码的实现细节
  3. 统一接口
  4. 系统可维护增加了
相关推荐
每日任务(希望进OD版)8 小时前
线性DP、区间DP
开发语言·数据结构·c++·算法·动态规划
怨言.8 小时前
Java内部类详解:从基础概念到实战应用(附案例)
java·开发语言
AC赳赳老秦8 小时前
OpenClaw image-processing技能实操:批量抠图、图片尺寸调整,适配办公需求
开发语言·前端·人工智能·python·深度学习·机器学习·openclaw
XiYang-DING8 小时前
【Java】 Java 集合框架
java·开发语言
charlie1145141918 小时前
嵌入式C++教程实战之Linux下的单片机编程(9):HAL时钟使能 —— 不开时钟,外设就是一坨睡死的硅
linux·开发语言·c++·单片机·嵌入式硬件·c
diving deep8 小时前
从零构建大模型--实操--搭建python环境
开发语言·python
We་ct8 小时前
LeetCode 172. 阶乘后的零:从暴力到最优,拆解解题核心
开发语言·前端·javascript·算法·leetcode·typescript
心勤则明8 小时前
Spring AI Alibaba Skills 的渐进式披露与热更新实战
java·后端·spring
netyeaxi8 小时前
Spring:如何查看Spring应用对外提供了哪些API接口?
java·spring
一只大袋鼠9 小时前
MySQL 事务从入门到精通(上):概念、操作、特性、隔离级别全解析
java·mysql·事务