《《面向对象基础》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《面向对象基础》PPT课件.ppt(30页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、C#项目设计第二部分主讲:张红梅简单的WinForm程序o(1)加法计算器:用户在文本框1、2中输入两个数,点击按钮,在文本框3中显示两个数的和。如果1或者2为错误的数据格式,则弹出对话框提示错误。注意判断输入数字的格式问题如何解决。int.TryParse、MessageBox.Show。string s=string.Format(0你好,textBox1.Text);/推荐o(2)输入email地址,输出用户名和域名o(3)求累加和:从文本框1累加到文本框2,输出结果到文本框3.o 注意:除了要判断1,2两个文本框的数字格式问题之外,还要判断2的数字要大于1的数字。o(4)页面上有一张图
2、片,初始状态是隐藏的,要求输入身份证号码,点击按钮如果年龄大于18岁则显示图片(身份证号码:)o(5)文本框左右各有一个按钮,单击左侧按钮则文本框中文字向左循环滚动一次,单击右侧按钮则文本框中文字向右循环滚动一次。文本框1.TextBox文本框可以通过MultiLine属性设置为多行显示,向该文本框中添加内容可以使用:(1)TextBox.Text+=DateTime.Now.ToString()+”n”;(2)TextBox.AppendText(DateTime.Now.ToString()+”n”);/追加当前系统时间以上两种方法都可以实现同样的功能,但是第一种方法有一个缺点,就是当原来
3、的文本内容特别多时,将非常浪费时间。2.文本框的重要属性:PasswordChar注意:控件的名字要有意义。文本框3.练习题目:(1)登录界面。登录错误三次退出程序,假设用户名、密码是admin、666666,不区分大小写。(易错点:局部变量与类变量)退出程序:this.Close()或者Application.Exit()。(2)修改密码。界面上有旧密码、新密码、重复新密码,假设旧密码为666666,两次输入的新密码必须和旧密码不一样,并且两次输入的新密码必须一致。提示:可以同时选中多个控件,一起进行属性的设置,这称为“批量设置”。(3)在多行文本框中输入多行“姓名=成绩”格式的数据,要求输
4、出成绩最高的学生的姓名和成绩。ComboBox控件1.属性SelectedIndex:选中项的序号。没有任何选中的时候是-1,否则是选中的序号(从0开始)2.其他重要属性:SelectedItem:选中的项。3.练习(1)简单的四则运算器。如何禁止用户编辑?属性DropDownStyle设置为:DropDownList。(2)省市选择器ListBoxoListBox:SelectedIndex、Items、SelectedIndexChanged事件。o多选的方式,设置SelectionMode为MultiExtendoListBox:SelectedIndices、SelectedItem、
5、SelectedItems、SelectionMode;o案例:人员选择,左边选择到右边、右边退回左边、批量添加。遇到的问题,删除顺序,计算机的思维。计时器TimeroTimer。每隔一段时间触发一个事件。不可视控件。Inerval、Enabled。Tick事件。o计量单位:ms(毫秒)。1秒=1000毫秒oDateTimeo案例:小时钟。取当前时间();TreeView控件o树的基本概念:父节点、子节点、兄弟节点、根节点o编辑节点,节点名字Name,节点文字Texto动态添加节点(VS编辑界面中有增加根节点、增加子节点两个按钮):n向根节点下增加子节点:,它的返回值就是创建的节点对象。tre
6、eView.Nodes代表根节点的所有子节点。n向TreeNode增加子节点,它的返回值就是创建的节点对象。treeNode.Nodes代表节点的所有子节点。练习:构建省市县三级树o首先添加省节点。并且把添加的节点TreeNode对象放到treeNodeLiaoning等变量中o向treeNodeLiaoning等省级节点下添加市节点,并且把添加的节点TreeNode对象放到treeNodeShenYang等变量中o向treeNodeShenYang等市节点下增加区县节点。TreeView深入o选择项发生变化的时候在TextBox中显示当前选择项的值。AfterSelect事件。oTreeNo
7、de的Tag,TreeNode中Text只能盛放显示的值,可以用Tag属性给节点关联一个对象。Tag属性是Object类型的,因此可以关联任何的对象。案例:省市县显示当前项的邮编o练习:选择节点的时候显示市长、人口(int)类型。ListView控件o功能:显示带图标的项列表。o属性:nView属性:用于获取或设置项在控件中的显示方式。默认为LargeIcon。nItems属性:获取包含控件中所有项的集合。nSelectedItems属性:获取选定的项。o方法:nClear方法:删除ListView控件中所有的项。ListView控件o事件:nItemCheck事件:当选中ListView控件
8、项时触发。nClick事件:单击ListView控件项时触发。nSelectedIndexChanged事件:改变选中项时触发。o例如:显示企业员工信息DataGridView控件o功能:以网格的形式显示数据。o属性:nRows属性:获取该控件中的所有行的一个集合nDataSource属性:设置或获取该控件所显示数据的数据源o事件:nCellContentClick事件:单击某项内容时触发面向对象主要知识点:o接口o委托o事件o异常接口接接口口由由interfaceinterface声声明明,是是一一种种特特殊殊的的抽抽象象类。接接口口可可以以包包含含方方法法、属属性性和和事事件件等等成成员,
9、但但不不提提供供成成员的的任何任何实现。接口中的成。接口中的成员由其派生由其派生类来来实现。格式:格式:修修饰符符interfaceinterface接口名接口名属性属性类型型 属性名属性名get;set;get;set;返回返回类型型 方法名(参数列表)方法名(参数列表);接口说明:明:o接口的命名一般以接口的命名一般以I I开开头;o接口中没有字段,无构造函数,不允接口中没有字段,无构造函数,不允许进行运算符重行运算符重载;o接口的成接口的成员没有任何没有任何访问修修饰符,它符,它总是公共的,不能声明是公共的,不能声明为虚虚拟或静或静态;o继承自接口的派生承自接口的派生类必必须实现接口中的
10、所有成接口中的所有成员。o一个一个类可以可以继承多个接口(接口承多个接口(接口间以逗号以逗号间隔),当一个隔),当一个类继承某个接口承某个接口时,它不,它不仅要要实现该接口定接口定义的所有成的所有成员,还要要实现该接口从其他接口中接口从其他接口中继承的所有成承的所有成员。o类的基列表同的基列表同时包含基包含基类和接口和接口时,列表中首先出,列表中首先出现的是基的是基类。接口例如:例如:publicinterfaceIShapepublicinterfaceIShapedoubleLengthget;set;doubleLengthget;set;doubleWidthget;set;doubl
11、eWidthget;set;doubleArea();doubleArea();publicclassRect:IShapepublicclassRect:IShapeprivatedoublelength;privatedoublelength;publicdoubleLengthpublicdoubleLengthgetreturnlength;getreturnlength;setlength=value;setlength=value;privatedoublewidth;privatedoublewidth;publicdoubleWidthpublicdoubleWidthgetr
12、eturnwidth;getreturnwidth;setwidth=value;setwidth=value;publicdoubleArea()publicdoubleArea()returnlength*width;returnlength*width;委托委委托托就就像像一一个个函函数数指指针,在在程程序序运运行行时可可以以使使用用它它们调用用不不同同的的函函数数。委委托托的的使使用用一一般般包包括括三三个个步步骤:定定义委托、委托、实例化委托、例化委托、调用委托。用委托。1 1、定、定义委托委托格式:格式:修修饰符符delegatedelegate返回返回类型型 委托名委托名(参数列
13、表参数列表););例如:例如:public delegate double MyDelegate(double a,double b);委托说明:明:o委托的定委托的定义和方法的定和方法的定义类似,只是在前面加了一个似,只是在前面加了一个delegate,delegate,但委托不是方法,是一种但委托不是方法,是一种类型。用于型。用于对和和该委托有相同委托有相同签名的名的方法方法调用。用。o委托相当于委托相当于CC中的函数指中的函数指针,但他是面向,但他是面向对象和象和类型安全的。型安全的。o委托是从委托是从System.DelegateSystem.Delegate派生,但不能象定派生,但不
14、能象定义常常规类型相同直型相同直接从接从System.DelegateSystem.Delegate派生,派生,对委托的声明只能通委托的声明只能通过上面的声明上面的声明格式格式进行定行定义。关。关键字字delegatedelegate通知通知编译器器这是一个委托是一个委托类型,型,从而在从而在编译的的时候候对该类进行封装行封装,对这一一过程程C#C#定定义了了专门的的语法来法来处理理这一一过程。程。o委托即能委托即能够对静静态方法方法进行行调用也能用也能够对实例方法例方法进行行调用。用。o每个委托每个委托类型包含一个自己的型包含一个自己的调用列表,当用列表,当组合一个委托或从合一个委托或从一个
15、委托中一个委托中删除一个委托除一个委托时都将都将产生新的生新的调用列表。用列表。委托2 2、实例化和例化和调用委托用委托例如:例如:/定定义义委托委托 public delegate double MyDelegate(double a,double b);/定定义义方法方法 double Sum(double x,double y)return x+y;以下代以下代码码在某个方法或事件中在某个方法或事件中编编写:写:/实实例化委托例化委托 MyDelegate my=new MyDelegate(Sum);/调调用委托用委托 double d=my(2,5);3 3、多重委托、多重委托可以使
16、用一个委托可以使用一个委托调用多个方法,用多个方法,这称之称之为多重委托。多重委托。事件事事件件就就是是当当对象象或或类状状态发生生改改变时,对象象或或类发出出的的信信息息或或通通知知。发出出信信息息的的对象象或或类称称为“事事件件源源”,”,对事事件件进行行处理理的的方方法法称称为“接接收收者者”,”,通通常常事事件件源源在在发出出状状态改改变信信息息时,他他并并不不知知道道由由哪哪个个事事件件接接收收者者来来处理理.这就就需需要要一一种种管管理理机机制制(即即委委托托)来来协调事件源和接收者。事件源和接收者。事件的使用事件的使用过程如下:程如下:1 1、声明一个委托、声明一个委托publi
17、cdelegatevoidDisplayEventHandler(stringstr);publicdelegatevoidDisplayEventHandler(stringstr);2 2、声明一个事件、声明一个事件public event DisplayEventHandler Display;事件3 3、引、引发一个事件一个事件publicvoidStart(strings)publicvoidStart(strings)if(Display!=null)if(Display!=null)Display(s);Display(s);4 4、定、定义事件事件处理程序理程序voidShow
18、Msg(stringstr)voidShowMsg(stringstr)textBox1.Text=str;textBox1.Text=str;5 5、订阅事件事件(将事件将事件处理程序添加到事件的理程序添加到事件的调用列表中用列表中)Display+=newDisplayEventHandler(ShowMsg);Display+=newDisplayEventHandler(ShowMsg);异常异常是程序异常是程序执行行时遇到的任何遇到的任何错误情况或意外行情况或意外行为。1 1、异常、异常处理机制理机制格式格式:try/需要需要进行异常行异常处理的代理的代码catch(异常异常类型型
19、对象象)/异常异常处理代理代码finally /异常出异常出现与否都与否都执行的代行的代码,一般用于清理,一般用于清理资源等源等异常2 2、抛出异常、抛出异常格式格式:throw 异常异常对象;象;例如:例如:throw new Exception(出出现了异常!了异常!);3 3、自定、自定义异常异常先先定定义一一个个异异常常类,该异异常常类继承承自自第第三三方方异异常常基基类ApplicationException,然然后后在在该类中中定定义自自己己的构造函数和所需的异常。的构造函数和所需的异常。泛型泛泛型型是是指指将将类型型参参数数化化以以达达到到代代码复复用用,提提高高软件件开开发工工
20、作作效效率率的的一一种种数数据据类型型。泛泛型型类和和泛泛型型方方法法同同时具具备可可重重用用性性、类型型安安全和效率,全和效率,这是非泛型是非泛型类和非泛型方法无法具和非泛型方法无法具备的。的。(一一)泛型的定泛型的定义1 1、泛型方法的定、泛型方法的定义例如例如:private void Swap(ref T a,ref T b)T temp;temp=a;a=b;b=temp;泛型2 2、泛型、泛型类的定的定义例如例如:class Sample public void Swap(ref T a,ref T b)T temp;temp=a;a=b;b=temp;泛型(二二)泛型的使用泛型的
21、使用1 1、泛型方法的使用、泛型方法的使用例如例如:inta=9;inta=9;intb=2;intb=2;intc=Sum(a,b);intc=Sum(a,b);2 2、泛型、泛型类的使用的使用例如例如:inta=9;inta=9;intb=2;intb=2;Sample sample=new Sample();int c=sample.Swap(a,b);泛型(三三)系系统提供的重要泛型提供的重要泛型ListList使用使用举例例Listlist1=newList();Listlist1=newList();list1.Add(aaaaa);list1.Add(aaaaa);list1.Add(bbbbb);list1.Add(bbbbb);list1.Add(ccccc);list1.Add(ccccc);Listlist2=newList();Listlist2=newList();list2.Add(12);list2.Add(12);list2.Add(14);list1.Add(55);list2.Add(14);list1.Add(55);