可视化程序设计语言II-第3讲C#异常捕获与面向对象特性课件.ppt

上传人(卖家):晟晟文业 文档编号:4145761 上传时间:2022-11-14 格式:PPT 页数:27 大小:515.81KB
下载 相关 举报
可视化程序设计语言II-第3讲C#异常捕获与面向对象特性课件.ppt_第1页
第1页 / 共27页
可视化程序设计语言II-第3讲C#异常捕获与面向对象特性课件.ppt_第2页
第2页 / 共27页
可视化程序设计语言II-第3讲C#异常捕获与面向对象特性课件.ppt_第3页
第3页 / 共27页
可视化程序设计语言II-第3讲C#异常捕获与面向对象特性课件.ppt_第4页
第4页 / 共27页
可视化程序设计语言II-第3讲C#异常捕获与面向对象特性课件.ppt_第5页
第5页 / 共27页
点击查看更多>>
资源描述

1、 2.try-catch-finally结构结构 3.C#面向对象程序设计基础面向对象程序设计基础 4.继承继承5.类的访问修饰符类的访问修饰符 6.this static 关键字关键字 7.多态多态(Polymorphism)和虚方法和虚方法 C#的异常可能由两种方式导致:的异常可能由两种方式导致:异常由异常由try语句来处理,语句来处理,try语句提供了一种机制来捕捉语句提供了一种机制来捕捉执行过程中发生的异常。执行过程中发生的异常。Try语句有语句有3种基本格式:种基本格式:案例名称:使用案例名称:使用try-catch语句语句程序名称:程序名称:2-21.csusing System;

2、class Sample public static void Main(string args)long factorial=1;long num=Int64.Parse(args0);try checked /计算数计算数num的阶乘的阶乘 for(long cur=1;cur=num;cur+)factorial*=cur;catch(OverflowException oe)Console.WriteLine(计算计算0的阶乘时引发溢出异常的阶乘时引发溢出异常,num);Console.WriteLine(0,oe.Message);return;Console.WriteLine(0

3、的阶乘是的阶乘是1,num,factorial);案例名称:使用案例名称:使用try-finally语句语句程序名称:程序名称:2-22.csusing System;public class Sample public static void Main()try Console.WriteLine(执行执行try子句子句!);goto leave;/跳转到跳转到leave标签标签 finally Console.WriteLine(执行执行finally子句子句!);leave:Console.WriteLine(执行执行leave标签标签!);案例名称:使用案例名称:使用try-catch

