C#程序设计基础 教学课件 ppt 作者 熊壮第4章: 面向对象程序设计基础

上传人:w****i 文档编号:92566608 上传时间:2019-07-11 格式:PPT 页数:64 大小:1.57MB
返回 下载 相关 举报
C#程序设计基础 教学课件 ppt 作者 熊壮第4章: 面向对象程序设计基础_第1页
第1页 / 共64页
C#程序设计基础 教学课件 ppt 作者 熊壮第4章: 面向对象程序设计基础_第2页
第2页 / 共64页
C#程序设计基础 教学课件 ppt 作者 熊壮第4章: 面向对象程序设计基础_第3页
第3页 / 共64页
C#程序设计基础 教学课件 ppt 作者 熊壮第4章: 面向对象程序设计基础_第4页
第4页 / 共64页
C#程序设计基础 教学课件 ppt 作者 熊壮第4章: 面向对象程序设计基础_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《C#程序设计基础 教学课件 ppt 作者 熊壮第4章: 面向对象程序设计基础》由会员分享,可在线阅读,更多相关《C#程序设计基础 教学课件 ppt 作者 熊壮第4章: 面向对象程序设计基础(64页珍藏版)》请在金锄头文库上搜索。

1、第4章 面向对象程序设计基础,伍 星 重庆大学计算机学院,4.1类的概念和对象的定义,面向对象程序设计(Object Oriented Programming)允许用实体(entity)或对象(object)的思想方法来分析和设计应用程序,从而使软件开发过程更接近人类的思维过程,可以极大提高程序设计的效率。,面向对象程序设计的概念: 类(class):一组具有相同数据结构和相同操作的对象的集合,用来定义对象可执行的操作。 类是创建对象实例的模板,对象是类的一个实例。,C#是面向对象的程序设计语言,整个语言结构都是基于面向对象程序设计的模型。Visual Studio 2010向用户提供了大量

2、的编程类,还提供了灵活的自定义类的各种方法和工具。,4.1类的概念和对象的定义,当应用程序通过类创建一个对象时,用户只要使用对象的字段和方法,而不必关心其内部是如何实现的,有助于实现程序结构模块化和代码重用.,C#语言中自定义类的基本语法形式如下: class 类名称 类的数据成员定义部分 类的方法成员定义部分 ,声明类的位置: 1)在单独的文件中声明类; 2)在其他的.cs文件中声明类;,4.1.1 字段,C#语言中,类体中的数据成员包含变量和常量。 为了区分作用域C#对类的结构进行了划分: 类一级值类型的变量称为字段(field); 方法、构造函数内部声明的变量称为局部变量;,字段定义的语

3、法形式如下: 访问修饰符 数据类型 变量声明列表; 访问修饰符: private:将数据成员定义为私有,只能被类中代码访问 ,而不能被类之外的代码访问; public: 将数据成员定义为公有,可以被类中的代码以 及类之外的代码访问;,class Person public string name; private int num; ,4.1.2 方法,4.1.2 方法,C#中的“方法”(method)就是包含在类体中的函数成员,通过方法实现某些规定的操作(功能)。 C#中定义方法的语法形式如下: 访问修饰符 返回值类型 方法名(形式参数列表) /实现方法功能的语句序列; ,指明调用方法后返回结

4、果的数据类型,可以是普通数据类型,也可以是类或结构,用户为方法定义的名称,用户为方法指明调用方法所需的参数个数和数据类型,多个参数之间使用逗号进行分隔(如果调用方法不需要参数,圆括号也不能省略)的名称,与定义字段的访问修饰符作用相同,确定方法的可使用范围,具体完成功能的代码, 写法与以前一样,4.1.2 方法,请在MathTool类中定义计算两个数的和的方法,class MathTool 。 public int Plus(int a,int b) int c; c=a+b; return c; 。 ,注意1:方法体中使用return 语句返回1个值,4.1.2 方法,请在MathTool类中

5、定义找到两个数中大的一个数方法,class MathTool 。 public int getBigger(int a,int b) if (ab) return a; else return b; 。 ,注意2:方法体中可以有多条return 语句,但只有一条会被执行,4.1.2 方法,class Person public string name; private int num; public void setPerson(string sn, int n) name = sn; num = n; ,注意3:如果方法不要求返回值,返回值类型定义为void,可以省略return语句。,4.

6、1.3 对象的定义和访问,定义类后就可以该类的对象 每一个对象都拥有该类定义中的所有成员 对象声明后就可以对其进行访问 对象定义由对象声明和实例化两个步骤组成 对象声明的一般形式如下: 类名 对象名; 例如:使用如下形式声明Person类的一个对象p1: Person p1;,4.1.3 对象的定义和访问,对象声明后,还需要使用关键字new进行实例化,才能为对象在内存中分配存储该对象的存储空间。 对象实例化的一般形式: 对象名 = new 类名(); 例如:对象p1的实例化操作: p1 = new Person(); 定义对象时也可以将对象声明和对象实例化的合二为一 语法形式如下形式: 类名

