首先说明:在一个类中设置 set 和 get 方法是为了方便另一个类去对该类里面的属性或者对象进行值的获取和传入操作

有两种操作方式:

方式一(简单一点):

类 A 想要获取类 B 里面的属性值:

class A{B  b = new B(); b.args }class B{public int args{set; get;}args = 1;}

方法二:

class A{B  b = new B(); b.args }class B{private int ARGS; // 这个是本类的属性,其他类是不可见的public int args   //这个 args 是其提供给他类操作的{set{ARGS=value;}get{return ARGS;}}ARGS = 1;}

在类 B 中定义了两个属性:ARGS 和 args,这样做的原因是

第一:可以保护本类中的属性不受任意“侵犯”,这里的“侵犯”也就是其他类通过 set 方法给其随便赋值,set 方法里面的 value 就是其他类要给赋的值,比如在类 A 里面我可以这样写:

B b = new B();

b.args = 10000000000000;

此时就是通过 B 里面的 set 方法将 10000000000000 赋值给了value,而value又把它赋值给了类B里面的私有属性 ARGS,但是如果我在  set 方法里面做一个if 条件判断,就可以阻挡一些不规范的值过来,这就达到了不被随意“侵犯”的目的

第二:隐藏了 B 里面的私有属性 ARGS,也就是说在一些情况下,你可以对我 B 里面的私有属性 ARGS 进行赋值和取值操作,但是你是通过我定义的一个“别名”:args 操作的,并没有直接操作我类内部的私有属性 B,这在一些情况下确保安全性也是必要的

还有一点:如果想在类 A 里面获取的 B 对象对整个类 A 内的方法都适用,注意把 B b = new B();这句话声明在类 A 的方法体外(相当于全局对象)

C#的set 和 get 方法相关推荐

  1. 在 Oracle Enterprise Linux 和 iSCSI 上构建您自己的 Oracle RAC 11g 集群

    作者:Jeffrey Hunter 了解如何以低于 2,700 美元的费用在 Oracle Enterprise Linux 上安装并配置 Oracle RAC 11g 第 2 版开发集群. 本指南中 ...

  2. Java面试题大全2021版

    一.Java 基础 JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境. JRE:Java Run ...

  3. Kotlin协程使用,协程使用注意事项,协程中的await方法使用|不使用suspend使用协程

    参见 码云 协程使用方法一 (Dispatchers调度器模式) 指定不同线程.同线程会挂起并阻塞(挂起是不影响主线程执行,阻塞是同样的IO线程会阻塞) withContext(Dispatchers ...

  4. IDEA中将代码块封装为方法,IDEA代码重构快捷键

    IDEA中将代码块封装为方法 选中要转换的代码块,快捷键: Windows快捷键:Alt + Shift + M Mac快捷键:Alt + Command + M 如图:

  5. IDEA自动生成对象所有set方法

    idea中有一款插件能够生成对象所有的set方法,GenerateAllSetter :下载地址 步骤1:将下载好的压缩包放在自己记得的文件夹中,在idea中进行导入 步骤2:在本地选中刚才的压缩包, ...

  6. List元素互换,List元素转换下标,Java Collections.swap()方法实例解析

    Java Collections.swap()方法解析 jdk源码: public static void swap(List<?> list, int i, int j) {// ins ...

  7. java1.8新增超实用Map方法——Map.getOrDefault()和Map.value()方法详解

    1. Map.getOrDefault() 翻译一下官方解释: java.util.Map<K, V> V getOrDefault(Object key, V defaultValue) ...

  8. spring boot项目 中止运行 最常用的几种方法

    spring boot项目 中止运行 最常用的几种方法: 1. 调用接口,停止应用上下文 @RestController public class ShutdownController impleme ...

  9. Java Calendar.add()方法的使用,参数含义。指定时间差。

    cal.add()方法中的参数含义: 第一个参数如果是1则代表的是对年份操作,2是对月份操作,3是对星期操作,5是对日期操作,11是对小时操作,12是对分钟操作,13是对秒操作,14是对毫秒操作. 第 ...

  10. 设置select下拉框不可修改的→“四”←种方法

    设置select下拉框为不可修改的几种方法: 因为select的特殊性,导致它不能像input表单一样简单地设置一个readonly来限制修改,所以,我们需要进行别的操作! 1.为下拉框添加样式,可以 ...

最新文章

  1. poj 2892---Tunnel Warfare(线段树单点更新、区间合并)
  2. vue之slot用法
  3. setHomeButtonEnabled
  4. 数据结构与算法 -- 算法
  5. JavaScript中的setMonth()方法的小问题 解决:setMonth(month, 1)
  6. Flask部署| gunicorn、nginx部署flask项目,并用supervisor来管理进程
  7. Kubernetes + .NET Core 的落地实践
  8. 张掖计算机职称考试,甘肃省张掖市2018年3月计算机等级考试公告
  9. Java 理论与实践:您的小数点到哪里去了?(转载)
  10. Unity3D基础15:触发器
  11. 是什么让spring 5放弃了使用Guava Cache?
  12. netlink 0010 -- Generic Netlink 实现通信
  13. 《Doom启示录》(1-13)
  14. 《Linux内核分析》期末总结
  15. linux ftp强制删除,Linux FTP账号无法删除文件夹如何解决
  16. 头条小程序可以使用uniapp的地图选择(uni.chooseLocation)
  17. 带你快速入门AXI4总线--AXI4-Lite篇(3)----XILINX AXI4-Lite接口IP源码仿真分析(Master接口)
  18. CentOS 安装 Xware 迅雷远程下载程序
  19. web网页设计期末课程大作业——简单的学生网页作业源码 基于HTML仿唯品会电商项目的设计与实现
  20. 颜值,自拍,美学三大任务简介和数据集下载

热门文章

  1. 集合框架-ArrayList,Vector,Linkedlist
  2. RabbitMQ八:交换机类型Exchange Types--Topic介绍
  3. 如何在windows下用dos进入mysql
  4. opengl工具库glfw一 创建窗口
  5. 如何开发和维能hold住全场的软件
  6. DIY_DE2之DM9000A网卡调试系列例程(一)——准备工作
  7. RecastNavigation-NavMesh生成原理
  8. Mr.Xu的找实习之路
  9. (学习日记)裘宗燕:C/C++ 语言中的表达式求值
  10. 所有快捷方式失效的解决方法