首页 > 其他分享 >封装性

封装性

时间:2023-08-02 15:11:50浏览次数:44  
标签:修饰符 封装 私有化 num 方法 public Math

高内聚,低耦合

高内聚:类的内部数据操作细节自己完成,不允许外部干涉

低耦合:仅对外暴露少量的方法用于使用

封装性

隐藏对象内部的复杂性,只对外暴露一个简单的接口(API),便于外界调用,从而提高系统的可扩展性、可维护性

体现:

  • 将类的属性私有化,并提供公共的方法来获取和设置该属性的值。
class Test{
    public static void main(){
        Math a = new Math();
        a.num = 10;//报错,num私有化,num只有Math类内才能被直接访问
        a.setNum(9);//通过公开的方法实现对num的访问,并可借构造方法对num的取值进行限制
        int n=a.getNum();
    }
    
}

class Math{
    private int num;
    //规定num的取值范围:0<num<100
    public void setNum(int i){
        if(i>0&&i<100){
            num=i;
        }
        else{
            System.out.println("输入范围错误!");
        }
    }
    public int getNum(){
        return num;
    }
}
  • 将类中的方法私有化,外界只能访问公开的方法,实现对私有化方法的隐藏

    比如有一个实现两个元素交换的方法,还有其他的一系列排序方法,将元素交换方法私有化,外界只能看到排序方法,而不能看到排序方法中使用到的二元素交换方法。

  • 单例模式

权限修饰符

public、缺省、protected、public

修饰符 类内部 同一个包 不同包的子类 同一个工程
static 可以
(缺省) 可以 可以
protected 可以 可以 可以
public 可以 可以 可以 可以

四种权限修饰符可以修饰类及类的内部结构(方法、属性、构造器、内部类)

类(非内部类)只能用缺省/public修饰

标签:修饰符,封装,私有化,num,方法,public,Math
From: https://www.cnblogs.com/stars-007/p/17600710.html

相关文章

  • 封装获取chrome和ie的webdriver
    importtimefromseleniumimportwebdriverfromselenium.webdriver.chrome.serviceimportServiceasChromeServicefromwebdriver_manager.chromeimportChromeDriverManagerfromselenium.webdriver.ie.serviceimportServiceasIEServicefromwebdriver_manag......
  • DOM拖拽移动位置封装
    classDrage{constructor(){this.refthis.draggingFlag=falsethis.initXthis.initYthis.currentXthis.currentYthis.offsetX=0this.offsetY=0this.style=`z-index:999999;`}listen(ref,style){thi......
  • 电商API接口对接(商品详情,评论,按图搜图,订单列表)代码封装,可高并发
    淘宝API接口对接需要以下步骤:申请淘宝开放平台账号:在淘宝开放平台(注册账号,并创建自己的应用)选择API接口:根据需要的功能,选择相应的API接口,例如商品API接口、店铺API接口、订单API接口等。获取授权:使用OAuth2.0授权方式,获取用户或店铺的授权,才能够访问和调用API接口。调用API接口:按照......
  • 分页批量请求数据封装
    关于淘宝接口每次最多取100个,需要分页获取的封装总体思路采取迭代器的方式来多次发送请求. TOPCollection<TOPArticleOrder>orders=session.getArticleOrdersByNick(articleCode,start,end,nick);size=saveOrders(orders.toList()); 最终调用TOPCollection中的toList()......
  • 手动封装call
     目录前言导语代码封装部分验证总结前言我是歌谣我有个兄弟巅峰的时候排名c站总榜19叫前端小歌谣曾经我花了三年的时间创作了他现在我要用五年的时间超越他今天又是接近兄弟的一天人生难免坎坷大不了从头再来歌谣的意志是永恒的放弃很容易但是坚持一定很酷导语歌谣歌谣......
  • android网络通讯数据封装之 json
    Demo程序包括客户端和服务端客户端按json数据格式封装数据传至服务端。服务端为简单的servlet程序,负责接收客户端传到json数据,然后按原数据返回客户端.实例代码如下:publicstaticStringcmdLogIn(){StringurlString="http://192.168.8.75:89/webroot/jsontest";HttpPo......
  • 基于面向对象的数据封装
    基于面向对象的数据封装目录基于面向对象的数据封装1基于面向对象的数据封装优点2示例1基于面向对象的数据封装优点将属性和方法放到一起做为一个整体,然后通过实例化对象来处理;隐藏内部实现细节,只需要和对象及其属性和方法交互就可以了;对类的属性和方法增加访问权限控制......
  • 【个人模板封装】树套树、高维数据结构
    前言这是我个人使用的一些模板封装,限于个人能力,可能存在诸多不足与漏洞,在未加测试直接使用前请务必小心谨慎。更新可能会滞后于我本地的文档,如有疑问或者催更之类的可以在评论区留言。全文模板测试均基于以下版本信息,请留意版本兼容问题。Windows,64bitG++(ISOC++20)stack......
  • Vue3中使用TypeScript封装axios遇到的问题(AxiosRequestConfig)
    如果您有更好的解决方法,欢迎评论区评论。版本"dependencies":{"axios":"^1.0.0","vant":"^4.6.3","vue":"^3.3.4","vue-router":"^4.2.4","vuex":&quo......
  • H5打包封装小程序系统开发
    H5打包封装小程序系统开发H5打包封装小程序系统开发是指将H5页面打包封装成小程序的开发过程。下面是一个简单的步骤:准备工作:首先,需要准备好H5页面的代码和资源文件。确保H5页面在浏览器中正常运行,并且没有依赖于浏览器特定的功能。创建小程序项目:在微信开发者工具中创建一个新的小......