c#学习之面向对象编程核心概念

参考资料:
c#-菜鸟教程

适用人群:本教程是主要介绍面向对象编程会涉及的一些核心概念及其应用场景

目录

c#基本语法函数等

基本语法无需多说,多用几次就记住了。

c#预处理器指令:

#lIne 适用场景:通过使用 #line 指令,你可以将编译器错误和警告指向原始的模板文件或生成代码的位置

Unicode 通用类别

Unicode 通用类别是一组预定义的字符分类,例如字母、数字、标点符号等。以下是一些常见的 Unicode 通用类别:

L:字母
    Lu:大写字母
    Ll:小写字母
    Lt:标题大小写字母
    Lm:修饰字母
    Lo:其他字母

正则表达式感觉想熟悉的话感觉需要专门开一章进行学习

异常处理

执行过程中出现异常的情况,比如找不到指定文件、除以0等

try、catch、finally 和 throw。

c#重点概念/面向对象编程重点概念

c#是一个面向对象编程(OOP)语言,所以它通常会包含面向对象编程的核心概念和特性,如类、对象、封装、继承、多态和抽象。这些概念是面向对象编程的基础,它们使得我们能够以一种结构化和模块化的方式设计和实现软件。

面向对象编程的核心概念

类(Class):
    定义:类是对象的**模板**,它定义了对象的属性(字段和属性)和方法(行为)。
    应用场景:超市中,商品都具有价格,生产日期等共同的属性/字段,则可以将共有的属性/字段定义为一个类,类似于生物学中的概念。在一个电子商务系统中,可以定义 Product 类来表示商品,每个商品是一个 Product 对象。

对象(Object):
    定义:对象是类的**实例** / **具像化**,具有类定义的属性和方法。
    应用场景:同上。

封装(Encapsulation):
    定义:封装是将数据和操作数据的方法绑定在一起,并隐藏对象的内部细节。类似于黑盒,并且有说明书,说明类里的成员的范围和可见性。
    作用:封装提高了代码的安全性和可维护性,通过访问修饰符(如 public、private、protected)来控制对类成员的访问。
    应用场景:数据保护,保护类的内部数据,防止外部直接修改。例如,银行账户的余额应该受到保护,只有通过特定的方法才能存取。

继承(Inheritance):
    定义:继承允许一个类(子类)继承另一个类(基类)的属性和方法。这个简单,有点像财产继承一样。
    作用:继承促进了代码的复用,子类可以扩展或重写基类的行为。
    应用场景:例如,哺乳动物、鸟类等子类继承动物类的一些属性和方法

多态(Polymorphism):
    定义:多态允许一个接口或基类引用多个派生类的对象。即同一个函数,在不同的情景下有不同的行为,通常是一个接口,多个功能。
    作用:多态提高了代码的灵活性和可扩展性,支持运行时多态(方法重写)和编译时多态(方法重载)。
    应用场景:在不修改现有代码的情况下添加新的类。例如,增加一个新的 形状种类,现有的形状处理逻辑不需要改变。

抽象(Abstraction):
    定义:抽象是隐藏复杂实现细节,只暴露必要的信息给外部。有点像封装,但不提供具体实现。子类必须实现这些方法。
    作用:抽象简化了系统的设计,通过抽象类和接口来实现。
    应用场景:如计算不同形状的面积,可以定义一个计算函数,但不定义其实现,而子类负责具体的一个实现。

面向对象编程语言的特征

类和对象:
    面向对象编程语言必须支持类和对象的概念。类是对象的模板,对象是类的实例。

封装:
    语言必须提供机制来封装数据和方法,例如通过访问修饰符来控制对类成员的访问。

继承:
    语言必须支持继承,允许一个类继承另一个类的属性和方法。

多态:
    语言必须支持多态,允许一个接口或基类引用多个派生类的对象。

抽象:
    语言必须支持抽象,允许定义抽象类和接口,隐藏复杂的实现细节。
相关推荐
公贵买其鹿几秒前
List深拷贝后,数据还是被串改
java
xlsw_3 小时前
java全栈day20--Web后端实战(Mybatis基础2)
java·开发语言·mybatis
神仙别闹4 小时前
基于java的改良版超级玛丽小游戏
java
黄油饼卷咖喱鸡就味增汤拌孜然羊肉炒饭4 小时前
SpringBoot如何实现缓存预热?
java·spring boot·spring·缓存·程序员
暮湫5 小时前
泛型(2)
java
超爱吃士力架5 小时前
邀请逻辑
java·linux·后端
南宫生5 小时前
力扣-图论-17【算法学习day.67】
java·学习·算法·leetcode·图论
转码的小石5 小时前
12/21java基础
java
李小白665 小时前
Spring MVC(上)
java·spring·mvc
sanguine__5 小时前
Web APIs学习 (操作DOM BOM)
学习