欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    C#讲义参考.pdf

    • 资源ID:89833872       资源大小:11.27MB        全文页数:95页
    • 资源格式: PDF        下载积分:12金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要12金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C#讲义参考.pdf

    课程说明课程的定位高校计算机基础课信息专业的专业基础课课程学习的内容和基本目标(1)程序语言的基本理论(程序语言的背景、运行环境、词、短语、句子、结构、对象、类.)(2)项目的思维一注重项目过程、团队合作(3)程序的思维(4)简单的应用程序开发,为二次开发打下基础程序设计的发展过程1.面向过程 C Pascal2.面向对象C+JAVA2.1 面向组件(控件)学习内容(1)面向对象的程序设计思维(2)可视化程序设计一界面设计(3)控件的属性、事件、方法(4)程序设计(编程)一简单Windows应用程序的开发一解决实际问题(5)了解项目执行的过程2.2 面 向 框 架.net j2ee3.面向服务SOA课程学习的方法(按项目的思维)(1)程序思维(2)项目的过程分析问题提出解决方案(自然语言+VB提供的控件的属性、事件、方法)界面设计、(控件的操作、属性的设 置)编 程 总结文档(3)团队合作、交流、沟通,对热点技术的了解、跟踪课程要求做笔记方法、方案、线索、重点概念.上机操作实验成果和文档跟上思路专题一程序设计的基本概念(1)程序-指令集,命 令 集(PC能够识别)(2)程序设计-按规范(语法要求)书写程序的过程=软件:程序+文档(3)程序语言的发展代码重用一调用a.面向过程(过程重用)-C语言b.面向对象00(对象重用)-J +JA V A 9面向 组 件(控件)(属性、事件和方法)V B 9面向框架C#c.面向服务S0A注意:程序语言是不断发展的,没有哪个最好,只要合适就行;学以致用自然语言-程序语言基础-某一程序语言一多个程序语言-自然语言.net(d o t n e t)的基本概念(1).net框架.net framework 与 vs 的关系.net framework 框架平台V s开发工具,.net framework平台下的一个开发软件Vs2008 framework 3.5C#中的文件组织1.以解决方案来组织所有的项目文件,2.一个解决方案可以包含多个项目,一个项目一个文件夹,项目名就是文件夹的名称3.注意整个解决方案的文件组织(层次结构)4.项目的执行结果一般包括exe或 d ll文 件(包括引用文件)5.项目涉及的其它资源文件(如图片、音乐、图标-rj-ri-)专 题 二 C#的语言基础1.数据类型、常量、变量一词法数据类型的意义:指定数据的意义、所分配的内存资源,以及相应的操作2.C#数据类型的分类值类型简单类型-整 型()、浮点型、布尔型Int32 a;int a;byte a=255;a=a+1;a=浮点型Float flo_a=1.2fDouble dle_b=1.2dDecimal dec_c=1.2563mChar布尔型Bool true/falseBool s;S=(2+2)=4.00000001f)I nt i=3J=4;/条件表达式枚举类型结构类型引用类型String=,5C:abc.txtu双引号表示(注意字符串本身有双引号)字符串操作:相加,长度,查找,大小写转换,位小结:学习数据类型时要注意数据类型的符号、取值范围、位数数据类型的使用条件音义=数据类型的使用3.常量与变量变量标识符号,分配内存单元(数据类型)指向这个标识变量的赋值,C#中,变量必须赋初始值,才能使用变量的特点:在程序中,值是可以变化的(重新赋值)变量的意义:程序中数据的变化=int n=1;int sum_n=O;For()变量的命名规则:区分大小写字母开头,关键字不作为变量名=camel命名法Pascallnt_a变量的分类-局部变量的作用范围-常量-赋初始值后,不能再赋值Const Pl=3.14159d;“词法”使用的总结:(1)数据类型的学习方法和内容数据类型的转换in t占3;float j=(float)i;分两种转换a 隐式转换条件:b.强制转换方 法 1:(类型名)变量名方法2:数值型一字符串ToString()方法Label 1.Text=total.ToString()方法3:数字型字符串9 数值型“13256-1325.6数值类型.M se()方法str=1325.6”double d=double.Parse(str)方法4:Convert类.方法Convert.Tol nt32String str=123.5”Roat f=Convert.ToFloat(str)方法5:装箱与拆箱装箱:值类型一object(类类型)拆箱:object值类型4.运 算 符(操作符)、表达式-(短 语)表达式的组成(结果)操作数(个数,变量、常量、函数.),运算符运算符的学习内容:符号表示、使用条件、特殊情况运算符的类型:算术运算符:+-*/%(1)+(双目运算符):两个数字,相加两个字串,相连接 join一个字串,一个数字,相连接一个字符,一个数字,转成unicode编码相加,*,/,%不同的数值类型进行运算时,结果的取值和数据类型;数据类型的取值范围;除法的结果数据类型取决于精度高的操作数;求余操作时,如果两个操作数为正负,结果的正负取决于被除数3/2=13.0/2=1.5-3%2=?Double d=2.965d;(int)d=2;今关于C#里的四舍五入的操作四舍六入五留双math.rounddouble d=3.2250;保留两位输出d=math.round(d,2);console.writeline(d);/?3.22如果是“5”(1)5后面为。或没有数字5前面是奇数进一位5前面是偶数舍去(2)5后面有数字进一位(2)比较运算符,v,=,b)?a:b;少三元运算符是一个右联运算符a?b:(c?d:e)(7)运算符的优先级小结:运算符的使用表 达 式 P44表达式的组成:运算符+操作数表达式的值(数据类型)5.语句结构学习内容:结构组成,代表语句,关键词,执行过程5.1 顺序结构代表语句:赋值语句、输入输出语句赋值语句-=为常量、变量赋值,int i=4;为对象或是控件的属性赋值label.text=我是一个好人”;注意:数据类型一类型转换;C#中的快捷赋值运算 符(+=,-=,*=);如何运行?C#中的输入格式输出;有 3 种形式的输入输出:(1)流格式T 空制台程序(2)采用输入输出控件可视化编程(3)文件形式本阶段,以(1)为例控制台的I/O,主要采用Console类的相应方法解决输入:Console.Read。;-ascii 码,intConsole.ReadLine();-字 串,string=赋值给变量一类型转换输出:Console.Write();Console.WriteLine();前提条件:输出一般带有格式要求的科学计数法,自然数,货币.输出格式今格式化符号代表的意义如何使用?在 write和 writeline中的使用Write(N,M:Ynn,变量 1,变量 2.);-格式化部分N-跟后面变量的序号对应,表示第n+1个对象(n 从 0 开始)输出的位置,oM表示输出的变量在控制台中所占据的字符个数,如果该数字为负数,则输出按照左对齐方式;如果该数字为正数,则输出按照右对齐的方式。:Yn是可选项,表示对变量的输出进行格式化,使用格式化符号int i=0;i+;int j=i+;double d=1256.689d;Console.WriteLine(ud=0:C,d);Console.WriteUne(u l=0,J=15,i,j);I=变量名,格式化符的使用,一般情况下用:,紧跟变量;除了用在write、writeline中外,还可以用于字符串转换中,即tostring方法-会查,会用ftp:192.168.38.715.2分支结构(选择结构)(1)组成条件表达式(比较运算符,逻辑运算符)(true/false)(2)C#代表语句主要分为i f和switch.case两种If语句=9 0优秀809 0良好o o o o oswitch(score-score%10)/10(case A:优秀break;case 8:优秀break;default:不及格)(3)使用一前提是书写条件表达式分析需求,将各种分支情况分析清楚5.3循环结构(1)组成-循环的条件、内容(2)代表语句 for,do while,while.do while(3)使用while循环1/2+2/3+3/4+.+99/100int n=2;double sum=0;while(n=100)条件 重复执行sum=sum+(n-1)/n;n+;console.writeline(sum);int n;double sum=0;for(n=1;n 每个循环体的内容,每一层循环控制变量的更新和取值(2)循环的条件(进入和退出)-条件表达式-退出语句(跳转语句)break,continuebreak-跳出这一层次的循环continue-跳到下一次循环6.上机练习一实验一:C#语言基础练习举例:输入三个数,判断能否组成三角形,如果可以,计算周长和面积(D分析问题,写出解决方案数 据 输 入:console.readline-字 符 串,类 型 转 换 成 数 值float/doubledouble.parse,convert.todouble;定义三个变量判断是否组成三角形条件表达式采用if语句 a0|b0|c0|a+bc|a+cb|b+caif(a0|b0|c0|a+bc|a+cb|b+c treeview与文件操作相关的控件:盘符、目录、文件列表少学习控件的方法用途、特点,属性,方法,事件今方案,查阅参考手册1 2.菜单控件m e n u s trip、快捷菜单(上下文菜 单)ContextMenuStrip(1)菜单菜单项、快捷键、分隔线、图标、子菜单、带复选、带单选(2)主要属性dock:停靠位置菜单的每一项可以看作是一个控件,可以设置它的属性、事件控件的命名text 输入的名字+toolsrtipmenuitemte x t属性,这里可以以&字母的形式,显示快捷键-a ltshortcutkeys fC trlshowshortcutkeys/trueimage选择图标checkedcheckonclickcheckstate(3)事件click上下文菜单-9哪个控件的右键菜单今一定要与其它控件关联-可以使用这种菜单的控件的contextMenuStrip属性上,选中你要关联的上下文菜单控件除了每一项的click事件外整个菜单打开(弹出)1 3.通用对话框根据对话框的功能,细分为打开文件、保存、打印、颜色、字体、文件目录这几种对话框,每一种对应一个控件打开文件对话框保存文件对话框共同重要属性:filename过滤器filterfilter=文本文件(*.txt)|*.txt|word2000 文档|*.doc|所有文档(*.*)|*.*”pic1.image=I mage.formfile(openfiledialog 1 .filename)=application.startpath 一程序当前所在的路径主要方法showdialog打开菜单的click事件openfiledialog 1 .showdialog();i f按的是打开按钮if(openfiledialogl.showdialog()=dialogresult.OK)可以得到=openfiledialogl.filename)dr =Mes s ageBo x.S ho w(文件+t his.Text +”的文字已经改变。r n r n想 保 存 文 件 吗?,记 事 本 ,Mes s ageBo xBu t t o n s.Y es No Can cel,Mes s ageBo xIco n.Exclam at io n);补充:messagebox注意1 .messagebox.show的不同形式(重载),以及messagebox的不同组成部分,如何表示2.注意获得“用户点击的是哪一个按钮”1 4.事件 事件驱动1.基本概念事件是对象(控件)对某个动作的“反应”事件的发行者 发送或引发事件的对象事件的订阅者接收或处理事件的对象2.主要指的是控件的事件的调用(订阅)控件事件选择后,是自动定义(使用委托的方式);在窗体编程中,主要编写的是事件过程注意:事件要触发后才执行(事件一定要有订阅者)-事件驱动3.控件的事件分类:键盘事件(key down,key press,key up)鼠标事件(click,dbclick,down,up .)焦点事件(get,lost.)C#中每个事件都有两个参数object sender,对引发事件的对象的引用_ _ 对象本身EventArgs e处理的事件对象具体的事件Form 1_MouseMove(o bject s en der,Mo u s eEven t Ar gs e)labell.text=n 当 前 坐标:”+e.X.ToString()+,+e.Y.ToString();)鼠标事件中的e有如下属性:X,Y 坐标Button 按键(左 L e ft,中 M iddle,右 Right,None)0怔1 按下并释放按钮的次数Detla“这些属性直接可以在事件过程中使用具体的鼠标事件MouseEnterMouseHoverMouseMoveMouseDownMouseUpMouseLeave键盘事件 键码参数对象参数 o bject s en der,接 收(对象)参数 Even t Ar gs e_ keyEven Ar gs,KeyP r es s Even t Ar gs如果是 KeyEvenArgs e 用于 keydown,keyup事件属性:Alt,Control,Handled,Shift,KeyCode_keydown,keyup 事件键盘代码KeyData_keydown,keyup,键数据KeyValue_.整数值如果是KeyChar _ 键盘 as cii 码KeyP r es s Even t Ar gs e_ 只能用于 keyp r s s 事件keycode keyvalue keycharAA65+add10343aA课堂练习:使用菜单和打开文件对话框,打开并显示一幅图片(使用 picturebox)1.分析问题菜单的使用:项的设置(图标、快捷键)、事件?打开文件对话框:设置:标题、初始路径、filter;目的:通过filename属性得到图片文件所在的路径使用:showdialog=dialog result.OK图片框:显 Z F 图 片:image=image.fromfile(opendialgo1.filename)显示方式:事件:菜 单(打开)的单击2.界面补充专题:数组1 .数组的相关概念为什么要使用数组数组的本质:一系列同数据类型的变量,以序列化(顺序)的形式存放在内存空间数组相关的要素:(1)数组名-按变量名的命名规则(2)维数 rank(3)长度就是指元素个数,占用的内存空间才要长度*数据类型所占空间(4)下标,索 引 口 下 标 从0开 始 算array1 元素(5)元素-元素就是一个变量,数组名 下标 来作为这个变量名(6)数据类型-元素的数据类型,值,引用-控件数组2.C#中数组的定义(1)定义声明(2)实例化(3)初始化double口 d;静态声明double口 d=1.01,2.03,3.22/静态声明并初始化d0=1.01d1=2.03动态声明:double d;/声明d=new double3;/实例化d=1.01,2.02,3.23;/初始化合并为:doubled=newdouble3 1.01,2.02,3.23;数据类型数组名;int array;定 义 了 一 个in t型的数组arrayint a=new int 10 0,1,2,3,4,5,6,7,8,9string week=new st ri ng口 “mon,”3.数组元素的访问(成员)元素-一变量每一个元素都可以进行“变量相关的操作”数组名 n -表示数组中的第n+1 个元素(变量)对于元素的操作,就是变量的操作,赋值,输出值对整个数组里面的元素进行操作:遍 历(循环结构,下标)分排序,查找要注意 的 是 顺 序(下标)通常跟循环结构+下标配合使用4.一维数组,二维数组维数以一维数组操作为主二维数组的定义int,b=new int,(1,2,1,1,3,4,3,3,5,6,7,8)b0,0=1;b0,1=2;.b 1,0=3;.按行存储,大括号的个数指的是行数,二维数组的访问,通常跟双重循环结构配合使用console.writeline(b0,0);b0,1b1,0=3b 交错数组b口 new数组 ,5.专门用于访问数组、枚举、结构等类型的循环语句foreach(元素,集合)在数组中的使用int a=new int1O 0,1,2,3,4,5,6,7,8,91输出元素值for(int i=0,i10,i+)console.write(ai.tostring+”“);foreach(int eachi in a)console.write(eachi.tostring+;)6.数组是一个对象所有的数组都来源于System.Array这个抽象基类实例化了一个数组对象后,可以使用system.array定义的属性和方法专题四面向对象的编程1 .面向对象的基本概念面向过程-90年代初,OOP对象的思维,解决实际问题类:-客观事物的抽象,模板对象:具体,类的实例化,通 过“类”产生的类与对象的关系:类是对象(事物)的 抽 象(共性),对象是类的实例化类的组成:类是一种数据类型(思考:数据类型的意义)-数据和行为=思考:与前面所学的数据类型比较,理解类类型的含义=类里面的数据和行为是要我们自己定义的=?类的声明和实例化修 饰 符 class类 名 类的数据和行为成员不以函数形式体现的,成员变量一手段,属性以函数形式体现的,成员函数一方法,行为)class Person成员变量数据类型变量名;pname string;height int;成员函数一方法void speak(s string)(console,writeline(s);)我们自己定义类,用来描述问题(客户需求)中的具体事物使用2.学 习 0 0 的主要内容:(1)用 类(对象)去描述客观事物-怎么描述,描述的内容(成员变量和成员函数)今设计模板的过程9 理解的重点:为什么要用类和对象去描述一代码重用类是一种数据类型,数据类型的意义面向对象不是对面向过程的否定,是面向过程的发展实际代码中的操作补充:修饰符public-公有的private-私有的 修饰符出现的位置类的类的内部(成员变量,方法)(2)类定义好后,如何使用?类的实例化一对象语法:类名对象名=new 类 名();PC mypc=new PC();int i;构造函数一类名同名成员访问:mypc.cpu=5,intel i7 8X;mypc.type=desktop”;类的内部:定义成员类的外部:一类要实例化,操作的是对象字段一属性 方法和意义?通过类的内部的操作,理解类的三大特性之一:封装类的内部之二:成员的行为:方法以函数形成表示成员的一种行为操作一方法修饰符 返回类型 方 法 名(参数)参数列表:数据类型参数名,函数过程,成员变量的初始化)a.修饰符,默认是privateb.返回值的数据类型,如果没有返回值,void;构造函数和析构函数没有返回类型C.重点:方法的参数,定义时使用的参数形参;调用时传递的参数-实参;传递方式:按 值(值参数),按 址(引用参数)d.函数过程(方法过程):主要是对成员变量的操作 面向过程e.构造函数允许多个,而且参数可以个数不同,甚至没有;参数的顺序可以不同.=方法的重载特殊的方法:构造函数和析构函数构造函数:一个类,一定会存在一个不带参数(默认)的构造函数构造函数不用返回类型,修饰符一定是public;一定跟类名同名;=类的实例化时,调用的其实是构造函数,初始化类类名 对象名=new 构造函数;构造函数的主要作用:在对象实例化同时,进行初始化 构造函数过程里面的语句,主要是对成员变量赋初值通过构造函数,一次性完成成员变量的赋初值-体现代码重用public Passtrain()(成员变量赋初值weight=0;p as s en ger s=1 0 0;wheels=6;这里有疑问?为字段还是属性赋初始值,取决于实际情况;p lat e=,0 6 4 5 8,j有参数的构造函数public Passtrain(int we,int p,int wh,string sp)为成员变量赋初始值weight=we;wheels=wh;/这里用 wheelspassengers=p;plate=sp;Console.WriteLine(客车类的有参构造函数被调用“);构造函数的使用mainP as s t r ain p s s l=n ew P as s t r ain();p s s l.S ho win fo ();显示结果P as s t r ain p s s 2=n ew P as s t r ain (1 0 0 0,20,4,“1 23 4 5 6 );p s s 2.S ho win fo ();int i=readline()int j=readline()P as s t r ain p s s 2=n ew P as s t r ain(i,j,k,s i);)messagebox.show()重载方法的重载:含义:在一个类中,定义多个同名的方法,签 名(参数的顺序,数据类型,个数)不同;调用时由程序自动匹配相应的方法=方法的重载修饰符-相 同(一般)返回值一可以不同析构函数一般情况下,不用重写析构函数public 类 名()释放资源不可以重载,不可以显式调用,不可以继承3.类与类之间的关系:继承1.继承的含义(1)类与类之间(2)单向(3)父 类(基 类)子类(派生类)(4)子类可以使用父类的成员(变量和方法),从而达到一种代码重用P76今为什么要继承?2.设计Point 类-x,y private 字段protected-X,Y属性,读写-无参构造Point()-带参构造Point(x,y)-tostring()circle 类:point继承 protected x,y X,Y属 性r周长面积直径dtostring()Cylinder:circlex,y X,Y pointr-circleh-高定义一个高的属性构造函数O构造函数(x,y,r,h):base(x,y,r)表面积一2*圆面积+周 长*高92*base.area()+h*base.Ci rcu m Ference()体积一圆面积*高玲 base.area。*htostring(x,y,r,h)应用控制台:main()可视化:某个事件过程内容:类的实例化,对象的使用一成员访问继承的定义和使用public class Qrcle:Point(子类的成员自有的,父类没有的)使用时,(条件允许)可以直接调用父类的成员Circle circle=new Qrcle(1,2,10);circle.X=10;继承的规则:(1)派生类自然继承基类的所有成员,但不包括构造函数和析构函数;但派生在可以调用构造函数一、继承与访问的区别,特别是访问要注意修饰符子类对象初始化时,系统会首先执行基类的构造函数,然后再执行子类的构造函数,可以用base指定,如果没有指定,默认执行不带参数的(2)C#只支持单向继承(不允许一个派生类同时有多个基类),但要注意与继承的传递所有类的基类:object(3)派生类可以访问基类的成员(设计阶段),使用 base关键字-使 用 base关键字,调用基类的构造函数派生类的构造函数:base(参数)-在派生类的方法过程中,使用base.方法名O(变量名),表示调用基类的方法(成员变量)(4)同名方法的处理:;virtualoverridenew内部:在基类中,可以使用virtual关键字,将成员声明为虚成员一声明为虚成员后,就表明可以在派生类中重写/隐藏这个成员在派生类中,可以用override重写也可以用new隐藏circle:public virtual void area()柱:public override void area()外部使用时,怎么体现?动物类Animalpublic virtual void lntroduce()console.write(“这是一只动物!”)猫 Cat:Animalpublic override void lntroduce()重console.write(“这是一只猫!”)狗 Dog:Animalpublic new void lntroduce()重(console.write(“这是一只狗!”)使用阶段Animal animal=new Dog();animal.Introduce();Cat cat=new Cat();cat.lntroduce();继承引起的问题:(1)私有字段不允许继承一protected类以及它的派生类可以访问玲尽量采用属性的方式去使用字段(2)派生类的成员跟基类的成员同名一(3)派生类的成员能不能访问基类的成员(内部,设计阶段)-base关键字(4)类初始化为对象时,调用的是构造函数,子类的对象实例化时,基类的构造函数?默认先调用基类不带能数的,然后再调用自身的-可以用b a s e关键字指定C i r c l e c i r c l e=n e w C i r c l e。,2,1 0);P o i n t(x,y)T 类的构造函数P o i n t。-、4.面向对象的三大特性:-多态封装-类的内部继承-类与类继承、访问多态特殊情 况 的 处 理,既有内部问题(方法的重载),也有类与类之间的问题(继承,基类与派生类有同名方法,这里,我们更多考虑的是除了签名的问题,还考虑使用对象的问题)圆.area。柱.area()使用时:对象.area。实现多态的时机:(1)编译,方法重载,签名(2)运行,虚方法,对象和签名多态的实现方式(1)单个类里的方法重载一编译什么情况下用?单个对象(类)如何实现?-类的内部设计多个同名方法,签名不同,编写方法过程;如何使用?-使用时通过签名来匹配强调:运行多态的实现方法(2)虚成员 virtual什么情况下用?继承:对某个方法实现不是很确实,希望在子类中扩展如何实现?父类中virtual一子类中override/new如何使用?请注意使用时匹配对象类型,签名;特殊情况:用子类的构造函数去生成父类对象时,两种机制(3)抽象类与抽象方法什么情况下用?父类说明有这种方法,但不实现(函数头);子类必须去实现如何设计?父类:abstract关键 字(用两次,类与方法),只有函数头,以;结尾public abstract void area();除了有抽象方法外,还有抽象属性(不需要实现,但要规定权限)public abstract int xget;子类:必须实现抽象类中的所有成员(包括抽象方法,抽象属性),如果没办法全部实现,只能将自己也定义为抽象类实现抽象方法和抽象类,使用override重写注意:成员都可以设计为抽象父类:必须将父类定义为抽象类public abstract void cry();函数头子类:override关键字public override void cry()C#中的抽象方法与抽象类a抽象方法只能包含在抽象类中一所以,我们更多时候是站在考虑“成员”的情况下进行抽象的b.抽象类只能继承,不能实例化-所以,应用时不用考虑抽象类对象C.抽象类可以包含普通方法和变量(已经实现了的),但这些成员只能被继承,不可以通过抽象类对象使用abstract Animal:public abstract void cry();public void lntroduce()console.writeline(u,5);d.抽象方法必须在子类中全部实现,如果实现不了,只能声明为抽象类如何用?抽象类不能实例化;所以,使用的全部成员方法,肯定是通过子类对象去使用的为了避免不断继承引起的问题,比如,有些类的成员不想再被继承一 可以将这些成员声明为密封成员sealed类也不想再被继承,声明为密封类,从而不允许再被继承(从不做基类)密封类可以实例化使用(4)接口 全部”抽象1.接口的本质:a.实现运行多态的其中一种方式b.所有成员都是“抽象的 一IB不允许实现-少由它的继承者(类)去实现思考:“类实现接口”-类继承接口,并将接口中的成员全部实现设计阶段c.接口是C#中“多重继承”的一种表现2.接口的代码定义public interface 接口名:基接口列表(接口成员定义体(函数头)3.接口的规则要求接口名一般以i 开头;接口成员只能是属性、方法、索引和事件,而且不允许修饰符;接口可以被接口继承,而且子接口与父接口中如果有同名的方法,必须用new关 键 字(隐藏父接口的方法;接口中成员的实现则必须由继承“类”去实现,而且必须是实现全部成员;同时,类可以有自己的成员;接口可以“多重继承”-4.接口与抽象类的区别(总结)

    注意事项

    本文(C#讲义参考.pdf)为本站会员(文***)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开