首页 > 其他分享 >面向对象三大特征之一:封 装

面向对象三大特征之一:封 装

时间:2024-11-03 15:17:48浏览次数:3  
标签:封装 访问 特征 gender private public 面向对象 id 三大

1、特点

封装是面向对象的核心思想,两层含义:一是一个整体(把对象的属性和行为看成一个整体,即封装在一个对象种),二是信息隐藏,对外隐藏,但可以通过某种方式进行调用。

2、访问权限

(1)private:当前类访问级别,属于私有访问权限。

(2)default:本包访问权限,一个类中的属性或方法没有任何访问权限声明。

(3)protected:本包及不同包的子类访问。

(4)public:所有类种被访问,属于公共访问权限。

3、如何封装

如果不使用封装,直接调用属性或者方法,会导致出现多种可能,比如说我们在一个类中定义了一个属性 :年龄。它是对外暴露的,那么它的值可以是负数,零或者更大,为了避免这种情况,我们采取了封装。

封装的就是使用上诉的访问权限对属性和方法进行修饰,用private关键字将其私有化。private修饰的只能在本类中可以被使用,要是想要在别的类中调用,就需要用到set和get方法来设置和获取属性值。

定义一个Student类,用private修饰id和gender,对应写出它们的get/set方法 ,每个属性都会有对应的get/set方法。

public class Student {
    private int id;
    private char gender;

    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public char getGender() {
        return gender;
    }
    public void setGender(char gender) {
        this.gender = gender;
    }
}

这时候如果我们在别的类直接调用Student类的属性,会报错。

用了private修饰,是无法调用的,我们可以通过set/get来设置获取。

public class Test {
    public static void main(String[] args) {
        Student student = new Student();
        student.setId(1);
        student.setGender('男');
        int id = student.getId();
        char gender = student.getGender();
        System.out.println(id);
        System.out.println(gender);
    }
}

 运行结果

1
男

标签:封装,访问,特征,gender,private,public,面向对象,id,三大
From: https://blog.csdn.net/2301_80768157/article/details/143457976

相关文章

  • 面向对象试题带答案
    一、选择题 (1)下列函数中(1)是不能重载的。A)成员函数B)非成员函数C)析构函数D)构造函数(2)下列重载函数的描述中,(2)是错误的。A)重载函数中不允许使用默认参数B)重载函数中编译系统根据参数表进行选择C)不要使用重载函数来描述毫不相干的函数D)构造函数重载将......
  • C++面向对象三大特性之多态
    1.1多态的基本概念 继承性反映的是类与类之间的层次关系,多态性则是考虑这种层次关系以及类自身特定成员函数之间的关系来解决行为的再抽象问题。其实就是同一符号或者名字在不同情况下具有不同解释的现象,即是指同一个函数的多种形态。多态分为两类1.静态多态:函数重载和运......
  • 缓存雪崩/穿透/击穿/失效原理图/14种缓存数据特征+10种数据一致性方案(全面篇)
    在当今数据驱动的互联网时代,缓存成为了提升应用性能的关键技术。面对海量用户请求,如何通过缓存策略有效减轻数据库压力、降低响应延迟?本文深入探讨了缓存雪崩、缓存穿透、缓存击穿等常见问题,并提供了全面的解决方案。通过实际案例分析,揭示了缓存设计的最佳实践,确保数据一致......
  • NGO-RELM基于北方苍鹰优化正则化极限学习机的数据预测Matlab程序多特征输入单输出
    NGO-RELM基于北方苍鹰优化正则化极限学习机的数据预测Matlab程序多特征输入单输出目录NGO-RELM基于北方苍鹰优化正则化极限学习机的数据预测Matlab程序多特征输入单输出预测结果评价指标基本介绍程序设计参考资料预测结果评价指标训练集数据的R2......
  • Python基础学习(十一)面向对象编程(进阶)
    代码获取:https://github.com/qingxuly/hsp_python_course完结版:Python基础学习(完结版)面向对象编程(进阶)面向对象编程三大特征面向对象编程有三大特征:封装、继承、多态。面向对象编程—封装封装介绍封装(encapsulation)就是把抽象出的数据[属性]和对数据的操作[方法]......
  • Python基础学习(十)面向对象编程(基础)
    代码获取:https://github.com/qingxuly/hsp_python_course完结版:Python基础学习(完结版)面向对象编程(基础)类与对象类与实例的关系类与实例的关系示意图快速入门—面向对象的方式解决养猫问题#定义一个猫类,age,name,color是属性,或者称为成员变量#Cat类就是你......
  • Java面向对象简述
    Java是一门面向对象的编程语言,那么我们要先了解什么是面向对象。编程语言分为:面向机器语言(例如汇编语言),面向过程语言(例如c语言),以及面向对象语言。而面向对象编程主要体现在:封装性,继承性和多态性。封装性:将数据和对数据的操作封装在一起,通过抽象,形成一般概念(类)。举例而言,公......
  • Day28--什么是面向对象
    Day28--什么是面向对象面向过程和面向对象的抽象理解:面向过程思想步骤清晰简单:第一步做什么,第二步做什么.....面对过程适合处理一些较为简单的问题面向对象思想物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对......
  • 二十八、Python基础语法(面向对象-下)
    一、self从函数的语法上来看,self是形参,是一个普通的参数,那么在调用的时候,就需要传递实参值。从调用上看,我们没有给self这个形参传递实参值,但是Python解释器会自动的将调用这个方法的对象,作为实参值传递给self。classDog:defeat(self):prin......
  • Java实验三 面向对象编程
    1.编写Java代码实现一个计数器类“Counter”,其中包含域“counterValue”用来保存计数器的当前数值、方法“increment()”使计数器加一、方法“decrement()”使计数器减一、方法“reset()”使计数器清零。构造计数器类的对象,并使用。packageproject;publicclassCounter......