当前位置: 首页 > news >正文

C#-类:成员属性

数据成员 ≠ 属性 = 成员属性

属性可以理解为一种封装

  1. 成员属性概念:一般是用来保护成员变量的

  2. 成员属性的使用和变量一样,外部用对象点出

  3. get中需要return内容 ; set中用value表示传入的内容

  4. get和set语句块中可以加逻辑处理。应用:加密解密

  5. get和set可以加访问修饰符,但是要按照一定的规则进行添加

  6. get和set可以只有一个

  7. 自动属性是属性语句块中只有get和set,一 般用于 外部能得不能改

一:属性的语法规则

1.1 使用常规方法对字段进行封装

class Student
{private int age;public void SetAge(int age) { this.age=age;}public int GetAge(){ return age;}
}
-----------------------
Main()
{Student a1=new Student();a1.SetAge(17);Console.WriteLine(a1.GetAge());
}

1.2 使用属性对字段进行封装 

属性命名:一般使用帕斯卡命名(首字母大写)

1.2.1 属性的完整写法
public class Person
{private string _name;public string Name{get { return _name; }set { _name = value; }}
}
---------
//属性的使用
void Main(){Person p = new Person();p.Name="小白";//调用set逻辑Console.WriteLine(p.Name);//调用get逻辑
}

 一般需要配置一个私有的字段,并在属性的 get 和 set 访问器中添加自定义逻辑

1.2.2 自动属性
public class Person
{public string Name { get; set; }
}

系统会自动生成一个私有的返回字段 

1.2.3 只读属性
public class Person
{public string Name { get; private set; }
}

 只能被读取,不能被外部代码修改

1.2.4 表达式属性

C# 6 引入了表达式成员,允许使用一行代码定义属性。

public class Person
{public string Name => "John";
}
1.2.5 有逻辑的属性

可以在get,set语句块中增加逻辑,如验证、记录、计算等

public class Person
{private int _age;public int Age{get { return _age; }set{if (value < 0)return -1;_age = value;}}
}

二:属性的访问权限

不能同时让set和get的访问修饰符与外部的访问修饰符不同 。

不能外部private而内部是public

相关文章:

C#-类:成员属性

数据成员 ≠ 属性 成员属性 属性可以理解为一种封装 成员属性概念&#xff1a;一般是用来保护成员变量的 成员属性的使用和变量一样&#xff0c;外部用对象点出 get中需要return内容 &#xff1b; set中用value表示传入的内容 get和set语句块中可以加逻辑处理。应用&#…...

qt QDragEnterEvent详解

1、概述 QDragEnterEvent是Qt框架中用于处理拖放进入事件的一个类。当用户将一个拖拽对象&#xff08;如文件、文本或其他数据&#xff09;拖动到支持拖放操作的窗口部件&#xff08;widget&#xff09;上时&#xff0c;系统会触发QDragEnterEvent事件。这个类允许开发者在拖拽…...

Vue项目与IE浏览器的兼容性分析(Vue|ElementUI)

总体分析 Vue.js的兼容性在不同版本间有所差异&#xff0c;具体针对IE浏览器的推荐版本如下&#xff1a; Vue 2.x 官方支持&#xff1a;Vue 2.x版本官方宣布支持IE9及以上版本的IE浏览器。限制与Polyfill&#xff1a;虽然Vue 2.x支持IE9及以上版本&#xff0c;但在使用时可能…...

【C++之STL】一文学会使用 string

文章目录 1. STL导读1. 1 什么是STL1. 2 STL的版本1. 3 STL六大组件1. 4 STL的重要性1. 5 STL的学习1. 6 STL系列博客的规划 2. string2. 1 为什么学习string类?2. 2 标准库中的string2. 3 基本构造2. 4 尾插与输出运算符重载2. 5 构造函数2. 6 赋值运算符重载2. 7 容量操作2.…...

好用的办公套件--- ONLYOFFICE

目录 引言 UI界面 ONLYOFFICE 协作空间 使用协作空间三步走 一、注册与登录 二、创建房间 三、上传与编辑文档 ONLYOFFICE协作空间的安全性 ONLYOFFICE 文档 关于 ONLYOFFICE 引言 ONLYOFFICE 桌面编辑器 ONLYOFFICE是一款功能全面的办公套件&#xff0c;支持文档、表…...

Android View事件分发

目录 1.什么是View事件分发&#xff1f; 2.事件的类型 3.事件的发生 4.事件分发的方法 4.1 dispatchTouchEvent() 4.2 onTouchEvent() 4.3 onInterceptTouchEvent() 5.滑动冲突 5.1 外部拦截法 5.2内部拦截法 6.onTouch的执行高于onClick 7. onTouch()和onTouchEve…...

攻防世界GFSJ1229 Three

​ 题目编号&#xff1a;GFSJ1229 解题过程 1. 附件下载是三个压缩包A.zip B.zip C.zip和一个python程序Three.py 2. A.zip可以直接解压出来&#xff0c;内容如下: 2022-08-27 20:16:04.246131 Func A0*X0B0 2022-08-27 20:16:05.116859 Read_Data A0.txt->A0(28829613228…...

2023 icpc杭州(M,J,D,G,H)

