C# 课件类对象访问控制字段方法静态成员.docx

上传人:b****6 文档编号:5883717 上传时间:2023-01-01 格式:DOCX 页数:11 大小:186.46KB
下载 相关 举报
C# 课件类对象访问控制字段方法静态成员.docx_第1页
第1页 / 共11页
C# 课件类对象访问控制字段方法静态成员.docx_第2页
第2页 / 共11页
C# 课件类对象访问控制字段方法静态成员.docx_第3页
第3页 / 共11页
C# 课件类对象访问控制字段方法静态成员.docx_第4页
第4页 / 共11页
C# 课件类对象访问控制字段方法静态成员.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

C# 课件类对象访问控制字段方法静态成员.docx

《C# 课件类对象访问控制字段方法静态成员.docx》由会员分享,可在线阅读,更多相关《C# 课件类对象访问控制字段方法静态成员.docx(11页珍藏版)》请在冰豆网上搜索。

C# 课件类对象访问控制字段方法静态成员.docx

C#课件类对象访问控制字段方法静态成员

枚举示例

enum<枚举名>

{枚举值1,枚举值2,枚举值3,...}

enummycolor

{lightblue,pink,yellowgreen}

枚举应用示例

作用:

枚举值作为方法的参数,来表达一种选择

 

第11章VisualC#OOP技术

(1)

面向对象基本思想、类和对象、访问修饰符

第4章面向对象与对象模型

4.1面向对象基础

1.类和对象

类:

具有同种特性和行为的一类事物的抽象描述。

对象:

类实例化的结果,特指某一个具体事物。

(书:

数据结构、C语言、数据库;饭卡:

张三的饭卡、李四的饭卡)

2.面向对象基本原则:

抽象、封装、继承和多态

1)抽象:

根据程序设计需要,确定对象的特性和行为,排除冗余细节的思维过程。

(需求分析)

2)封装:

将数据与操作数据的方法(函数)捆绑成相对独立的程序单元,即通过特定语法来创建类。

封装的目的是:

实现信息隐藏,保护内部数据。

(外界代码无法访问到对象内部的数据,外界代码只能通过对象的对外接口来与对象交互,不了解其内部操作,例子:

手表,收音机)

3)继承:

类之间可构成父子层次关系,一个类可以继承另一个类中所有的数据成员和成员函数,还可以定义自己的数据成员和成员函数,其目的是实现代码的可重用性。

(其它类型的程序设计中数据类型之间是独立的,C#中类可构成父子关系,子类拥有父类的所有的类的成员,并扩充自己的东西)

4)多态:

指对象运行时呈现不同行为的能力。

同样的方法,不同子类的对象运行时,执行不同的操作。

检修电器:

不同的电器,检修的范围不同。

3.类的基本结构:

类使用一组公开的字段、属性、方法、事件来定义与外界的接口,用户只须遵循接口规范来使用类。

4.2类和对象

1.类的定义基本格式

访问修饰符 class 类名[:

基类名]

{ 类成员列表;

}(无分号)

2.类的实例化

 用new关键字实例化

3.类的访问修饰符P87表4-1

4.类的成员:

类可以由哪些元素组成。

P88

5.类的成员的访问修饰符P89

6.类的成员-字段

字段是类中声明的变量,用来在对象中存储信息。

Eg:

Person类包括姓名,年龄和性别(枚举)

课堂练习:

建一个书的Book类,包括以下字段:

书名、作者、出版社、价格、页数,均为Public成员,在Class1的Main函数中声明该类的一个对象并赋值。

7.类的静态字段static

1.类的静态成员不属于类的某个对象,而属于类本身所有,和对象无关。

2.静态成员通过E.M来引用时,E为类名,不是对象名。

Eg7.1

声明类Student拥有静态字段ClassName和ClassStuCount保存班级名称和人数,拥有字段stuID和stuName保存学生的学号和姓名,声明该类的对象并赋值输出。

//测试班为096307301陈伟、096307302陈亚南

作业:

声明类专业Major,拥有静态字段DepartmentName(院系名),拥有字段:

majorID(专业编号)、majorName(专业名)和majorStuCounts(专业人数),在Program类的Main方法中声明对象并赋值输出。

(静态不仅仅是字段、属性、方法都可以是静态的)

思考题:

修改例子7.1,声明Student类的数组,赋值,使用foreach语句循环输出。

4.4方法

方法:

类里面的函数

1.语法

注1方法若无返回值,返回类型应为void。

注2方法若有返回值,应在方法体中使用return语句返回值。

2.方法的重载

类可以拥有重名的方法,但它们必须拥有不同的参数列表。