7、对象名 = new 类名(); 例如:定义一个Person类的对象p1 Person p1 = new Person();,4.1.3 对象的定义和访问,一个对象定义后即拥有类中定义的所有数据成员和方法,对象的访问即是通过对象名引用其的数据成员和方法。 通过对象名引用其成员要使用成员运算符“.” 一般形式为: 对象名.数据成员名; 对象名.成员方法名(实参表); 例如: p1.name; p1.setPerson(“wang”,123);,4.1.3对象的定义与访问,class Person public string name; private int num; public void se

8、t(string sn, int n) name = sn; num = n; public string getname() return name; public int getnum() return num; ,class Program static void Main(string args) Person p1 = new Person(); p1.set(“王力“, 0); Console.WriteLine(p1.getname(); Console.WriteLine(p1.getnum(); p1.name = “李重庆“; Console.WriteLine(p1.ge

9、tname(); ,4.1.4方法的调用,方法的调用分为在类的内部调用和在类的外部调用,在类的内部调用方法: 方法名(实际参数);,在类的外部调用方法: 对象名.方法名(实际参数);,在类的外部调用静态方法: 类名.方法名(实际参数);,4.1.4方法的调用,class Program static void Main(string args) int x, y, z; x = int.Parse(Console.ReadLine(); y = int.Parse(Console.ReadLine(); if (x y) z = x; else z = y; Console.WriteLine

10、(“The bigger“ + z); Console.ReadLine(); ,class MyTool public int getBigger(int a, int b) if (a b) return a; else return b; ,求两个数中的大的一个,Main方法中访问MyTool类中的方法 1)定义Program类的对象p; 2)通过p调用其成员方法getbigger,MyTool t = new MyTool(); z = t.getBigger(x,y);,4.1.4方法的调用,Class MyTool public int getBigger(int a,int b)

11、 if (a b) return a; else return b; public int getBiggest(int a,int b,int c) int biggest=getBigger(a,b); biggest = getBigger(biggest, c); return biggest; ,class Program static void Main(string args) int x, y, z,max; x = int.Parse(Console.ReadLine(); y = int.Parse(Console.ReadLine(); z = int.Parse(Con

12、sole.ReadLine(); Program p = new Program(); max = p.getBiggest(x,y,z); Console.WriteLine(“The biggest“ + max); Console.ReadLine(); ,在类的内部调用该类的方法: 方法名(实际参数表);,求三个数中的大的一个,4.1.5 修饰符对访问字段和方法的影响,class Student public string Name; private string Age; public void TellName() Console.WriteLine(Name); private

13、void TellAge() Console.WriteLine(Age); public void TellTheAge() Console.WriteLine(Age); ,static void Main(string args) Student stu = new Student(); Console.WriteLine(stu.Name); Console.WriteLine(stu.Age); stu.TellName(); stu.TellAge(); ,错误提示:访问了私有的字段,错误提示:访问了私有的方法,stu.TellTheAge();,4.2 方法调用过程中的参数传递,

14、C#程序中调用指定对象的方法使用如下所示的语句格式: 对象名.方法名(实际参数表); 方法被调用时,按照实际参数表中各参数顺序,依次将实际参数传递给对应的形式参数,二者数据类型必须保持一致。 方法调用时主要的参数传递方式有两种: “值参数”和“引用参数”,4.2.1 值参数,定义方法时,如果方法的形式参数声明中没有任何修饰符,则默认为值参数。 在按值传递过程中,实际参数和形式参数各自占用不同的内存空间,只把实际参数的值复制给对应的形式参数。这种值参数传递完成后,实际参数和形式参数没有任何关系,因此在方法中的代码执行期间形式参数值的改变对实际参数无任何影响。,4.2.1 值参数,static v

15、oid swap(int x, int y) int t; t = x; x = y; y = t; ,static void Main(string args) Console.Write(“请输入变量a的值:”); int a = int.Parse(Console.ReadLine(); Console.Write(“请输入变量b的值:“); int b = int.Parse(Console.ReadLine(); swap(a, b); Console.WriteLine(“a=0,b=1”, a, b); ,4.2.2 引用参数,定义方法时方法的形式参数声明时使用ref修饰符,则定

16、义为引用参数。 在按引用传递过程中,实际参数和形式参数使用的是相同的内存单元,如果在方法代码执行期间形式参数值发生了改变,实际参数的值就会发生相同的改变。,4.2.2 引用参数,static void swap(ref int x, ref int y) int t; t = x; x = y; y = t; ,static void Main(string args) Console.Write(“请输入变量a的值:”); int a = int.Parse(Console.ReadLine(); Console.Write(“请输入变量b的值:“); int b = int.Parse(Console.ReadLine

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

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

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