C#语言————第三章 使用属性升级MyBank
********常见的访问修饰符*********:
public :公共的,可以在其他类中访问
private:私有的,只有在本类里可以使用,其他的类无权访问
类的默认访问修饰符 internal(同一程序集中的文件内才是可访问的,后期讲)
字段和方法的默认访问修饰符是:private
**************值传递和引用传递*************
①:值传递:把参数的值传到方法里面,如果在被调用的方法中对参数的值进行了修改,在方法调用之后,不保留对参数的修改。
②:引用传递:引用传递的方式,如果在被调用的方法中对参数的值进行了修改,在方法调用之后,仍然保留对参数的修改。
按引用传递:ref
形参与实参同时加ref
定义方法
Swap(ref int num1,ref int num2);
调用方法
Swap(ref num1,ref num2);
*********this用法*************
this:表示当前对象,通过this可以访问当前类中的成员
作用:当前变量与局部变量同名的情况下,用于区分变量的(this访问的是成员变量)
*******c#中的属性*************
1:用方法保证数据的安全
Private int _age; //年龄
//通过方法访问年龄的值
public int GetAge()
{
return this._age;
}
//对年龄的输入加以限制
public void SetAge(int age)
{
if (age < 0 || age > 100)
{
this._age = 19;
}
else
{
this._age = age;
}
}
2:用属性实现字段的 (封装隐藏内部细节避免不合理赋值)
①:属性:如果要访问类中的私有字段,需要通过get和set访问器实现,这种结合了字段和方法的实现方式,称之为属性
②:属性的语法:
private int _age;
public int Age
{
get{ return _age;}
set{ _age=value; }
}
对
public int Age
{
get
{
return _age;
}
set
{
if (value < 0 || value > 100)
{
_age = 19;
}
else
{
_age = value;
}
}
}
③:属性的数据类型
定义类中的一个属性时,属性的数据类型(int Age)必须与他所访问的字段类型(int _age)一致。
④:属性的访问类型
get访问器(只读):访问get访问器
set访问器(只写):执行set访问器
⑤:在编码中快速的创建属性
选中私有字段 重构 封装字段(光标放在所封装的字段上,ctrl+R+E 生成属性)
⑥:对象初始化器
Student student = new Student(){name="Tom",Age=20};
***********面向对象的封装***************
封装是将数据和操作方法保存在一起的技术(安全)
实现:将成员变量、方法和属性以类的方式进行封装,在类或对象之间通过消息传递进行相互交流,而传递的信息是通过调用类公开的方法完成的
特点:隐藏内部实现,对外只暴露对类的基本操作,不影响其他对象对类的实现
字段:类中的成员变量
属性:封装字段,本质是方法
语法:
public 数据类型 属性名
{
get{return 字段;}
set{字段 = value;}
}
属性的数据类型与所封装字段的数据类型一致
属性名与字段名相同,但使用帕斯卡命名法
C#语言————第三章 使用属性升级MyBank的更多相关文章
- C和指针 第三章 链接属性 extern、internal、none
三种链接属性 组成一个程序有多个源文件,如果相同的标识符出现在多个源文件中,那么标识符的链接属性决定如何处理在不同文件中出现的标识符. 链接属性有三种: external:外部 多个源文件中的相同标识 ...
- C语言 第三章 关系、逻辑运算与分支流程控制
目录 一.关系运算 二.逻辑运算 三.运算优先级 四.if语句 4.0.代码块 4.1.单if语句 4.2.if else 4.3.多重if 4.4.?号:号表达式 五.switch语句 一.关系运算 ...
- Vue基础第三章 - 计算属性
1.计算属性介绍 在第二章中我们介绍了在Vue的{{}}中可以使用一些简单的表达式进行计算,但是当表达式过长或者逻辑过于复杂就会变得不易理解和维护,比如第二章的示例{{ text.split(',') ...
- 新手小白入门C语言第三章:关于数据类型
C 语言包含的数据类型 1.整型 整型分为整形常量和整形变量,常量就是我们平时所看到的准确的数字,例如:1.20.333等等,变量则按我的理解是我像内存去申请一个存储空间,告诉内存空间我申请了这个地方 ...
- C语言 第三章 基础编程测试与练习
1.屏幕上输出:This is a C program 2.输入两个整数,求两个数的和,如下所示:请输入第1个数:5请输入第2个数:3 3加5的和是8 3.完成华氏温度与摄氏温度间的转换,如下所示:请 ...
- 使用属性升级MyBank
一.访问修饰符 private :使用private访问修饰符修饰的属性或者方法只能在本类中使用 public :可以在任何类中访问到 二.this 关键字:代表当前类,this.属性:代 ...
- 《Entity Framework 6 Recipes》中文翻译系列 (19) -----第三章 查询之使用位操作和多属性连接(join)
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 3-16 过滤中使用位操作 问题 你想在查询的过滤条件中使用位操作. 解决方案 假 ...
- 数据结构与算法分析——C语言描述 第三章的单链表
数据结构与算法分析--C语言描述 第三章的单链表 很基础的东西.走一遍流程.有人说学编程最简单最笨的方法就是把书上的代码敲一遍.这个我是头文件是照抄的..c源文件自己实现. list.h typede ...
- KnockoutJS 3.X API 第三章 计算监控属性(5) 参考手册
计算监控属性构造参考 计算监控属性可使用以下形式进行构造: ko.computed( evaluator [, targetObject, options] ) - 这种形式是创建一个计算监控属性最常 ...
随机推荐
- Java开发技术大揭底——让你认知自己技术上的缺陷,成为架构师
一.分布式架构体系 分布式怎么来的.传统的电信.银行业,当业务量大了之后,普通服务器CPU/IO/网络到了100%,请求太慢怎么办?最直接的做法,升级硬件,反正也不缺钱,IBM小型机,大型机,采购了堆 ...
- Linux学习笔记之二————Linux系统的文件和目录
一.Windows和Linux文件系统区别 1.在 windows 平台下,打开“计算机”,我们看到的是一个个的驱动器盘符: 每个驱动器都有自己的根目录结构,这样形成了多个树并列的情形,如图所示: ...
- Python:SQLMap源码精读—start函数
源代码 def start(): """ This function calls a function that performs checks on both URL ...
- spring cloud+.net core搭建微服务架构:配置中心(四)
前言 我们项目中有很多需要配置的地方,最常见的就是各种服务URL地址,这些地址针对不同的运行环境还不一样,不管和打包还是部署都麻烦,需要非常的小心.一般配置都是存储到配置文件里面,不管多小的配置变动, ...
- 06-TypeScript中的表达式
TypeScript中提供了箭头表达式,通过箭头表达式可以简化我们的编码. 1.箭头表达式简化匿名函数 在JS中,我们通常使用匿名函数,匿名函数实际上是赋值给一个变量,常见的写法如下: var sun ...
- underscore.js源码解析【'_'对象定义及内部函数】
(function() { // Baseline setup // -------------- // Establish the root object, `window` (`self`) in ...
- TCP/IP 笔记 - 广播和本地组播
在之前第二章介绍IP寻址的时候有介绍到,IP地址有4种:单播.组播.广播.任播. 单播,客户端与服务器之间点到点连接通信: 组播,在发送者和多个接收者(如某个特定的分组)之间实现点对多点的连接通信: ...
- TCP/IP 笔记 - 防火墙和网络地址转换
防火墙是位于内部网和外部网之间的屏障,是系统的第一套防线,作用是防止非法用户的进入. 网络地址转换是一种IP数据包通过路由器或防火墙时通过重写来源IP地址或目的地址的技术,可以用来隐藏或保护内部网络, ...
- 【PyTorch深度学习60分钟快速入门 】Part3:神经网络
神经网络可以通过使用torch.nn包来构建. 既然你已经了解了autograd,而nn依赖于autograd来定义模型并对其求微分.一个nn.Module包含多个网络层,以及一个返回输出的方法f ...
- ruby执行字符串代码
str = "a='abcd'; a.reverse" 字符串str为ruby代码,执行方法eval eval str => "dcba"