4、-finally语句语句程序名称:程序名称:2-23.csusing System;class Sample public static void Main()try throw(new ArgumentNullException();/引发引发异常异常 catch(ArgumentNullException e)Console.WriteLine(Exception:0,e.Message);finally Console.WriteLine(执行执行finally子句子句);与传统的面向过程的编程方法相比,与传统的面向过程的编程方法相比,面向对象编程方法有面向对象编程方法有3个优点:个优点

5、:classAclassBvoidf()Aa=newA();为了提高软件模块的可重用性和可扩充性,以便提高软为了提高软件模块的可重用性和可扩充性,以便提高软件的开发效率,希望能够利用前人或自己以前的开发成件的开发效率,希望能够利用前人或自己以前的开发成果,任何面向对象的程序设计语言都能够提供两个重要果,任何面向对象的程序设计语言都能够提供两个重要的特性:的特性:案例名称:使用继承案例名称:使用继承程序名称:程序名称:2-24.csusing System;class BaseA public void FuncA()System.Console.WriteLine(Funciton A);cl

6、ass DerivedA:BaseA public void FuncB()System.Console.WriteLine(Function B);class Tester public static void Main(string args)DerivedA aDerived=new DerivedA();aDerived.FuncA();aDerived.FuncB();案例名称:类的访问修饰符案例名称:类的访问修饰符程序名称:程序名称:2-25.csusing System;class Class1 public string s;/公有成员公有成员 protected int i;

7、/保护成员保护成员 private double d;/私有成员私有成员 public void F1()s=Welcome six!;/正确,允许访问自身成员正确,允许访问自身成员 i=100;/正确,允许访问自身成员正确,允许访问自身成员 d=18.68;/正确,允许访问自身成员正确,允许访问自身成员构造函数用于执行类的实例的初始化。每个类都构造函数用于执行类的实例的初始化。每个类都有构造函数,即使没有声明它,编译器也会自动有构造函数,即使没有声明它,编译器也会自动提供一个默认的构造函数。在访问一个类的时候,提供一个默认的构造函数。在访问一个类的时候,系统将最先执行构造函数中的语句。使用构

8、造函系统将最先执行构造函数中的语句。使用构造函数请注意以下几个问题:数请注意以下几个问题:案例名称:构造函数和析构函数案例名称:构造函数和析构函数程序名称:程序名称:2-26.csusing System;class Desk/构造函数和类名一样,析构函数前面加构造函数和类名一样,析构函数前面加 public Desk()Console.WriteLine(Constructing Desk);weight=6;high=3;width=7;length=10;Console.WriteLine(0,1,2,3,weight,high,width,length);Desk()Console.W

9、riteLine(Destructing Desk);protected int weight;protected int high;protected int width;protected int length;public static void Main()Desk aa=new Desk();Console.WriteLine(back in main();案例名称:使用案例名称:使用this关键字关键字程序名称:程序名称:2-27.csusing System;public class Employee public string name;/员工姓名员工姓名 public dec

10、imal salary;/员工薪水员工薪水 /构造函数构造函数 public Employee(string name,decimal salary)/用用this关键字给正在构造的对象的关键字给正在构造的对象的name和和salary赋值赋值 this.name=name;this.salary=salary;/显示员工姓名及薪水显示员工姓名及薪水 public void DiaplayEmployee()Console.WriteLine(姓名姓名:0,name);Console.WriteLine(薪水薪水:0元元,salary);/用用this方法将当前对象传给方法将当前对象传给Tax

11、.CalcTax()方法方法 Console.WriteLine(个人所得税个人所得税:0元元,Tax.CalcTax(this);public class Tax public static decimal CalcTax(Employee E)return(0.14m*(E.salary-800.0m);public class Sample public static void Main()/声明类声明类Employee的实例的实例e Employee e=new Employee(小刘小刘,4123.6m);e.DiaplayEmployee();/显示员工姓名和薪水显示员工姓名和薪水

12、 案例名称:使用案例名称:使用static关键字关键字程序名称:程序名称:2-28.cs using System;public class Person private int id;public static int total=0;public Person()total+;id=total;public class OtherClass public static void Main()Person.total=100;Console.WriteLine(Person.total);Person c=new Person();Console.WriteLine(Person.total

13、);案例名称:使用静态方法案例名称:使用静态方法程序名称:程序名称:2-29.cs using System;public class Person private int id;private static int total=0;public static int getTotalPerson()return total;public Person()total+;id=total;public class TestPerson public static void Main()Console.WriteLine(Person.getTotalPerson();Person p1=new

14、Person();Console.WriteLine(Person.getTotalPerson();和其他的面向对象语言一样,和其他的面向对象语言一样,C#支持多态、虚方法、函支持多态、虚方法、函数的重载等。数的重载等。除此之外,除此之外,C#还提供一种特殊的数据形态还提供一种特殊的数据形态“装箱装箱”在在C#中,多态性的定义是:中,多态性的定义是:“同一操作作用于不同的类同一操作作用于不同的类的实例,不同的类将进行不同的解释,最后产生不同的的实例,不同的类将进行不同的解释,最后产生不同的执行结果执行结果”。C#支持两种类型的多态性。支持两种类型的多态性。编译时的多态性:编译时的多态是通过重

15、载来实现的。编译时的多态性:编译时的多态是通过重载来实现的。对于非虚的成员来说,系统在编译时,根据传递的参数、对于非虚的成员来说,系统在编译时,根据传递的参数、返回的类型等信息决定实现何种操作。返回的类型等信息决定实现何种操作。运行时的多态性:运行时的多态性是直到系统运行时,运行时的多态性:运行时的多态性是直到系统运行时,才根据实际情况决定实现何种操作。才根据实际情况决定实现何种操作。C#中,运行时的多中,运行时的多态性通过虚方法实现。态性通过虚方法实现。编译时的多态性提供了运行速度快的特点,而运行时的编译时的多态性提供了运行速度快的特点,而运行时的多态性则带来了高度灵活和抽象的特点。多态性则

16、带来了高度灵活和抽象的特点。案例名称:使用虚方法案例名称:使用虚方法程序名称:程序名称:2-30.cs using System;class Teststatic void Main(string args)Base b=new Base();b.Draw();Derived d=new Derived();d.Draw();d.Fill();Base obj =new Derived();obj.Fill();obj.Draw();class Basepublic void Fill()System.Console.WriteLine(Base.Fill);public virtual vo

17、id Draw()System.Console.WriteLine(Base.Draw);class Derived:Basepublic override void Draw()System.Console.WriteLine(Derived.Draw);public new void Fill()System.Console.WriteLine(Derived.Fill);案例名称:重载普通函数案例名称:重载普通函数程序名称:程序名称:2-32.csusing System;class Overload public void Func()System.Console.WriteLine(

18、Func();public void Func(int x,int y)System.Console.WriteLine(Func(int x,int y);public void Func(long x,long y)System.Console.WriteLine(Func(long x,long y);public static void Main(string args)Overload myOverload=new Overload();myOverload.Func();myOverload.Func(1,1);myOverload.Func(1L,1L);/会调用哪个重载函数呢?

19、会调用哪个重载函数呢?myOverload.Func(1L,1);案例名称:重载构造函数案例名称:重载构造函数程序名称:程序名称:2-33.csusing System;class CtorOverloadDemo static void Main(String args)MyInt i=new MyInt(2);System.Console.WriteLine(i.i);MyInt j=new MyInt();System.Console.WriteLine(j.i);class MyInt public int i;public MyInt()i=0;public MyInt(int i)

20、this.i=i;案例名称:使用装箱案例名称:使用装箱程序名称:程序名称:2-34.csusing System;public class UnboxingTest public static void Main()int i=123;/装箱装箱 object o=i;/拆箱,必须是显示转换拆箱,必须是显示转换 int j=(int)o;Console.WriteLine(j:0,j);字符串输出字符串输出把数据转化成字符串以作为输出实际上是很简单把数据转化成字符串以作为输出实际上是很简单的。数值类型转换为字符串可以用的。数值类型转换为字符串可以用函数函数功能功能Convert.ToBoole

21、an()转换成为转换成为bool型,字符串型,字符串必须为必须为true或者或者falseConvert.ToChar()转换成为转换成为char型型Convert.ToDateTime()转换成为日期型转换成为日期型Convert.ToDecimal()转换成为转换成为Decimal型型Convert.ToInt32()转换成为转换成为int型型案例名称:使用字符串函数案例名称:使用字符串函数程序名称:程序名称:2-35.csusing System;public class UnboxingTest public static void Main()string strDate=2005-

22、10-1 10:10:55;string strDay=strDate.Substring(0,strDate.IndexOf();Console.WriteLine(输出日期输出日期:0,strDay);本章介绍本章介绍C#编程基础,掌握编程基础,掌握C#编译器的使用方法,掌编译器的使用方法,掌握握C#的数据结构,熟悉值类型和引用类型的使用方法。的数据结构,熟悉值类型和引用类型的使用方法。掌握操作符和控制语句的使用,着重掌握掌握操作符和控制语句的使用,着重掌握C#的异常处理的异常处理和和C#面向对象编程特性,熟悉面向对象编程特性,熟悉C#常用的几个函数。常用的几个函数。2-1 简述简述C#语言的特点。语言的特点。2-2 如何读取命令行参数?用程序说明。如何读取命令行参数?用程序说明。2-3 比较基本数据类型和引用数据类型的区别。比较基本数据类型和引用数据类型的区别。2-4 C#的访问修饰符有几种,各具有什么限定作用?的访问修饰符有几种,各具有什么限定作用?2-5 构造函数有什么作用?简述重载构造函数的好处。构造函数有什么作用?简述重载构造函数的好处。2-6 析构函数有什么作用?如何定义析构函数?析构函数有什么作用?如何定义析构函数?2-7 如何访问基类的函数?如何访问基类的函数?2-8 C#中如何实现异常处理?中如何实现异常处理?

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(可视化程序设计语言II-第3讲C#异常捕获与面向对象特性课件.ppt)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|