首页 > 其他分享 >面向对象-封装

面向对象-封装

时间:2023-06-17 11:34:07浏览次数:22  
标签:封装 name person 访问 Person 面向对象 public

面向对象的封装是一种面向对象编程的核心概念,它指的是将数据和对数据的操作封装在一个类中,通过类的访问权限控制,隐藏内部实现细节,提供公共接口供其他对象访问。

封装的目的是实现数据的安全性和灵活性。通过将数据和操作数据的方法封装在一起,可以隐藏实现细节,防止外部直接访问和修改对象的内部状态,确保数据的一致性和完整性。同时,封装还可以提供更加清晰的接口,方便其他对象使用,降低了对象之间的耦合度,增加了代码的可维护性和可扩展性。

在封装中,通常使用访问修饰符(如private、protected、public)来控制类的成员的访问权限。私有的成员只能在类的内部访问,公共的成员可以被其他类访问。通常,对于私有的成员变量,可以使用公共的setter和getter方法来控制对其的访问和修改,以保证对数据的控制和验证。

 

public class Person {
    private String name;
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String newName) {
        name = newName;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int newAge) {
        if (newAge >= 0) {
            age = newAge;
        } else {
            System.out.println("年龄不能为负数");
        }
    }
}

  

public class Main {
    public static void main(String[] args) {
        Person person = new Person();
        person.setName("John");
        person.setAge(25);

        System.out.println("Name: " + person.getName());
        System.out.println("Age: " + person.getAge());
    }
}

  

我们创建了一个Person对象,并使用setNamesetAge方法设置其属性值。然后通过getNamegetAge方法获取属性值,并输出到控制台。

封装使得nameage的访问受到限制,只能通过定义的公共接口进行访问,保证了数据的安全性和一致性。同时,setter方法中对年龄进行了验证,确保年龄不会被设置为负数。这样,在外部使用Person类时,只需要关注如何设置和获取属性值,而不需要关心具体的实现细节。

标签:封装,name,person,访问,Person,面向对象,public
From: https://www.cnblogs.com/mxleader/p/17487259.html

相关文章

  • 【web开发】使用Trait解决PHP面向对象中类只支持单继承的限制
    前言众所周知,PHP的面向对象和Java一样,类只支持单继承,即是一个类只能继承自一个父类,不能存在多个父类,这也很好理解,就像现实的人类社会一样,儿子继承自你的父亲,父亲继承自祖父。。。,但是在实际开发中很多时候我们想像c++一样使用多重继承。奈何PHP只能使用单继承,在Trait出现之前,在PHP......
  • .net core使用Html模板转PDF文件并下载的业务类封装
    前言:我这里文件下载的模板选型优先考虑html模板,上手容易,前后端通用,有了模板后就需要有转换了,html转PDF采用第三方包:SelectPdf,下面是代码核心类: 1-PDFService:usingMicrosoft.AspNetCore.Hosting;usingSelectPdf;namespaceMeShop.Domain.PDF{///<summary......
  • 前端table组件封装
    前端表格组件是现代Web应用程序中常见的UI控件之一,也是前端开发人员最常用的控件之一。在实际项目中,一个好的前端表格组件必须具备稳定性、易用性和扩展性等特点。因此,对于前端表格的封装技术非常重要。前端表格的封装技术包括以下几个方面:数据源封装:前端表格必须有一个数据源,......
  • C++《面向对象程序设计课程设计》[2023-06-16]
    C++《面向对象程序设计课程设计》[2023-06-16]《面向对象程序设计课程设计》任务书时间:班级:一分组和评分周一上午8:30作业布置周四5/6节开始,周五12点前检查,提问并打分;每人完成自己的课程设计报告,不能复制其他同学的报告内容,报告中主要说明自己在设计中所作的工作。......
  • 封装前端svg组件
    前言:SVG(ScalableVectorGraphics)是一种基于XML的矢量图形格式,它可以在网页上展示高质量的图像,并且可以无损缩放。在前端开发中,SVG图片被广泛用于创建图标、图形和动画效果。此篇文章将讲述在前端vue项目中封装svg组件,使其svg简单使用。1.首先创建svg组件:示例代码<template......
  • 通过python封装接口获取淘宝商品页面数据、淘宝商品详情数据
    可以使用GET或POST方法,请求参数中应包含商品详情页面数据、标题、价格、图片、库存、销量等信息。解析返回的response中的HTML页面或JSON格式数据,提取需要的商品信息,如商品标题、价格、评价人数等。使用pandas库将提取的商品信息保存到数据框中,以方便后续处理和分析。......
  • 02项目数据库隐藏密码,封装logger,环境变量的设置,封装全局异常,Response,开启media访问,前
    1项目数据库之隐藏密码#我们直接把mysql的用户名和密码写死在了代码中----》后期可能会存在风险----》代码如果泄露----》mysql的用户密码泄露----》可以远程登录----》脱裤(拖库)----》所有数据会被黑客获取到----》卖钱#华住---》在代码中把数据库用户名和密码写死了----》......
  • cloudstack的重新封装--api调用
    使用python将cloudstack的多个功能进行重新封装形成api调用。#coding=utf-8#!/usr/bin/envpythonimportbase64importhmacimportjsonimportrequestsimportsysimporttimeimporturllibimportreimporthashlibimportloggingLOG=logging.getLogger(__name__......
  • vue封装公共组件库并发布到npm库
    利用的原理:vue框架提供的api:Vue.use(plugin),我们把封装好组件的项目打包成vue库,并提供install方法,然后发布到npm中。Vue.use(plugin)的时候会自动执行插件中的install方法。 一、组件库代码目录调整1.根目录创建packages文件夹2.在packages文件夹中新增components文......
  • 面向对象编程-实例属性和类属性
    在实例中绑定属性,和直接在类种绑定属性是不一样的,实例中绑定的只能在实例中用如果Student类本身需要绑定一个属性,所有实例都可以访问,那么可以这么定义classStudent(object):name='Student'点击查看代码classStudent(object):score=100#定义类属性def__in......