内容正文:
7.1 类(一)
--类的声明、类的成员、构造函数
算法与程序设计--C#
同步精品课堂
河北科学技术出版社
教学目标
一
理解 C# 中类的概念,明确类在面向对象编程中的核心地位
掌握构造函数的声明和使用
掌握类的声明方法
教学目标
01
02
03
掌握国家标准《机械制图》中有关图幅、比例、字体图线等基本规定。
教学重难点
二
教学难点
1、类的成员(字段、属性、方法)的定义和使用
2、构造函数的作用、声明和使用
教学重点
1、 类的封装性及其在程序设计中的意义
2、构造函数的重载及其使用场景
教学难点
导入新课
三
讨论:
在日常生活中,以“汽车”为例,汽车的设计图纸是类,具体的某辆汽车是对象。那么用程序语言如何表示什么是类?
任务一
1
类的声明
新知讲授
四
类的概念
类是面向对象编程(OOP)的基本概念之一,它是一种抽象数据类型,类定义了对象的属性(字段)和行为(方法)。
类是同一类事物的统称,如果现实生活中一个事物抽象成对象,那么类就是这些对象的统称。如人类、鸟类等。在OOP中,一切都被视为对象,而这些对象的行为和属性都由类来定义。例如,你可以创建一个名为"Person"的类,用于表示人的属性(如姓名、年龄)和行为(如说话、行走)。
类是面向对象编程的核心:OOP的基本思想是将数据(属性)和方法(行为)封装到对象中,通过类来定义和管理这些对象。
新知讲授
四
➽ 说明:
(1)public 是一个访问修饰符,它表示类是公共的,可以在程序的其他部分访问。
(2)Person 是类的名称,按照约定通常使用帕斯卡命名法(首字母大写)。
(3)大括号 { } 中包含了类的成员,包括字段、属性和方法。
➽ 语法
[public] class 类名
{
字段;
属性;
方法;
}
类的声明
在C#中,声明一个类使用class关键字,后跟类名和类体的大括号。类名通常使用帕斯卡命名法,首字母大写。类体包含类的成员,如字段、属性和方法。
新知讲授
四
类的命名规范和命名约定
(1)类名通常使用帕斯卡命(Pascal)名法:每个单词的首字母大写其他小写,例如 User、GetInfo等。
(2)类名应该具有描述性,以便在不查看类的定义的情况下也可以理解它的用途。避免使用单个字符或不具有描述性的类名,除非有特殊的约定或用途。
(3)如果类是具体的类型(如"Person"或"Car"),类名通常使用名词,反映实际世界中的对象。
(4)遵守语言和团队的编程约定,以确保一致性。
任务二
2
类的成员
新知讲授
四
类的成员
类的成员是类中定义的各种元素,它们用于描述类的结构和行为。类的成员可以包括字段(数据成员)、属性(访问器成员)和方法(行为成员)。这些成员共同定义了类的特征和功能。
(1)字段(Fields):字段用于存储数据,是类的数据成员。它们通常表示对象的特征或状态,如一个Person类的name字段可以用来存储人的姓名。
(2)属性(Properties):属性提供对类的字段的访问和控制,通过属性可以封装字段的访问。属性通常包括get和set访问器,用于获取和设置字段的值。
(3)方法(Methods):方法包含类的行为和操作。它们是用来执行某些操作的代码块,表示类或对象能做什么。
新知讲授
四
➽示例:
class Student
{ // 字段
private int age;
// 属性
public string Name { get; set; }
// 方法
public void Study()
{ Console.WriteLine($"{Name} is studying.");}}
任务三
3
构造函数
新知讲授
四
构造函数的概念
构造函数是一种特殊的方法,它用于在对象被new创建时进行初始化。当你创建一个类的实例(对象)时,构造函数会自动调用执行初始化操作。
没有编写情况下,C#会自动生成。
➽构造方法编写规范:
(1)构造函数的名称与类名相同,大小写一致。
(2)构造函数没有返回类型,包括void。即内部不得写return
(3)构造函数可以包含参数,用于接受初始化时需要的信息。
新知讲授
四
构造函数的声明
➽语法
public class MyClass{
public MyClass()//默认构造函数
{
//构造函数的初始化代码
}
}
➽说明
(1)构造函数的名称与类名相同;
(2)构造函数没有返回类型,包括void;
(3)构造函数可以包含参数,用于接受初始化时需要的信息;
新知讲授
四
➽示例
Class Student{
public string name;
public string age;
public Student(){
Console.WriteLine(“Student的构造方法”);
}
}
主方法
Student s1= new Student();
新知讲授
四
带参数的构造函数
➽示例
Class Student{
public string name=“”;
public string age=0;
public Student(string name , int age){
this.name=name; //当前创建对象的name与传入的name的值一样;
this.age=age;
}
}
主方法
Student s1= new Student(“小明”,20);
新知讲授
四
➽任务:分析下列程序中构造函数的调用。
static void Main()
{
Student student1 = new Student(); // 使用无参构造函数创建对象
Console.WriteLine($"姓名: {student1.Name}, 年龄: {student1.Age}");
// 使用有参构造函数创建对象
Student student2 = new Student("张三", 20);
Console.WriteLine("姓名: {0}, 年龄: {1}",student2.Name,student2.Age);
student2.Study();
}
新知讲授
四
构造函数的重载
构造函数可以重载,这意味着可以为一个类定义多个不同参数列表的构造函数。构造函数重载可以根据不同情况和需求来初始化对象。
➽示例1
Class Student{
public string name=“”;
public string age=0;
public Student()
{Console.WriteLine(“Student的无参构造方法”);}
public Student(string name , int age)
{ Console.WriteLine(“Student的有参构造方法”);
this.name=name;
this.age=age; } }
新知讲授
四
➽示例2
Class Student{
public string name=“”;
public string age=0;
public Student()
{ Console.WriteLine(“Student的无参构造方法”);}
public Student(string name)
{Console.WriteLine(“Student的带一个参构造方法”);
this.name=name; }
public Student(string name , int age){
Console.WriteLine(“Student的有参构造方法”);
this.name=name;
this.age=age; } }
主方法
Student s1= new Student(“小明”,20);
Student s2= new Student();
Student s3= new Student(“小智”);
新知讲授
四
构造函数小结
构造方法创建
▪ 如果没有定义构造方法,系统会自动生成一个无参构造方法
▪ 如果定义了构造方法,系统不再给出默认构造方法
构造方法重载
▪构造方法也满足方法的重载规则
构造方法工程规则
▪ 类的无参/带参构造方法都要手动给出;(无参与全参)
师生互动
五
1、总结类的声明的语法;
2、总结无参构造函数与有参构造函数的区别;
讨论
随堂练习
六
1、在C#中,使用______关键字来声明类。
答案:class
解析:声明类用class关键字
2、类的构造函数在创建类的______时自动调用。
答案:实例
解析:创建对象实例时可以自动调用构造函数。
随堂练习
六
3、以下符合 C# 命名规则的类名是( )
A. 123Class
B. classExample
C. ExampleClass
D. Example-Class
答案:C
解析:在 C# 中,类名必须是合法的标识符,不能以数字开头,不能包含特殊字符(如-)。类名通常遵循帕斯卡命名法,即每个单词的首字母大写,所以ExampleClass是符合规则的。
随堂练习
六
4、 类的成员不包括以下 ( )
A. 字段
B. 命名空间
C. 属性
D. 方法
答案:B
解析:类的成员包括字段、属性、方法等。
随堂练习
六
5、关于构造函数的重载,以下说法错误的是( )
A. 构造函数可以通过不同的参数类型重载
B. 构造函数可以通过不同的参数数量重载
C. 构造函数可以通过不同的返回值类型重载
D. 构造函数可以通过参数的默认值重载
答案:C
解析:构造函数没有返回值,不能通过返回值类型区分。构造函数可以通过参数类型、数量或顺序重载,但不能通过参数的默认值重载。
随堂练习
六
6、类的成员可以是私有的、受保护的、内部的或公共的。( )
7、构造函数重载只要求参数个数不同。( )
答案:6、正确。7、错误。
解析:6、类的成员可以使用访问修饰符private、protected、internal、public来定义访问权限。
7、构造函数重载要求参数列表不同,参数列表不同包括参数个数不同、参数类型不同或参数顺序不同。
课堂小结
七
谢谢
$$