欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    第4章 面向对象基础教学设计.docx

    • 资源ID:3811255       资源大小:113.31KB        全文页数:19页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第4章 面向对象基础教学设计.docx

    1、第4章 面向对象基础教学设计传智播客C#程序设计基础入门教程教学设计课程名称: C#程序设计基础入门教程 授课年级: 2014年级 授课学期: 2014学年第一学期 教师姓名: 某某老师 2014年02月09日课题名称第4章 面向对象基础计划学时6课时内容分析C#是一种面向对象的语言,认识面向对象的编程思想对于C#学习至关重要。在面向对象中,有两个重要的概念,分别是类和对象,本课程将对类和对象的基本知识进行详细讲解,并结合程序学习如何使用面向对象的思想开发C#应用教学目标及基本要求要求学生理解面向对象的程序设计思想,掌握类的设计、对象的创建、类的封装、构造方法的定义及其重载、this和stat

    2、ic关键字的使用以及单例设计模式,了解垃圾回收机制、嵌套类和匿名类的使用。重点及措施教学重点:类的定义、对象的创建、类的封装、构造方法的定义和重载、this和static关键字的使用、单例设计模式难点及措施教学难点:类与对象的创建和使用、构造方法重载的规则、this关键字和static关键字的使用、单例设计模式教学方式教学采用教师课堂讲授为主,使用教学PPT讲解教学过程第一课时(面向对象概念、类与对象、类的定义、对象的创建与使用) 面向对象的概念 什么是面向对象面向对象是一种符合人类思维习惯的编程思想。现实生活中存在各种形态不同的事物,这些事物之间存在着各种各样的联系。在程序中使用对象来映射现

    3、实中的事物,使用对象的关系来描述事物之间的联系,这种思想就是面向对象。 面向对象的好处同面向过程进行比较,面向对象的好处是: 代码的复用性提高 使用者无须关心具体的实现细节 转变程序员的角色,更加符合人的思维习惯 面向对象的特征 封装性: 继承性: 多态性: 类与对象的关系 用具体的例子引导。例如:玩具和玩具模型的关系。在上面的图中,玩具模型可看作是一个类,一个个玩具可看作对象。玩具是由玩具模型创建出来的,同理,对象是根据类创建出来的,并且一个类可以创建多个对象。 总结类用于描述多个对象的共同特征,它是对象的模板。对象用于描述现实中的个体,它是类的实例。 类的定义 为什么定义类由于对象是虚拟出

    4、来的东西,是看不见摸不着的,我们需要在程序中使用对象,就必须找到描述对象的方式,定义一个类就可以解决这个问题。 类的定义将一系列特征相似的对象中的共同属性和方法抽象出来用一段特殊的代码来进行描述,这段特殊的代码我们就称之为一个类。类使用class关键字来进行定义,后面跟上类的名称。 定义一个Person类 class Person public int age; public void Speak() Console.WriteLine(大家好,我今年 + age + 岁!); 其中,Person是类名,age是成员变量,Speak()是成员方法。在成员方法Speak()中可以直接访问成员变量

    5、age。 对象的创建与使用 对象的产生应用程序想要完成具体的功能,仅有类是远远不够的,还需要根据类创建实例对象。在C#程序中可以使用new关键字来创建对象,具体格式如下:类名 对象名称 = new 类名();例如,创建Person类的实例对象代码如下:Person p = new Person();其中“new Person()”用于创建Person类的一个实例对象,“Person p”则是声明了一个Person类型的变量p。中间的等号用于将Person对象在内存中的地址赋值给变量p,这样变量p便持有了对象的引用。在内存中变量p和对象之间的引用关系如下图所示。 对象的使用在创建Person对象

    6、后,可以通过对象的引用来访问对象所有的成员,具体格式如下:对象引用.对象成员通过一段代码来演示对象的使用情况。Person p1 = new Person();Person p2 =new Person();p1.age = 18;p1.Speak();p2.Speak();执行完毕后,对象在内存中的状态如图所示。 成员变量的初始化当一个对象被创建时,C#运行环境会对其中各种类型的成员变量自动进行初始化赋值。基本数据类型初始化值为0,引用数据类型初始化值为null。 对象的生命周期每个创建的对象都有自己的生命周期,对象只能在其有效的生命周期被使用。当没有任何变量引用这个对象时,它将成为垃圾对象

    7、,不能再被使用。对象变成垃圾的第一种情况:对象变成垃圾的第二种情况:第二课时(类的设计、属性、访问修饰符、构造方法的定义和重载) 类的设计在C#中,对象是通过类创建出来的。因此,在程序设计时,最重要的就是类的设计。例如,要在程序中描述一个学校所有学生的信息,可以先设计一个学生类(Student),在这个类中定义两个字段name、age分别表示学生的姓名和年龄,定义一个方法Introduce()表示学生做自我介绍,具体代码如下:public class Student public string name; public int age; public void Introduce() / 在控

    8、制台输出属性name和age的值 Console.WriteLine(大家好,我叫 + name + ,我今年 + age + 岁!); 属性 为什么要属性根据上述定义好的Student类创建对象,通过创建好的对象就可以为程序中的name和age赋值,当把age赋值为一个负数-30时,虽然程序不会报错,但在现实生活中明显是不合理的。为了解决年龄不能为负数的问题,在设计一个类时,应该对字段的访问作出一些限定,不允许外界随意访问,此时就可以使用属性。 属性在程序中,使用属性封装字段时,需要将字段访问级别设为private,并通过属性的get和set访问器来对字段进行读写操作,从而保证类内部数据安全

    9、。属性分为三种,具体如下: 读写属性 只读属性 只写属性 访问修饰符在C#中,访问修饰符共有四种,分别是public、protected、internal、private,这些访问修饰符可以修饰类和方法,还可以修饰字段、属性、索引器,不同访问修饰符控制不同的访问级别。 构造方法的定义 为什么需要构造方法实例化一个类的对象后,如果要为这个对象中的字段赋值,则必须要访问对象的属性。如果需要在实例化对象的同时就为这个对象的字段进行赋值,可以通过构造方法来实现。 构造方法的定义 构造方法的名称与类相同 没有返回值类型声明 不能在方法中使用return语句返回一个值注意:没有返回值类型声明不等同于“vo

    10、id”,void也是一种返回值类型声明,请注意构造方法与返回类型为void的方法的区别。 构造方法的重载与普通方法一样,构造方法也可以重载,在一个类中可以定义多个构造方法,只要每个构造方法的参数类型或参数个数不同即可。 构造方法的一些细节 每一个类都至少有一个构造方法,如果在定义类时,没有显式地 声明任何构造方法,系统会自动为这个类创建一个无参的构造方法,里面没有任何代码。 在定义构造方法时,如果没有特殊需要,都应该使用public关键字修饰。 第三课时(this关键字、索引器、垃圾回收、static关键字) this关键字 this关键字的作用可以解决成员变量与局部变量名称冲突的问题。 th

    11、is关键字的三种用法 通过this关键字可以明确地去访问一个类的成员变量 通过this关键字调用成员方法。 构造方法是在实例化对象时被C#运行环境自动调用的,在程序中 不能像调用其它方法一样去调用构造方法,但可以在一个构造方法中使用“this(参数1,参数2)”的形式来调用其它的构造方法。 使用this时需要注意的问题 不能在成员方法中使用this来调用其他方法。 索引器 为什么要索引器通常情况下,属性只能访问单一的字段,如果想访问多个数据成员,就需要使用索引器,索引器是类的特殊成员,它可以根据索引在多个数据成员中进行选择。索引器的语法与属性非常相似,能够让对象以类似数组的方式来存取。这样使程

    12、序看起来更为直观,更容易编写。 索引器的定义索引器的定义方式与属性定义方式类似,其基本的语法格式如下所示:修饰符 数据类型 this索引类型 index get /返回参数值 set /设置隐式参数value给字段赋值在上述语法格式中,使用this关键字加索引类型 index的形式来创建一个索引器,在索引器中同样会使用get和set访问器,来获取属性值和设置属性值。 垃圾回收机制一个对象在没有任何变量引用时,这个对象便成为内存垃圾。而C#运行环境有自动的垃圾回收机制,垃圾回收器会不定期对内存垃圾进行查找并清除,保证最大的内存利用率。 static关键字static关键字可以修饰类的成员,如成员

    13、变量、成员方法以及代码块等。被static修饰的成员都是静态成员,如被static修饰的字段被称为静态字段。被static修饰的成员,都使用“类名.静态成员名”的方式访问。 静态字段 特点静态字段中存储的数据在内存中只有一份,并且可以被类的所有实例对象所共享。例如某个学校所有学生共享一个学校名称,此时完全不必在每个学生对象所占用的内存空间都定义一个字段来存储这个学校名称,可定义一个静态字段来表示学校名称让所有对象来共享。 注意的问题静态字段是被static关键字修饰的字段,它不属于任何对象,只属于类,而且只能通过“类名.静态字段名”的方式来访问。 静态属性 特点静态属性可以读写静态字段的值,并

    14、保证静态字段值的合法性。 静态方法 特点静态方法可以在不创建对象的情况下就可以调用某个方法,也就是使该方法不必和对象绑在一起。同其他静态成员类似,静态方法使用“类名.方法名”的方式来访问。 注意的问题由于静态方法在类加载时就会被初始化,而实例对象的初始化晚于静态方法,因此在静态方法中不能引用在其方法体外创建的实例对象。 静态类 特点当类中的成员全部是静态成员时,就可以把这个类声明为静态类。 静态构造方法 特点静态构造方法的作用是初始化静态成员。一个类只能有一个静态构造方法,该静态构造方法没有任何修饰符,也没有参数,可以被定义在静态类或非静态类中。用户无法像使用普通构造方法那样直接使用静态构造方

    15、法,静态构造方法会在程序创建第一个实例或引用任何静态成员之前,完成类中静态成员的初始化。第四课时(单例模式、嵌套类、匿名类、对象初始化器) 单例模式 什么是设计模式设计模式是在大量的实践中总结和理论化之后优选的代码结构、编程风格、以及解决问题的思考方式。设计模式就像是经典的棋谱,不同的棋局,我们用不同的棋谱,免得我们自己再去思考和摸索。 单例模式所谓类的单例设计模式,就是采取一定的方法保证在整个软件系统中,某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法。 单例设计模式的特征 将构造方法私有化。 对外提供一个公有的get方法,让别人通过此方法来获得实例。 由于不能创建对象,所

    16、以get方法必须静态,这样别人才能使用“类 名.方法名”的方式访问。 需要保证单例,所以要提供一个静态变量记住一个实例用于返回。 该实例应该私有,禁止外界通过直接访问进行改动。 单例模式的示例代码下面是一个实现了单例设计模式的程序。class Single /创建一个静态Single类的对象并为其赋值 private static Single instance = new Single(); private Single() public static Single GetInstance() if (instance = null) instance = new Single(); ret

    17、urn instance; 嵌套类 定义在C#中,可以将类定义在另一个类的内部,被包含的类称作嵌套类,而包含嵌套类的类就称作外部类。实际上,嵌套类与普通类相似,只是被声明的位置比较特殊,致使其访问权限与引用方式与普通类有所区别。 注意的问题外部类与嵌套类的非静态成员可以重名,在对非静态成员访问时,需要先创建它所在类的对象。在嵌套类内不能声明静态成员,但嵌套类可以直接引用外部类的静态成员。想要在作用域范围之外引用嵌套类,需要使用类似“Outer.Nesting”的完整限定名方式。 匿名类 定义有时候某个类的实例只会用到一次,这时可以使用匿名类的方式创建实例,即无需显式定义一个类,就可以将一组只读

    18、属性封装到单个对象中。 对象初始化器 为什么使用对象初始化器在一个类中,通常是使用构造方法来为属性赋值,当一个类中属性过多时,不可能为每种情况都创建一个构造方法,此时可以使用对象初始化器来为属性赋值。 对象初始化器的语法格式类名 变量名=new 类名()属性名=值,属性名=值;第五课时上机练习(总结,测试题)1、总结本章内容2、通过题库发放相关测试题,检查学生掌握情况。上机练习主要针对本章中需要重点掌握的知识点,以及在程序中容易出错的内容进行练习,通过上机练习可以考察同学对知识点的掌握情况,对代码的熟练程度。上机一:(考察知识点为属性)请按照以下要求设计一个Student类。要求如下:1) 定

    19、义一个Student类,该类中定义两个字段name和age,然后通过 set构造器对传入的参数进行检查,保证字段值的合法性,用get构造器来获取Student类中字段的值。2) 定义一个测试类,在Main()方法中创建Student对象,然后通过该对象的属性为name和age赋值,最后调用Speak()方法输出学生信息。示例代码如下:class Student private string name; public string Name set name = value; get return name; /返回name值 private int age; public int Age se

    20、t if (value 0) age = 0; else age = value; get return age; /返回age值 public void Speak() Console.WriteLine(我的名字是 + name + ,今年 + age + 岁); public class Test public static void Main(string args) Student s1 = new Student(); s1.Name = 小新; s1.Age = -30; s1.Speak(); Console.ReadKey(); 上机二:(考察知识点为构造方法重载)请按照以下

    21、要求设计一个Student类。要求如下:1) 在Student类中定义三个重载的构造方法,一是无参的构造方法,二是接收一个string类型参数的构造方法,该方法用于为Name属性赋值,三是接收两个参数的构造方法,该方法用于为Name、Age字段赋值。2) 定义一个测试类,在Mian()方法中创建三个Student对象,并在创建对象时为name、age字段赋值。示例代码如下:class Student public string Name get;set; public int Age get;set; public Student() Console.WriteLine(无参的构造方法); p

    22、ublic Student(string name) Name=name; Console.WriteLine(一个参数的构造方法); public Student(string name, int age) Name=name; Age=age; Console.WriteLine(两个参数的构造方法); public class Test public static void Main(string args) Student s1 = new Student(); Student s2 = new Student(Rose); Student s3 = new Student(Rose,

    23、 23); 第六课时上机练习(总结,测试题)上机一:(考察知识点为static关键字)请按照以下要求设计一个Helper帮助类。要求如下:3) 定义一个Helper静态类,该类中定义四个静态方法,分别用于计算两个整数的和、差、积和商,参数和返回值都为int类型。4) 定义一个测试类,在Main()方法中允许用户输入两个数和运算符,然后通过输入的运算符调用Helper帮助类中相应的方法,并打印出计算结果。示例代码如下:class Program static void Main(string args) Console.WriteLine(请输入运算的第一个数); int num1 = Conv

    24、ert.ToInt32(Console.ReadLine(); Console.WriteLine(请输入运算符); string oper = Console.ReadLine(); Console.WriteLine(请输入运算的第二个数); int num2 = Convert.ToInt32(Console.ReadLine(); /通过输入的运算符选择运算方式 switch(oper) case +:Console.WriteLine(两个数的和为:0, Helper.Sum(num1, num2);break; case -: Console.WriteLine(两个数的差为:0,

    25、 Helper.Sub(num1, num2) ; break; case *: Console.WriteLine(两个数的积为:0, Helper.Mul(num1, num2); break; case /: if (num2 = 0) Console.WriteLine(除数不能为0); else Console.WriteLine(两个数的商为:0, Helper.Division(num1, num2); ; break; Console.ReadKey(); /静态类 public static class Helper /加 public static int Sum(int num1,int num2) return num1 + num2; /减 public static int Sub(int num1, int num2) return num1 - num2; /乘 public static int Mul(int num1, int num2) return num1 * num2; /除 public static int Division(int num1, int num2) return num1 / num2; 思考题和习题见教材第四章课后习题教学后记


    注意事项

    本文(第4章 面向对象基础教学设计.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开