本帖最后由 王尼玛 于 2014-10-24 01:15 编辑
大家好,我是王尼玛。今天起我给大家讲解C#开发教程,本次是第十课。大家在课后有什么疑问可以跟帖留言,我会尽我所能来解答。毕竟众口难调,大家有什么建议也可以跟帖告诉我。
此教程为本人原创,转载请注明"吾爱汇编论坛王尼玛原创"
好了,废话不多说,开始今天的学习.
有朋友说不太明白我写的教程,其实编程这东西很简单,一个字,练!你光看我写的多半是一头雾水,因为你没实际跟着我讲的代码去操作,你要跟着我的代码敲,多敲代码,多练习我给的例子,再配合我例子后面的讲解,自然就明白我讲的是什么了.还不明白?跟帖问吧
本章理论会比较多,但必须好好看!面向对象编程思想很重要!我手打教程也很辛苦,觉得不错就评分和回帖吧!
1.前言
C#是一个面向对象的高级语言,因此我们要学会用面向对象的思想考虑问题和编写程序.现实世界中客观存在的任何事物都可以被看作对象.它可以是有形的,比如一辆汽车,也可以是无形的,比如一项计划.因此对象无处不在
在面向对象中,对象是用来描述客观事物的一个实体.用面向对象方法解决问题时,首先要对现实世界中的对象进行分析和归类,找出哪些对象与我们要解决的问题是相关的,下面以商场中的两个对象为例,看看我们身边的对象,如下图,张浩在超市购物后要刷卡结账,收银员李明负责收款并打印账单.在这个问题中,张浩和李明就是我们所关心的对象.下面选择一个角度对它们分类,比如两人角色不同,张浩是顾客,而李明是收银员,因此可以说,张浩是"顾客对象",李明是"收银员"对象
不同对象的静态特征和行为对照表
对象 | 静态特征 | 静态特征的值 | 动态特征 | "顾客对象" | 姓名 | 张浩 | 买东西 | 张浩 | 年龄 | 20 | | | 体重 | 60kg | | "收银员对象" | 员工号 | 10001 | 收款 | 李明 | 姓名 | 李明 | 打印账单 | | 部门 | 财务部 | |
2.对象的属性和方法
通过超市购物的例子可以看到,正是因为对象有了这些静态特征和动态特征才使得他们与众不同.在面向对象的编程思想中,我们把对象的的静态特征和动态特征分别称为对象的属性和方法,它们是构成对象的两个主要因素,比如上面的例子中,"顾客"对象有个属性是姓名.属性值是"张浩",顾客对象的动作有",买东西",这称为对象的方法.
3.封装
顾名思义,封装就是把一个事物包装起来,并尽可能隐藏内部细节,如下图
这辆车未组装前,是一堆散零件,比如发动机,方向盘等,仅仅这些部件是不能发动的.当把这些部件组装完成后,才具有发动机的功能.显然,这辆法拉利是一个对象,而零部件就是该对象的属性,发动,加速,刹车是他的方法.
4.类
类定义了对象将会拥有的特征(属性)和行为(方法)
类的属性:对象所拥有的静态特征在类中表示时称为类的属性.例如,所有顾客都有姓名,因此姓名可以称为"顾客类"的属性,只是不同对象这一属性值不同,比如顾客张三和李四的姓名不同
类的方法:对象执行的操作称为类的方法.例如,所有顾客都有购物行为,因此购物就是"顾客类"的一个方法
5.类是对象的类型
到目前为止,我们已经学习了很多数据类型,比如整型(int),双精度浮点型(double),字符型(char)等.这些都是C#已经定义好的类型,我们编程时只需要用这些类型声明变量即可.
那么,如果想描述顾客"张浩",他的数据类型是什么呢?字符串还是字符型呢?其实都不是,"张浩"的类型就是顾客,也就是说,类就是对象的类型.
6.如何定义类
如何在vs2013里创建自定义类:点击我传送
类定义了对象将会拥有的属性和方法
(1)语法:
其中public为类的访问修饰符
C#有如下访问修饰符:
- 1.四个访问修饰符: 指定声明的类的可访问性。
- public: 公共访问是允许的最高访问级别,对访问没有限制;
- private:私有访问是允许的最低访问级别,私有类只有在声明它们的类和结构体中才是可访问的;
- internal:类型和类型成员的访问修饰符。 只有在同一程序集的文件中,内部类型或成员才是可访问的;
- protected:受保护类在其所声明的类中可由其所声明类的派生类实例访问
- 2. 其他类的修饰符:
- abstract:用于声明虚类,指示某个类只能是其他类的基类。
- partial: 部分在整个同一程序集中定义分部类、结构和方法。
- sealed:指定类不能被继承。
- static:声明静态类,类型本身只含有静态成员,不能被实例化。
复制代码 目前我们只接触public,这代表这个类可以被其他类访问到,因为他是public(公开)的
(2)编写类的属性
通过在类的主体中定义变量来描述类所具有的静态特征(属性),这些变量称为类的成员变量
(3)编写类的方法
通过在类中定义方法来描述类所具有的行为,这些方法称为类的成员方法
问题:
在不同的培训中心(北京中心,杭州中心),你会感觉到相同的教学环境和教学气氛,用类的思想输出培训中心的信息
分析:
对上面的问题,北京中心和杭州中心是特指名词,这样得到两个对象,不同的培训中心是泛指名词,可以抽象成类.对于每个中心,都具有"中心名称","教师数目"和"机房数目",他们所具有的行为都有"展示本中心的信息".通过上述分析,我们抽象出这个类的属性和行为(方法),如下图:
解决方案:
- public class School
- {
- string schoolName;//中心名称
- int classNumber;//教室数目
- int labNumber;//机房数目
- /// <summary>
- /// 输出培训中心信息的方法
- /// </summary>
- public void showCenter()
- {
- Console.WriteLine(schoolName + "培训中心\n" + "配备:" + classNumber + "教" + labNumber + "机");
- }
- }
复制代码 在下一课,我们会详细讲解如何编写类的方法,这里做一个简单说明
语法:
方法名命名规则:
- 骆驼式命名法:方法或变量名的第一个单词首字母小写,后面每个单词的首字母大写,比如showCenter,userName 等
- 帕斯卡命名法:每一个单词的首字母都大写.比如ShowCenter.UserName等
大家可以看情况选择合适的命名法
7.如何创建和定义对象
类school定义好了,下面就可以根据定义的模板创建对象了.由类生成对象,称为类的实例化过程,一个实例也就是一个对象,一个类可以生成多个对象
语法:
在创建类的对象时,需要使用C#的new关键字,例如,创建一个School类的对象- School center = new School();
复制代码 这里变量center的类型就是School类型.使用new创建对象时,我们并没有给他的数据成员赋一个特定的值.考虑到每个对象的属性值可能是不一样的,所以在创建对象后再给它的数据成员赋值
在C#中,要引用对象的属性和方法,需要使用"."操作符
语法:
- 对象名.属性 //引用对象的属性
- 对象名.方法名() //引用对象的方法
复制代码 例如:(实例化上面写到的School类)
- class Program
- {
- static void Main(string[] args)
- {
- School center = new School();
- Console.WriteLine("****初始化成员变量前****");
- center.showCenter();
- center.schoolName = "北京中心";//给schoolName属性赋值
- center.classNumber = 10;//给classNumber属性赋值
- center.labNumber = 10;//给labNumber属性赋值
- Console.WriteLine("****初始化成员变量后****");
- center.showCenter();
- }
- }
复制代码 课件下载:
第十课.rar
(31.9 KB, 下载次数: 6)
本节课就到这,这节课内容比较多,手打教程也很辛苦,希望大家多多回帖加分支持我!谢谢大家
王尼玛C#初级开发原创教程目录:
1.C#初级开发原创教程第一课 Visual Studio 2013的安装
2.C#初级开发原创教程第二课 控制台的输出
3.C#初级开发原创教程第三课 数据类型转换
4.C#初级开发原创教程第四课 深入控制台应用程序
5.C#初级开发原创教程第五课 bool类型,关系运算符与if选择结构
6.C#初级开发原创教程第六课 复杂选择结构
7.C#初级开发原创教程第七课 循环结构(一)
8.C#初级开发原创教程第八课 循环结构(二)
9.C#初级开发原创教程第九课 数组
10.C#初级开发原创教程第十课 面向对象之类和对象
11.C#初级开发原创教程十一课 类的无参方法
12.C#初级开发原创教程十二课 带参数的方法(一)
13.C#初级开发原创教程第十三课 字符串的操作
|