C#封装与值传递
2021-03-28 20:27
标签:nbsp write 保护 解决 方法 比较 值传递 内部数据 turn 一.==和equals()的区别 2.在C#中,==和Equals()方法的作用相同,比较两个字符串的值,因为当我们使用==的时候,在底层代码中它还是调用了Equals(); 二.访问级别 1.public 公有的 外界任何地方都可以访问到,访问级别最高 三.this关键字 四.如何给私有字段赋值和取值 return this.name; this.name=name; } get{return this.age;} value=18; }else{ this.age=value; get和set都存在:读写属性 六.对象初始化器 七.封装 int num1 = 5; public static void Swap(ref int num1, ref int num2) 九.形参和实参 C#封装与值传递 标签:nbsp write 保护 解决 方法 比较 值传递 内部数据 turn 原文地址:https://www.cnblogs.com/yjc1605961523/p/9315951.html
1.在java当中,==比较的是内存首地址,equals比较的是两个字符串在内存中的值
2.private 私有的 只能类的内部使用,其他类中访问不到 访问级别最低
通过this可以访问当前类的所有成员变量和方法
例如:this.name;
this.Show();
private string name;
public string GetName(){
}
public void SetName(string name){
五.使用属性解决数据安全问题,通过公有属性访问私有字段
private int age;
public int Age{
set{
if(vaule100){
this.age=value;
}
}
}
只有get时:只读属性
只有set时:只写属性
属性的作用:
控制私有字段的可访问性
保护内部数据的安全
类内部敏感字段使用属性来控制访问
Student stu = new Student(){Name="Mike", Age=20};
封装字段——将类中的字段、属性绑到一起
将私有字段封装成公有属性
封装是面向对象的三大特性之一(继承,多态)
好处:
1.隐藏了类中的内部细节
2.避免了非法数据
3.保证了数据的安全性和完整性
八.值传递和引用传递
值传递:传递的是真实的值(更改的只是值)
引用传递:传递的事内存地址(在我们交换或者更改值的时候更改的是内存地址中的值)
注意:
1.如果使用引用传递的话必须要将参数初始化
2.如果在使用引用传递的时候在方法调用时需要加上ref
int num2 = 10;
Console.WriteLine("交换之前的值:" + num1 + "\t" + num2);
Swap(ref num1,ref num2);
Console.WriteLine("交换过后的值:" + num1 + "\t" + num2);
Console.ReadLine();
{
int temp = 0;
temp = num1;
num1 = num2;
num2 = temp;
}
形参:构建方法时括号的参数叫形参,形参列表
实参:调用方法时所传递的参数成为实参