C#网络应用编程基础 教学课件 ppt 作者 马骏1 第03章 面向对象的编程基础

上传人:E**** 文档编号:89344651 上传时间:2019-05-23 格式:PPT 页数:69 大小:302.50KB
返回 下载 相关 举报
C#网络应用编程基础 教学课件 ppt 作者  马骏1 第03章 面向对象的编程基础_第1页
第1页 / 共69页
C#网络应用编程基础 教学课件 ppt 作者  马骏1 第03章 面向对象的编程基础_第2页
第2页 / 共69页
C#网络应用编程基础 教学课件 ppt 作者  马骏1 第03章 面向对象的编程基础_第3页
第3页 / 共69页
C#网络应用编程基础 教学课件 ppt 作者  马骏1 第03章 面向对象的编程基础_第4页
第4页 / 共69页
C#网络应用编程基础 教学课件 ppt 作者  马骏1 第03章 面向对象的编程基础_第5页
第5页 / 共69页
点击查看更多>>
资源描述

《C#网络应用编程基础 教学课件 ppt 作者 马骏1 第03章 面向对象的编程基础》由会员分享,可在线阅读,更多相关《C#网络应用编程基础 教学课件 ppt 作者 马骏1 第03章 面向对象的编程基础(69页珍藏版)》请在金锄头文库上搜索。

1、第3章 面向对象的编程基础,3.1 面向对象的程序设计 3.1.1 类的组织 3.1.2 构造函数 3.1.3 方法 3.1.4 属性 3.1.5 事件,3.2 常用类操作和数据处理 3.2.1 Convert类 3.2.2 String类 3.2.3 StringBuilder类 3.2.4 DataTime类和 TimeSpan类 3.2.5 Math类,3.1 面向对象的程序设计,类与对象 类:一组具有相同数据结构和相同操作的对象的 集合. 例如:汽车 对象(实例):类的实例化 . 例如:卡车 要使用对象,必须先定义类,然后再创建对象。,3.1.1 类的组织,1.类的声明 用class定

2、义类,声明类的形式为: 附加声明 访问修饰符 class 类名称:基类 ,接口序列 字段声明 构造函数 方法 事件 ,注意:中的内容可省或任选其一,当两者都有时,先基类后接口,3.1.1 类的组织(续),public class Child private int age; private string name; / 不带参数的构造函数 public Child() name = “none“; / 带参数的构造函数 public Child(string name, int age) ,3.1.1 类的组织(续),this.name = name; this.age = age; / 输出

