首页 > 其他分享 >封装、static~

封装、static~

时间:2024-09-07 22:23:44浏览次数:15  
标签:封装 变量 成员 访问 static year

封装


1.封装的基本知识

1.1 什么是封装

在这里插入图片描述
  首先上面代码定义了一个Date类,类中有三个成员变量yearmonthday和一个printDate成员方法,通过main函数实例化了一个date1对象,date1.分别访问了变量和方法,输出了2024年9月7日

  但如果将成员变量year的访问限定符public改为private,则date1对象就不能访问year成员变量,也无法给year赋值。

在这里插入图片描述
  编译器报错,且提示year 在 Date 中是 private 访问控制,这个行为就叫对year成员变量的封装,意思就是隐藏date1对象中year的属性,仅能在自己的类中使用,别的类不能直接访问。
  当然,可以对类的成员变量封装,也可以对类的成员方法封装,同理将对方法的访问限定符改为private即可。
  那么要是想在别的类中访问year成员变量,就可以在Date类中设置一个对外公开访问的接口,来实现对象的交互,进而访问year
在这里插入图片描述
  我们在Date类中设置了setYeargetYear两个方法,用来设置year的值和获取year,这样在右边Test类中就可以访问setYear进行赋值,用getYear方法获取year的值,这样就能继续打印出2024年9月7日

1.2 为什么要封装

  封装就是为了将内部的实现细节隐藏起来,不对外公开,在自己的类当中访问,仅提供对外公开的接口进行交互,以提高代码的安全性。


2. static

2.1 static有什么用

在这里插入图片描述
上面代码可以看出,定义学生类,实例化了三个学生对象,但是当他们上课的教室在一起时,给三个学生的教室分别赋值,显得有些冗杂和繁琐。在java中,static关键字,可以修饰类的成员变量,将这个成员变量变为所有对象共享。

2.2 ststic修饰成员变量和方法

在这里插入图片描述
static修饰的变量,称为静态成员类成员,它不属于某个具体的对象,而是被所有对象共享。
它可以使用类名.来访问,也可以使用对象名.来访问,但更推荐类名访问
修饰成员方法时同理,给成员方法前加上static

public static String getClassRoom(){

static修饰的方法,称为静态成员方法,是整个类的方法,不是某个对象特有,并且不能在静态方法中访问非静成员变量。

标签:封装,变量,成员,访问,static,year
From: https://blog.csdn.net/2302_78564810/article/details/141973004

相关文章

  • HarmoryOS 网络请求模块及Axios库的封装
            我们在使用DevEecStudio进行网络请求时,需选择一个稳定、高效的网络库作为基础,如Axios、FetchAPI、Moya等;需要对网络请求的基本配置进行统一设定,比如基础URL、超时时间、默认请求头等;要进行错误处理:封装时应该考虑各种可能的错误情况,并提供统一的错误处理逻......
  • 封装
    封装就是把抽象出的字段和对字段的操作封装在一起,数据被保护在内部,数据的其他包只有通过被授权的操作方法才能对字段进行操作。封装的好处隐藏实现细节可以对数据进行验证,保证安全合理如何实现封装?建议将结构体、字段(属性)的首字母小写(其他包不能使用,类似于private)给结构体......
  • 必应每日壁纸API封装
    简介这个类封装了必应首页的每日壁纸查看功能,提供了查看、保存壁纸的方法,最大支持查看近8天的壁纸使用方法asyncTaskMain(){ try { varbing=BingWallpaperAPI.CreateInstance(8);//初始化,参数8表示一共会加载8张图片 vartask=awaitbing.Current(); task.Wal......
  • 响应式单位rpx及搭配UI产品工具和@import导入css样式和scss变量与用法static目录以及p
    1.响应式单位rpx及搭配UI产品工具1.对于rpx的认知和用法以及对于px的区别我们可以去官网先了解一下我们的rpx用法和注意以及与px的区别。链接:页面样式与布局|uni-app官网(dcloud.net.cn)我平时使用的px是我们的屏幕像素的单位,我们在一个页面创建一个view组件,并且给其在......
  • AI大模型接口封装
    在当今的AI应用场景中,许多企业和开发者面临一个共同的挑战:如何在不修改代码的情况下灵活调用不同的大模型(如OpenAI的GPT和Google的Bard),并且让这些调用尽可能简洁、可维护。这篇博客将介绍如何使用SpringBoot结合多种设计模式,实现一个屏蔽大模型差异的统一接口,从而使大模型应用更加......
  • 《C++中的面向对象编程三大特性:封装、继承与多态》
    在C++编程的广阔世界中,面向对象编程(Object-OrientedProgramming,OOP)的三大特性——封装、继承和多态,犹如三把强大的利器,帮助程序员构建出高效、可维护和可扩展的软件系统。本文将深入探讨如何在C++中实现这三大特性,并通过具体的代码示例展示它们的强大之处。一、封装(Enca......
  • 8.封装
    MODULE8 封装1.要回使用private关键字修饰成员,并知道被private修饰之后的作用(访问特点)是什么2.会使用set方法为属性赋值,使用get方法获取属性值3.会利用this关键字区分重名的成员变量和局部变量4.会利用空参构造创建对象,并知道空参构造作用5.会使用有构造创建对象,并为属性赋值......
  • 使用vue-json-pretty和vue-json-schema-editor-visual封装一个可视化json数据编辑器及
    一、前言        最近做了一个需求,要求实现可以对json结构进行编辑保存及字段级别的权限管控,结合目前已有的轮子和当前项目的结构,决定使用vue-json-pretty和vue-json-schema-editor-visual来实现效果如下组件支持修改左侧json数据,自动生成右侧树。也支持修改右侧树......
  • 低成本消费类电子主控推荐,PY32F002B单片机 多种封装可选
    今天给大家推荐一颗高性价比单片机,普冉的PY32F002B,专为超高性价比、精简的系统而设计,符合消费市场的基本设计需求,被低成本消费类电子广泛应用。PY32F002B单片机在低成本消费类电子领域具有极大成本优势,价格比部分八位单片机还要便宜,常用的TSSOP20只要5毛,我们还提供无丝印版本给有需......
  • 【Moveit2】MoveGroupInterface设置目标姿态,然后创建一个计划到该姿态的运动路径,stati
    PlanandExecuteusingMoveGroupInterface//CreatetheMoveItMoveGroupInterfaceusingmoveit::planning_interface::MoveGroupInterface;automove_group_interface=MoveGroupInterface(node,"panda_arm");//SetatargetPoseautoconsttarget_p......