C#面向对象编程(三)属性和索引

更新时间:2023-04-22 18:12:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

C#面向对象编程

C#面向对象编程( C#面向对象编程(三) 属性和索引berry博客: berry博客:

C#面向对象编程

5.2 属性5.3.1 get访问器 get访问器 5.3.2 set访问器 set访问器

C#面向对象编程

属性在设计一个类时,总是要隐藏一些私有成员,将这些成员设 置成private,禁止类外面的方法直接访问这些成员,要访问 这些私有的成员可以通过一些公有的方法。 例:用公有方法访问私有成员 using System; class Empolyee { double salary=100.00; public double AccessSalary( ) { return salary; } } } class Mainclass { public static void Main( ) { Empolyee e=new Empolyee( ); double s=e.AccessSalary( ); Console.WriteLine(“s={0}”,s); }

C#面向对象编程

C#给我们提供了一种更理想的方法,就是属性,通过属性让 用户像访问公有成员字段一样来访问类的私有成员字段。属 性机制中有两个属性访问函数get和set,即属性的读写是由get 和set来实现的。如果没有set方法则表示属性是只读的,如果 没有get方法则表示属性是只写的。 在类中定义属性的格式: 修饰符 类型名 属性名 { get{ } set{ } }

C#面向对象编程

5.3.1

get访问器 get访问器

private string id; //定义了一个私有字段id public string Id { get //属性中的get访问器 { return id; } } 有了上述的属性定义后,我们就可以通过直接访问公有的Id属性, 来实现对私有字段id的访问。 //定义了一个属性Id,注意不能与私有字段同名

C#面向对象编程

get访问器完整例子 get访问器完整例子using System; public class Student { private string name; private string number; public Student(string na,string nu) { name=na; number=nu; } public string Name { get{ return name;}} public string Number { get{ return number;} } } } Console.WriteLine(“{0}”,); Console.WriteLine(“{0}”,s1.Numbe r); } public class AppMain { public static voic Main( ) { Student s1=new Student(“zhaojing”,”200435672’);

C#面向对象编程

5.3.2

set访问器 set访问器

private string id; //定义了一个私有字段id public string Id { //定义了一个属性Id,注意不能与私有字段同名

get //属性中的get访问器 { return id; } set //增设的set访问器 { id=value;}

} set访问器意味着可以对成员的值进行写操作。如果我们对属性Id赋 值,就意味着调用了set访问器,如s.Id=“zhanghua”;(s是类实例)。

C#面向对象编程

属性的访问属性的访问实际上就是调用相应的set或get方法。 s.Id=“zhanghua”表示对s变量的属性进行设置,相当与调用set_Id 方法;而Console.WriteLine(s.Id)表示对s变量的属性进行获取,相 当于调用get方法。 get 编译器将自动产生相应的方法。 如对于上面的Id属性,产生的方法为 void set_Id(string value); string get_Id( );

C#面向对象编程

属性和域的选择属性可以实现只读或只写;属性还可以返回一些经过计算或处理 过的数据;属性的实现实际上是方法的实现,可以具有方法的一

些特点。 在C#中,属性和域的选择一般采取以下原则: 1、若在类的内部记录事物的状态信息,用域变量; 2、域变量一般用private修饰,以防止对外使用; 3、对外公布事物的状态信息,则使用属性; 4、属性一般与一个域变量或几个域变量有关。

C#面向对象编程

5.3 索引在数组中我们可以通过下标来方便地访问数组中的元素,索引器 可以让我们把对象当成数组一样来方便地访问,即可以是对象能 用下标来得到一个值。 定义以后的使用: class Myclass Myclass mc=new Myclass( ); { public object this [int index] //生成一个实例mc { get mc[0]=object1; { ......} //访问类型为object的私有成员 set 数组的第一个值 {......} Console.WriteLine(“{0}”,mc[0]); } //读出mc中私有数组的第一个值

C#面向对象编程

索引的定义class Myclass

索引的定义与属性类似,也有get和 { public object this [int index] set方法,但是没有属性名字,而是 用this表示索引。 this { get 使用参数列表来表示使用索引的参 { ......} 数,至少需要一个参数。 set 索引的使用是使用放括号[ ],如 {......} mc[0] , 即 对象名[参数] }

C#面向对象编程

索引使用举例:假设有一个数组, 索引使用举例:假设有一个数组,其中保存了公司职员的姓名和工资,利用一个索引来输出公司职员的信息。 姓名和工资,利用一个索引来输出公司职员的信息。 using System; class EmployeeName { private string [ ] name; public EmployeeName( ) { name=new string[ ]{“zhang”,”li”,”wang”}; } public string this [int index1] { get{ return name[index1]; } set{ name[index1]=value;} } }定义索引器访 问员工姓名

class EmployeeSalary { private double [ ] salary; public EmployeeSalary( ) { salary=new double [ ]{5000,3800,2900}; public double this[int index2] { get{ return salary[index2];} set { salary[index2]=value;} } }定义索引器访问 员工工资

C#面向对象编程

class AppMain { public static void Main( ) {

总结:利用索引器可以把 对象 当作数组来访问(实 际访问的是对象内部的私 有成员数组),从而提高 代码的可读性。

EmployeeName en=new EmployeeName( ); EmployeeSalary es=new EmployeeSalary( ); for(int i=0;i<3;i++) Console.WriteLine(“姓名:{0} 工资:{1}”,en[i],es[i]); } } 利用索引器输 出员工信息

本文来源:https://www.bwwdw.com/article/8w2q.html

Top