2022年5月22日【Jiawei_Z】C# 基础教程---刘铁锰 02 委托 事件 继承

C# 基础教程—刘铁锰 02 委托 事件 继承 多态 重写.

类–什么是类? P25 23节
— 是一种数据结构
— 是一种数据类型
— 代表世界中的“种类”

namespace _20220525_Class_Liutiemeng
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Student stu = new Student() { ID = 1, Name = "Tomiy" };
            Console.WriteLine(stu.ID);
            Console.WriteLine(stu.Name);
            stu.Report();
            Console.ReadLine();
        }
    }

    class Student
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public void Report()
        {
            Console.WriteLine($"I'm #{ID}student,my name is {Name}.");
        }
    }
}

在这里插入图片描述

namespace _20220525_Class_Liutiemeng
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Student stu = new Student() { ID = 1, Name = "Tomiy" };//使用默认构造器
            Console.WriteLine(stu.ID);
            Console.WriteLine(stu.Name);
            stu.Report();

            Student2 stu2 = new Student2( 2 ,"zhangjiawei");//使用自定义的构造器
            Console.WriteLine(stu2.ID2);
            Console.WriteLine(stu2.Name2);

            Console.ReadKey();

        }
    }

    class Student // ----------ID 和 Name 使用默认构造器
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public void Report()
        {
            Console.WriteLine($"I'm #{ID}student,my name is {Name}.");
        }
    }

    class Student2 // ----------ID 和 Name 使用自定义构造器
    {
        public Student2(int id,string name) {
            this.ID2 = id;
            this.Name2 = name;
        }
        public int ID2 { get; set; }
        public string Name2 { get; set; }
    }
}

实例构造器,实例析构器。
内存泄漏和栈溢出 是不一样的。
下面就是一个析构器

~Student(){
Console.WriteLine("Bye bye!Release the system resources...");
}
Type t = typeof(Student);
object o = Activator.CreateInstance(1,"Timothy");//--------反射机制
Student stu = o as Student;

dynamic stu = Activator.CreateInstance(t,1,"Timothy");//---dynamic编程
Console.WriteLine(stu.Name);
/************************** Main体中 调用 静态成员*********************/
       Console.WriteLine(Student2.Amount);//Main体重静态成员 无法实例化

/************************** 类体中 定义 静态成员*********************/
        public static int Amount { get; set; } // 静态成员 无法实例
        static Student2(){ Amount = 100; }// 静态成员赋值

------------------------------ P26 24讲 类的声明

类是面向对象编程的核心;
我们想使用一个类,就需要先创建一个类---- 创建类 我们再C#中叫做 类的声明。
//
声明一个类
创建一个类的实例
/
/

哪里可以声明一个类
第一个:可以放在名称空间里
第二个:可以放在看似是名称空间外(实际上还是声明在全局名称空间里面)
第三个:可以放在类体里面(成员类)

声明和定义
declaration 和 definition

C#和Java 类的声明和定义是在一起的;

快捷键 ctrl shift f — 全局搜索

什么是基类 中嵌套了 泛型类。

声明一个类 少不了的三大点 : class关键字、类名字、类体。

类修饰符,是可以分组的:
new
--------按照继承关系分组--------
abstract
sealed
--------按照访问级别分组(类访问级别)--------
public
internal
--------按成员类分组--------
public
internal
private
protected
--------变成静态类 加上 static

回头讲到类的派生和继承,再去着重的讲一下类的修饰符。

快捷键 查看程序函数后退 ctrl + - 【ctrl & 减号】

------------------------------ P27 25讲 今天讲的是继承

面向对象编程,最显著的三个特征 : 封装继承和多态(多态又是基于继承的)

在这里插入图片描述

baseclass – 基类

沟通的术语:
//
基类 和 派生类 是一对儿---------- Basedclass and Derived class
/
/
父类 和 子类 是一对儿 ------------ Parent class and child class

可以横向类比: 基类相当于父类; 派生类相当于子类;
在这里插入图片描述
在这里插入图片描述

三个相关的 知识点
知识点1 —sealed 修饰一下类 – 变成了封闭类
在这里插入图片描述
知识点2—C#中一个类只能有一个基类(但是 以后学基接口 就不太一样)。
知识点3---- 子类的访问级别,不能超过父类 ,可以和父类访问级别一致,也可以访问级别更低。
*
补充说明:internal 修饰符 把类的访问级别限制在同一个程序集里面。
private修饰符 把类的访问级别限制在同一个程序集里面的类体里面
父类里面有时候不写private 这个修饰符,在没有写 public和 internal的时候,默认就是private,这是为了数据的安全性。

在这里插入图片描述
继承是什么呢?
继承的本质:派生类 在基类已有的成员基础之上,对基类进行的横向和纵向上的扩展。

横向扩展—类的成员个数的扩充,只会越来越多
纵向扩展—对类成员的版本进行扩充,类成员的重写【技术术语:重写】

再次说一下快捷键 :
F12 查看函数定义
Ctrl - 退回原函数

在这里插入图片描述

在这里插入图片描述
protected这个修饰符 放在父类中,派生类无法访问这个成员

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JIAWEI_Z

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值