3.静态方法

1)静态方法表达的是一类事物共同具有的抽象方法,而不是类的实例所独有的。

2)由类名进行引用。

3)静态方法主要用于提供整个类实例共有的工具函数。

4)静态方法中只能使用参数值、常量、类的静态成员,不能访问类的实例成员。

eg9.1编写类MyMath,拥有静态字段pi(∏),实例字段radius(半径),实例方法Perimeter返回周长,Area返回面积,另包含2个静态方法plus,一个返回整型加法值,一个返回字符串加法值。

练习:

新建类Stu,包括以下字段:

学号、姓名、语文成绩、数学成绩、英语成绩,提供方法TotalScore返回总分,提供方法AvgScore返回平均分,提供静态方法Info,向控制台输出“西城中学初三

(2)班中考成绩”。

在Main()中使用以上方法。

作业:

创建日期类MyDay,它包含三个整型变量year,month,date。

设置2个构造函数,一个构造函数含有1个整型参数,用来设置年份,月份和日期均设为1;另一个构造函数提供3个参数,分别设置年份、月份和日期。

定义一个不含参数的ToStringLong方法,采用格式(××年××月××日)返回一个字符串,再定义一个不含参数的ToStringShort方法,采用格式(××-××-××)返回一个字符串。

在Main()中使用这些方法。

eg9.3类ArrayPar的方法AVG拥有整型数组参数Nums,该方法返回该数组所有值的平均值。

思考题:

类StuScore包括字段StuName(姓名),Score(分数),类CourseScore包括字段CourseName(课程名);以及方法ListAllScore(列出所有分数),该方法的参数为StuScore类对象的数组,方法体向控制台输出数组每个元素的学生姓名和成绩;方法GetMaxScore(获得最高分),该方法的参数为StuScore类对象的数组,方法体为找出数组中成绩最高的对象,输出相关信息。

在Main函数中使用。

 

4.2.2对象生命周期

(类的构造函数、构造函数重载、类的析构函数)

1.类的构造函数

作用:

构造函数可理解为一种特殊的方法成员,它在每次创建对象时被自动调用,通常用于对象的初始化。

注意:

1)构造函数名与类名相同带括号。

2)构造函数无返回值。

3)如果为类定义构造函数,CLR将自动生成一个默认的不带任何参数的空白构造函数,一旦自定义了构造函数,就不再拥有默认的空白构造函数。

4)除了可以由类的另一构造函数或子类的构造函数调用外,不能显式调用构造函书(声明对象除外)。

语法:

与类名相同,可带参数,一般为public(可以为其它访问修饰符,实现特殊用途)

eg8.2:

给Person类添加构造函数实现初始化功能

练习:

声明书本类Book,拥有字段:

图书编号、书名、作者、出版社,编写带参数的构造函数实现对象的初始化,在Class1的Main()中声明类的对象,并输出。

2.构造函数的重载

一个类可同时拥有多个构造函数,其函数名均为类名但拥有不同的参数列表,执行时,自动根据参数类型和个数匹配构造函数。

不同指:

1.参数个数不同2.参数数据类型不同(和参数名无关)

对于类ClassPerson来说,构造函数

eg1:

publicPerson(stringp_name,intp_age,Genderp_gender)

eg2:

publicPerson(stringvname,intvage,Gendervgender)

eg1和eg2虽然参数名不同,但参数个数和类型相同,不允许定义在同一个类中。

eg3:

publicPerson(stringp_name,intp_age,Genderp_gender)

eg4:

publicPerson(stringp_name,intp_name,stringp_name)

eg3和eg4虽然参数名相同,但参数类型不同,可以定义在同一个类中。

eg8.3:

给Person类添加3个构造函数(名称相同,参数列表不同,运行时CLR根据参数类型和个数决定使用哪个构造函数)

作业:

给Book类添加2个构造函数,1个为无参构造函数,另一个构造函数提供参数列表:

图书编号、书名、作者,进行初始化,出版社的值默认设为:

机械工业出版社。

在Main()中声明对象,赋值并输出。

3.析构函数

对象使用完毕后,在释放对象时,就会调用类的析构函数,主要用于资源释放。

析构函数名:

~类名()

(C#里面很少用到析构函数,因为C#有个垃圾收集器,自动释放资源)

注意:

1.析构函数无参数,也无返回值,不能使用访问限制修饰符。

2.析构函数不能被继承,也不能被显式地调用。

△看代码写结果P123

新增课程计算机语言C#

新增课程数据结构

当前课程数为1

_

当前课程数为0

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

当前位置:首页 > 考试认证 > 交规考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1