3、方法 public void PrintChild() Console.WriteLine(“0, 1 years old.“, name, age); public class Program ,3.1.1 类的组织(续),public static void Main() /使用new关键字创建对象,new后是调用的构造函数 Child child1 = new Child(“Zhang San“, 11); Child child2 = new Child(“Li Si“, 10); Child child3 = new Child(); / 显示结果 Console.Write(“Ch

4、ild #1: “); child1.PrintChild(); Console.Write(“Child #2: “); child2.PrintChild(); Console.Write(“Child #3: “); child3.PrintChild();,3.1.1 类的组织(续),Console.ReadLine(); 2.对象的生存周期 对象在建立时分配了内存,创建对象实际上作了 两个方面的工作: (1)使用new保留字要求系统分配内存; (2)使用构造函数初始化数据。,3.1.1 类的组织(续),C#也允许在程序中定义析构函数(定义方法与 C+类似),但是 C#不允许在程序中调

5、用析构函 数,而只能由垃圾回收器调用,原因是如果把销毁 对象的工作全部交给编程者通过调用析构函数完 成,而系统不自动实现销毁的功能,一旦编程者忘 记销毁对象,就会引起内存泄漏问题。所以采用垃 圾回收机制自动销毁不再使用的对象。 因此,我们编写程序时不需要定义析构函数,而 是由系统自动定义,自动调用。,3.1.1 类的组织(续),注意,虽然C#不允许在程序中直接调用析构函数 销毁对象,但是可以调用安全的Dispose方法销毁 对象,在对性能要求比较高的场合,调用Dispose 方法直接销毁对象还是很有用的。 垃圾回收机制是在它认为适当的时候自动回收不 再使用的内存的,即检测没有被引用的对象,然后

6、 销毁之。 销毁对象也是做了两个方面的工作: (1)释放占用的内存; (2)将分配给对象的内存归还给堆(Heap)。,3.1.1 类的组织(续),3 字段和局部变量 字段:指声明为类一级的对象或值类型的变量。 局部变量:指在方法、事件以及构造函数内声明的变量。 public class Program public static int j=20; /字段 public static void Main() ,3.1.1 类的组织(续),int j=30; /局部变量 Console.WriteLine(j); /输出结果:30 Console.WriteLine(Program.j); /输

7、出结果:20 Console.ReadLine(); 当字段和局部变量名相同时,如果要引用静态字段,可以 使用下面的形式: 类名.字段名 如果是实例字段,则使用下面的形式: this.字段名 这里的this指当前实例。 当然,如果没有出现字段和局部变量名重名的情况,引用 字段的形式和引用局部变量的形式相同。,3.1.1 类的组织(续),4. 静态成员与实例成员 类的成员 类的成员包括字段、属性、构造函数、方法、事件、索引、嵌套类。 类的成员分静态成员和实例成员 静态成员在内存中只有一份 静态成员要等到应用程序结束时才会退出内存。 把只有创建了类的实例才能够使用的成员叫实例成员。,3.1.1 类

8、的组织(续),5. 访问修饰符 C#中有以下成员访问修饰符: Public (常用)任何外部的类都可以不受限制的存 取这个类的方法和数据成员。 private (常用)类中的所有方法和数据成员只能在 此类中使用,外部无法存取。(默认) Protected 除了让本身的类可以使用之外,任何继承 自此类的子类都可以存取。,3.1.1 类的组织(续),Internal 在当前项目中都可以存取。该访问权限一 般用于基于组件的开发,因为它可以使组件以私有 方式工作,而该项目外的其它代码无法访问。 Protected internal 只限于当前项目,或者从该项目 的类继承的类才可以存取。 Partial

9、 局部类型,类的定义和实现可以分布在多个 文件中,但都要使用partial标注,基类只需要声明 一次,若多次声明则必须完全一致。,3.1.2 构造函数,构造函数是一个特殊的方法,用于在建立对象时 进行初始化的动作,在C#中,每当创建一个对象 时,都会先调用类中定义的构造函数。 使用构造函数的好处是它能够确保每一个对象在 被使用之前都适当地进行了初始化的动作。 另外,构造函数还具有以下特点: 1) 每个类至少有一个构造函数。若程序代码中没 有构造函数则系统会自动提供一个默认的构造函数。2) 一个构造函数总是和它的类名相同。,3.1.2 构造函数(续),3) 构造函数不包含任何返回值。 默认构造函

10、数 (1)如果在类中不定义构造函数,系统会提供一个 默认的构造函数。 (2)默认构造函数没有参数。,3.1.2 构造函数(续),(3)默认构造函数自动将非静态成员初始化为: 数值型:如int、double等,初始化为0。 bool类型:初始化为false. 引用类型:初始化为null。 (4)如果自己定义了构造函数,则不会自动进行初 始化。,3.1.2 构造函数(续),2. 重载构造函数 有时候可能会遇到这样的情况:在一个类中的多 个方法中都要用到某一个数据成员,而该成员值必 须从其他类中传递过来。这时,无参数的构造函数 就不能胜任了,解决这个问题最好的办法就是:重 载(Overloading

11、)构造函数。,3.1.2 构造函数(续),using System; using System.Collections.Generic; using System.Text; namespace OverloadingExample class Program public Program() Console.WriteLine(“null“); ,3.1.2 构造函数(续),public Program(string str) Console.WriteLine(str); static void Main() Program aa = new Program(); Program bb =

12、 new Program(“How are you!“); Console.ReadLine(); ,3.1.3 方法,方法(Method)是一组程序代码的集合,每个方 法都有一个方法名,便于识别和让其他方法调用。 1. 方法的定义与使用 (1)方法必须放在某个类中。 (2)定义方法的语法形式为: 访问修饰符 返回值类型 方法名称(参数序列) 语句序列 ,3.1.3 方法(续),定义方法时,需要注意以下几点: 方法名不能和变量、常数或者任何声明在类中其 它的成员相同。 方法可以有参数,也可以没有参数,但是不论是否有参数,小括号都是必需的。如果参数序列中的参数有多个,则以逗号分开。 结束某个方法

13、的执行,可以使用return语句,程序遇到return语句后,会将执行流程交还给调用此方法的程序代码段。此外,还可以用return语句返回一个值。,3.1.3 方法(续),如果声明一个非void类型的方法,则方法中必须至少有一个return语句。 using System; using System.Collections.Generic; using System.Text; namespace MethodExample class Program public int MyMethod() ,3.1.3 方法(续),Console.WriteLine(“this is MyMethod.

14、“); int i = 10; return i; static void Main() Program method = new Program(); int j = 5; j = method.MyMethod();,3.1.3 方法(续),Console.WriteLine(“the value is 0.“, j); Console.ReadLine(); 2. 方法中的参数传递 1) 传递值类型的参数 值类型参数的格式为: 参数类型 参数名,3.1.3 方法(续),using System; using System.Collections.Generic; using System

15、.Text; namespace ValueTransferExample class Program public static void AddOne(int a) a+; ,3.1.3 方法(续),static void Main() int a = 3; Console.WriteLine(“调用AddOne之前,a=0“, a); AddOne(a); Console.WriteLine(“调用AddOne之后,a=0“, a); Console.ReadLine(); ,3.1.3 方法(续),2) 传递引用类型的参数 引用类型参数的格式为: ref 参数类型 参数名 using

16、System; using System.Collections.Generic; using System.Text; namespace ReferenceTransferExample class Program public static void AddOne(ref int a) ,3.1.3 方法(续),a+; static void Main() int x = 3; Console.WriteLine(“调用AddOne之前,x=0“, x); AddOne(ref x); Console.WriteLine(“调用AddOne之后,x=0“, x); Console.ReadLine(); ,3.1.3 方

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号