信息管理与信息系统专业 第9章定义类和类的成员 任课教师:吕雅丽
信息管理与信息系统专业 任课教师:吕雅丽 第9章 定义类和类的成员
9.1类的定义 什么是类 ●类是对现实世界中具有相似功能的同类实体的抽象; 类是一种自定义的数据类型; 用“new”关键字从某个类实例化对象; C#中,类分为两种:由系统提供的预先定义的,这些类在.NET 框架类库中;用户定义数据类型
9.1 类的定义 什么是类 类是对现实世界中具有相似功能的同类实体的抽象; 类是一种自定义的数据类型; 用“new”关键字从某个类实例化对象; C#中,类分为两种:由系统提供的预先定义的,这些类在.NET 框架类库中;用户定义数据类型。 2
9.1类的定义 ■基本语法 [访问修饰符] class类名 /类成员 其中 访问修饰符:可选,表示该类的可访问性范围。 class:定义类的关键字 类名:类的名称,一般用 Pasca命名法来定义类的名称
9.1 类的定义 基本语法 [访问修饰符] class 类名 { //类成员 } 其中: 访问修饰符:可选,表示该类的可访问性范围。 class:定义类的关键字 类名:类的名称,一般用Pascal命名法来定义类的名称。 3
9.1类的定义 ■使用 cass关键字来定义类 class myclass 默认情况下,类声明为内部的,即只有当前项目中的代码才能访 问它,可以使用 internal访问修饰符显示指出。 interna cl ass my class 使用关键字 pub l ic指定为公共的。 pub l ic class myclass
9.1 类的定义 使用class关键字来定义类 class MyClass {…} 默认情况下,类声明为内部的,即只有当前项目中的代码才能访 问它,可以使用internal访问修饰符显示指出。 internal class MyClass {…} 使用关键字public指定为公共的。 public class MyClass {…}
9.1类的定义 使用关键字 abstract指定类是抽象的,即不能实例化,只能继承, 可以有抽象成员。 pub l ic abstract cl ass my class 使用关键字 sealed指定类是密封的,即不能继承。 pub l ic abstract cl ass my class 如果继承了一个抽象类,就必须实现所继承的所有抽象成员(除 非派生类也是抽象的)
9.1 类的定义 使用关键字abstract指定类是抽象的,即不能实例化,只能继承, 可以有抽象成员。 public abstract class MyClass {…} 使用关键字sealed指定类是密封的,即不能继承。 public abstract class MyClass {…} 如果继承了一个抽象类,就必须实现所继承的所有抽象成员(除 非派生类也是抽象的)
9.1类的定义 在啡#的类定义中,只能有一个基类,可以继承多个接口 ●不允许派生类的可访问性高于基类。 ●如果没有使用基类,被定义的类就只继承于基类 System0 b ject, 它是所有类的根。 ●如果指定了基类,它必须紧跟在冒号的后面,之后才是指定的接 口,中间用逗号隔开。 pub l ic class Myclass: My Base, I My Inter face pub l ic class Myclass: I My Inter face, My Base
9.1 类的定义 在C#的类定义中,只能有一个基类,可以继承多个接口。 不允许派生类的可访问性高于基类。 如果没有使用基类,被定义的类就只继承于基类System.Object, 它是所有类的根。 如果指定了基类,它必须紧跟在冒号的后面,之后才是指定的接 口,中间用逗号隔开。 public class MyClass:MyBase, IMyInterface {…} √ public class MyClass:IMyInterface, MyBase, {…} ×
9.1类的定义 ■定义 Student类 class student 类成员; ■声明对象 °声明对象的格式与声明基本数据类型的格式相同,其语法格式为: 类名对象名 >例如: Student stu1; 对象声明后,需用“hnew”关键字将对象实例化,格式 对象名=new类名() 例如:stu1= new Student();
定义Student类 class Student { 类成员; } 声明对象 声明对象的格式与声明基本数据类型的格式相同,其语法格式为: 类名 对象名; 例如:Student stu1; 对象声明后,需用“new”关键字将对象实例化,格式: 对象名 = new 类名( ); 例如:stu1 = new Student( ); 7 9.1 类的定义
92访问修饰符 ■成员指的是类定义中的字段、属性、方法、构造函数、 析构函数等所有的类成员 ˉ访问修饰符是一些关键字,用于指定声明的成员或类型 的可访问性 ■四个访问修饰符 ● protected ● inter na private
成员指的是类定义中的字段、属性、方法、构造函数、 析构函数等所有的类成员 访问修饰符是一些关键字,用于指定声明的成员或类型 的可访问性 四个访问修饰符 public protected internal private 8 9.2 访问修饰符
■可访问性级别 可访问性级别 含义 访问不受限制,同一程序集中的任何其他代码或引用该程序集 p 的其他程序集都可以访问该类型或成员 只有同一类、结构体或者派生类中的代码可以访问该类型或成 protected 员 internal 同一程序集中的任何代码都可以访问该类型或成员,但其他程 序集中的代码不可以 private 只有同一类或结构体中的代码可以访问该类型或成员
可访问性级别 9 可访问性级别 含义 public 访问不受限制,同一程序集中的任何其他代码或引用该程序集 的其他程序集都可以访问该类型或成员 protected 只有同一类、结构体或者派生类中的代码可以访问该类型或成 员 internal 同一程序集中的任何代码都可以访问该类型或成员,但其他程 序集中的代码不可以 private 只有同一类或结构体中的代码可以访问该类型或成员
93字段、属性与案引器 ■字段定义 类中的字段可以是任何类型的变量,包括简单类型和引用类型, 可以用标准的变量声明格式和访问修饰符来定义。 语法结构 [访问修饰符][其它修饰符]数据类型变量名列表; 其中: 访问修饰符:可选,默认为 private, 其它修饰符:可选,常用的有:coηst、 static、 readon ly 等 数据类型:变量的类型,可以是简单类型或引用类型。 变量名列表:变量的名称,一次可以定义一个或多个变量
9.3 字段、属性与索引器 字段定义 类中的字段可以是任何类型的变量,包括简单类型和引用类型, 可以用标准的变量声明格式和访问修饰符来定义。 语法结构 [访问修饰符] [其它修饰符] 数据类型 变量名列表; 其中: 访问修饰符:可选,默认为private。 其它修饰符:可选,常用的有:const、static、readonly 等。 数据类型:变量的类型,可以是简单类型或引用类型。 变量名列表:变量的名称,一次可以定义一个或多个变量 。 10