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]); } } 利用索引器输 出员工信息
正在阅读:
C#面向对象编程(三)属性和索引04-22
九年级教育教育辅导定见04-19
工程经济学6套试题答案11-10
山东省实验中学2012-2013学年高一上学期期末考试物理试题(word版)09-07
修订版教科版六年级上册科学复习资料03-12
干熄焦提升机操作维护规程04-22
纳米SiO2表面修饰及在聚乳酸中的应用 - 吴改红刘淑强郭红霞董华肖云超孙卜昆戴晋明 - 图文11-18
污水处理论文09-10
日本社会50篇12-09
某特大连续刚构桥施工监控方案研究08-19
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- C#
- 索引
- 属性
- 面向
- 对象
- 编程
- 图书馆镜像服务与深度链接侵犯信息网络传播权的认定
- 电脑故障排查总攻略
- 电影音乐鉴赏——霸王别姬音乐赏析
- the pdf全文太行山区山野菜植物资源与开发利用探讨guide downloa
- 电摩界 修炼等级划分
- 2015年考研333教育综合大纲
- 《经济法》期末复习试题(答案)
- 日产2000T新型干法水泥生产线建设工程可行性研究报告
- 中美欧合作有利于世界和平与发展
- (整理)数字电路练习题及答案--施密特触发器
- 国内外卫星应用产业发展现状与趋势分析
- 西南边陲的特色旅游区──西双版纳(全)课件人教版
- 2014年小升初数学试题精选二
- 发展中日关系要看得远些(一九八四年三月二十五日)
- 金属氧化物避雷器带电测试方法浅析
- 关于制定《苏州市园林绿化工程扬尘污染
- 最全的毕业生登记表的班组鉴定班组意见
- 新街中学_2013年八年级生物上册复习提纲
- 选修4第二章复习(教案)
- 车队安全生产责任书