第三章 使用属性升级MyBank

1、C#中的访问修饰符:

a) public 【公共的】访问不受到任何限制,级别最高。一般用于修饰方法,提供给其他类调用。

b) private 【私有的】只有类的内部可以使用,一般用于修饰字段,保证数据的安全性。

注:如果在成员定义之前没有指定访问修饰符,默认为internal,可理解为只能在本项目中访问。

2、C#中的this关键字:

可以看做是当前类的实例(对象),可以调用当前类的所有成员变量(字段)和方法。

This——this调用的是成员变量。当名字相同时,使用this可以获得当前对象(成员变量)。

3、属性

a) C#中使用属性对字段进行封装:使用get和set访问器。

相当于使用getset方法:

private string name;

public string GetName(){

    return name;

}

public void SetName(string name){

     this.name = name; }

注:(1)Get方法有返回值类型没有参数;(2)Set方法没有返回值有参数;(3)this表示当前类的对象。

b) 对字段的使用:

1、创建对象

如:Student stu=new Student();

2、使用Set方法设置字段值

stu.SetName("张三");

3、使用变量接收调用get方法得到的值

string name=stu.GetName();

4、使用

Console.WriteLine(name);

5、停留

Console.ReadLine();

c) C#中的属性:在C#中私有字段通过get|set访问器进行访问实现,这种结合了字段和方法的实现方式叫做属性。

  • 属性的语法:

private string _name;

public string Name

{

get{ return _name; }

set{ _name=value; }

}

注:自己的私有字段不给别人用,但是提供了可以让别人访问的公开方法,自己的方法可以调用自己的字段。定义类中的一个属性时,属性的数据类型必须和它所访问的字段类型一致。

  • 对字段的使用:

1、创建对象:

如:Student stu=new Student();

2、给属性赋值

stu.Name="zhangsan";

3、用变量接收得到的属性值

string name=stu.Name;

4、使用

Console.WriteLine("name="+name);

5、停留

Console.ReadLine();

  • 属性的作用:

控制私有字段的可访问性,保护内部数据的安全

  1. 属性的3种访问类型
    1. 只读属性——只包含get访问器
    2. 只写属性——只包含set访问器
    3. 读写属性——只包含get和set访问器

d) 封装字段:在C#中将类中的字段、属性绑到一起,使用属性对字段进行封装。

  1. 封装——封装是面向对象的三大特性之一。
  2. 好处——避免非法数据的访问,保证数据完整性。

*****************************************************************

类的成员——字段:数据|属性:读写状态|方法:操作行为

*****************************************************************

4、C#中的引用传递和值传递

a) 值传递

  1. 方法的定义:

访问修饰符   返回值类型  方法名(数据类型 值1,数据类型 值2.。。。)

{

//方法体

}

  1. 值传递参数的调用:对象名.方法名(值1,值2.。。。);

注:值传递只在方法中改变,却不返回改变,参数仍然是原来的值。

b) 引用传递

  1. 方法的定义:

访问修饰符   返回值类型  方法名(ref 数据类型 1,ref 数据类型 2.。。。)

{

//方法体

}

  1. 引用传递参数的调用:

对象名.方法名(ref 1,ref 2.。。。);

  1. 调用的注意事项:
    1. 定义和调用之前都需要加上ref
    2. 作为参数的变量必须声明和赋值
    3. 希望保留参数更改的时候使用

c) 比较值传递和引用传递——3.4.4

  • 值传递——不能对原始数据进行修改

因:值传递是将变量的值复制一份给方法,使得方法的形参和实参的值相同,在调用的方法中修改形参也只是对实参复制品的数据做更新,并没有真正改变实参的值。

  • 引用传递——对原始数据进行修改并保留

因:直接将数据引用,使得调用方法直接对引用对象进行更改,会影响实参原来的值。

原文地址:https://www.cnblogs.com/suola/p/11344126.html