文章目录 [M. V-Diagram](https://codeforces.com/gym/104976/problem/M)[J. Mysterious Tree](https://codeforces.com/gym/104976/problem/J)[D.Operator Precedence](https://codeforces.com/gym/104976/problem/D)[G. Snake Move](https://codeforces.com/gym/104976/probl…...

在CentOS 7上安装Alist

在CentOS 7上安装Alist 的步骤如下&#xff1a; 1. 卸载旧版本 如果你之前安装过旧版本的Docker&#xff0c;可以先卸载它&#xff1a; sudo yum remove docker docker-common docker-snapshot docker-engine2. 安装依赖包 确保你的系统是最新的&#xff0c;并安装必要的依…...

【C/C++】memcpy函数的模拟实现

零.导言 上一篇博客我们学习了memcpy函数&#xff0c;不妨我们现在尝试模拟实现memcpy函数的功能。 一.实现memcpy函数的要点 memcpy函数是一种C语言内存函数&#xff0c;可以按字节拷贝任意类型的数组&#xff0c;因此我们自定义的模拟函数需要两个无类型的指针参数&#xff…...

嵌入式开发之线程互斥

目录 互斥锁初始化-pthread_mutex_init 申请锁-pthread_mutex_lock 释放锁-pthread_mutex_unlock 同步 VS 互斥 临界资源:一次只允许一个任务(进程、线程)访问的共享资源,不允许多个任务同时访问的。 临界区:访问临界区的代码 互斥机制:mutex互斥锁,任务访问临界资…...

JavaScript 变量作用域与函数调用机制:var 示例详解

JavaScript 变量作用域与函数调用机制&#xff1a;var 示例详解 在 JavaScript 中&#xff0c;作用域和闭包是理解变量生命周期和行为的核心概念。通过以下这段代码&#xff0c;我们将详细分析如何在不同的作用域内使用 var 关键字&#xff0c;并解释相关的变量访问规则 代码解…...

Linux(CentOS)安装 JDK

1、下载 JDK 官网&#xff1a;https://www.oracle.com/ 2、上传 JDK 文件到 CentOS&#xff0c;使用FinalShell远程登录工具&#xff0c;并且使用 root 用户登录 3、解压 JDK 创建目录 /export/server mkdir -p /export/server 解压到目录 /export/server tar -zxvf jdk-17…...

AI产品经理实战手册:策略、开发与商业化指南

通过《AI产品经理手册》&#xff0c;将可以了解不同类型的AI&#xff0c;如何将AI整合到产品或业务中&#xff0c;以及支持创建AI产品或将AI集成到现有产品所需的基础设施。熟悉实践管理AI产品开发流程、评估和优化AI模型&#xff0c;以及应对与AI产品相关的复杂伦理和法律问题…...

【大语言模型】ACL2024论文-06 探索思维链COT在多模态隐喻检测中的应用

【大语言模型】ACL2024论文-06 探索思维链COT在多模态隐喻检测中的应用 目录 文章目录 【大语言模型】ACL2024论文-06 探索思维链COT在多模态隐喻检测中的应用目录摘要研究背景问题与挑战如何解决创新点算法模型1. 知识总结模块&#xff08;Knowledge Summarization Module&…...

Linux之初体验

目录 第1关&#xff1a;1-Linux初体验 第2关&#xff1a;1-Linux常用命令 第3关&#xff1a;1-Linux 查询命令帮助语句 第4关&#xff1a;2--查询命令-locate 第5关&#xff1a;2--查询命令-which/whereis 第6关&#xff1a;2--查询命令-find 第7关&#xff1a;3-Linux文…...

现代化水电管理:Spring Boot在大学城的实践

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…...

黑马官网2024最新前端就业课V8.5笔记---HTML篇

Html 定义 HTML 超文本标记语言——HyperText Markup Language。 标签语法 标签成对出现&#xff0c;中间包裹内容<>里面放英文字母&#xff08;标签名&#xff09;结束标签比开始标签多 /拓展 &#xff1a; 双标签&#xff1a;成对出现的标签 单标签&#xff1a;只有开…...

GS-Blur数据集:首个基于3D场景合成的156,209对多样化真实感模糊图像数据集。

2024-10-31&#xff0c;由韩国首尔国立大学的研究团队创建的GS-Blur数据集&#xff0c;通过3D场景重建和相机视角移动合成了多样化的真实感模糊图像&#xff0c;为图像去模糊领域提供了一个大规模、高覆盖度的新工具&#xff0c;显著提升了去模糊算法在真实世界场景中的泛化能力…...

Linux下Java的多种方式安装

Linux下Java的多种方式安装 博客&#xff1a; www.lstar.icu 开源地址 Gitee 地址&#xff1a; https://gitee.com/lxwise/iris-blog_parent Github 地址&#xff1a; https://github.com/lxwise/iris-blog_parent 序言 Java是一门面向对象的编程语言&#xff0c;不仅吸收了…...

第19节 Node.js Express 框架

Express 是一个为Node.js设计的web开发框架&#xff0c;它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用&#xff0c;和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

聊聊 Pulsar:Producer 源码解析

一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台&#xff0c;以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中&#xff0c;Producer&#xff08;生产者&#xff09; 是连接客户端应用与消息队列的第一步。生产者…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具&#xff0c;可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下&#xff1a; ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜&#xff1a; ffmpeg…...

如何将联系人从 iPhone 转移到 Android

从 iPhone 换到 Android 手机时&#xff0c;你可能需要保留重要的数据&#xff0c;例如通讯录。好在&#xff0c;将通讯录从 iPhone 转移到 Android 手机非常简单&#xff0c;你可以从本文中学习 6 种可靠的方法&#xff0c;确保随时保持连接&#xff0c;不错过任何信息。 第 1…...

ArcGIS Pro制作水平横向图例+多级标注

今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作&#xff1a;ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等&#xff08;ArcGIS出图图例8大技巧&#xff09;&#xff0c;那这次我们看看ArcGIS Pro如何更加快捷的操作。…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制&#xff1a; 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程&#xff0c;创建出来的进程就是子进程&#xff0c;原来的进程为父进程。…...