C#-面向对象基本概念

1. 面向对象基本概念

  • 之前所接触到的编程方式叫做面向过程
  • 面向过程和面向对象是两种不同的编程方式
  • 对比面向过程的特点,可以更好的了解什么是面向对象

1.1 过程和函数(科普)

  • 过程是早期的一个编程概念
  • 过程类似于函数,只能执行,但是没有返回值
  • 函数不仅能执行,还可以返回结果

1.2 面向过程和面向对象基本概念

1)面向过程——怎么做?

  1. 把完成某一个需求的所有步骤从头到尾逐步实现
  2. 根据开发要求,将某些功能独立的代码封装成一个又一个函数
  3. 最后完成的代码,就是顺序的调用不同的函数

特点

  1. 注重步骤与过程,不注重职责分工
  2. 如果需求复杂,代码会变得很复杂
  3. 复杂项目没有固定的套路,难度很大

2)面向对象——谁来做?

相比较函数,面向对象是更大的封装,根据职责,在一个对象中封装多个方法

  1. 在完成某一个需求前,首先确定职责,要做的事情(方法)
  2. 根据职责,确定不同的对象,在对象内部封装不同的方法(多个)
  3. 最后完成代码,就是顺序的,让不同的对象调用不同的方法

特点

  1. 注重对象和职责,不同的对象承担不同的职责
  2. 更加适合应对复杂的需求变化,是专门应对复杂项目开发,提供固定套路
  3. 需要在面向过程基础上,再学习一些面向对象的语法

2. 类和对象的概念

2.1 类

类是对一群具有相同特征或者行为的事物的一个统称,是抽象的,不能直接使用

  • 特征被称为属性
  • 行为被称为方法

类就相当于制汽车的图纸,是一个模板,是负责创建对象的

2.2 对象

  • 对象是由类创造出来的一个具体存在,可以直接使用
  • 有哪一个类创造出来的对象,就拥有在哪一个类中定义的属性和方法
  • 对象就相当于是用图纸制造的汽车

2.3 类和对象的关系

  • 类是模板,对象是根据类这个模板创建出来的,应该先有类,再有对象
  • 类只有一个,而对象可以有很多个,不同的对象之间属性的具体内容可能各不相同
  • 类中定义了什么属性和方法,对象中就有什么属性和方法,不可能多,也不可能少

3. 类的设计

在使用面向对象开发前,应该首先分析需求,确定一下程序中需要包含哪些类

在程序开发中要设计一个类,通常需要满足以下3个要素:

  1. 类名:这类事物的名称,满足Pascal 规则
  2. 属性:这类事物具有什么样的特征
  3. 方法:这类事物具有什么样的行为

3.1 类名的确定

名词提炼法:分析整个业务流程出现的名词,通常就是找到的类。

3.2 属性和方法的确定

  • 对对象的特征,描述通常可以定义成属性。
  • 对象具有的行为通常可以定义为方法。注:方法,一般是动作即动词。

4. 类和对象的使用

4.1 声明类

  • 声明一个类需要使用 class 关键字
  • 类的属性及方法写在大括号中

4.2 声明属性

  • 属性在 C# 中较为独特,它既不同于方法,也不同于字段。
  • 属性使用Pascal规则命名。
  • 属性最常用的书写方法:public int Age{get;set;}
  • 如果属性中具有 get 关键字,说明可以获取该属性的值
  • 如果属性中具有 set 关键字,说明可以向该属性设置

4.3 声明方法

同函数声明

4.4 实例化

  • 类使用关键字 new 实例化对象
  • 一个类可以实例化多个对象
  • 对象可以使用类定义的属性和方法

4.5 访问修饰符

  • public:共有的 所有的类都可以访问
  • private:私有的 当前类内部可访问
  • protected:受保护的 当前类以及继承它的子类可访问
  • internal:内部的 只限于本项目内访问,其他的不能访问
  • protected internal:内部保护访问 只能是本项目内部或子类访问 其他类不能访问

访问级别约束:

  • 父类子类访问修饰符要保持一致
  • 方法的访问修饰符要和方法参数的访问修饰符保持一致

注意:类的访问级别默认internal,要加上public才能让外部访问。

静态方法、属性

  • 静态方法和属性通过static关键字修饰
  • 静态方法和属性通过类型直接获取,非静态则必须通过实例化的对象获取
  • 静态方法只能使用静态属性

静态类

  • 静态类通过static关键字修饰
  • 一般情况下类型不需要使用静态修饰,只有当类型中存在扩展方法时需要使用静态类

相关推荐

  1. C#-面向对象基本概念

    2024-03-21 16:34:01       45 阅读
  2. 面向对象基础概念

    2024-03-21 16:34:01       33 阅读
  3. 面向对象编程基本概念

    2024-03-21 16:34:01       31 阅读
  4. 关于面向对象面向过程的基本概念

    2024-03-21 16:34:01       36 阅读
  5. C++ 类和对象面向对象编程基础

    2024-03-21 16:34:01       31 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-21 16:34:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-21 16:34:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-21 16:34:01       82 阅读
  4. Python语言-面向对象

    2024-03-21 16:34:01       91 阅读

热门阅读

  1. sxf-漏洞研究员实习

    2024-03-21 16:34:01       40 阅读
  2. Tastewise推出AI解决方案TasteGPT

    2024-03-21 16:34:01       42 阅读
  3. git 不同仓库 同步

    2024-03-21 16:34:01       39 阅读
  4. Webapi 日志过滤器(接口日志记录)

    2024-03-21 16:34:01       37 阅读
  5. C++ 类构造函数 & 析构函数

    2024-03-21 16:34:01       40 阅读
  6. FDU 2018 | 1. 求众数

    2024-03-21 16:34:01       46 阅读
  7. el-table原始列表转换成树形数据

    2024-03-21 16:34:01       36 阅读
  8. blender记一下法线烘焙

    2024-03-21 16:34:01       39 阅读
  9. 在springboot中利用Redis实现延迟队列

    2024-03-21 16:34:01       40 阅读