C#教程(一):面向对象

1、介绍

C#是一种多范式编程语言,但其中一个主要的编程范式是面向对象编程(OOP)。面向对象编程有一些特点,而C#提供了丰富的功能来支持这些特点。

2、面向对象特点

  1. 封装(Encapsulation):

    • 封装是将数据和方法捆绑在一起的概念,同时对外部隐藏实现的一部分。在C#中,使用访问修饰符(public、private、protected等)来控制对类的成员的访问。
  2. 继承(Inheritance):

    • 继承是一种通过创建新类并重用现有类的属性和行为的方式。在C#中,使用冒号(:)来实现继承关系。
  3. 多态(Polymorphism):

    • 多态性是指同一个方法可以在不同的类中有不同的实现。C#支持两种类型的多态性:编译时多态性(静态多态性)和运行时多态性(动态多态性)。编译时多态性是通过方法的重载和运算符重载实现的,而运行时多态性则是通过虚方法和接口实现的。
  4. 抽象类和接口(Abstract Classes and Interfaces):

    • C#支持抽象类和接口,它们都是实现抽象和多态性的重要手段。抽象类可以包含抽象方法和具体方法,而接口只能包含抽象方法。
  5. 类和对象(Classes and Objects):

    • C#中的类是用户定义的数据类型,用于封装数据和方法。对象是类的实例,通过类的构造函数创建。类和对象是面向对象编程的基本构建块。
  6. 成员访问修饰符(Access Modifiers):

    • C#提供了不同的成员访问修饰符,如public、private、protected等,用于控制对类的成员的访问。这有助于实现封装。
  7. 属性和索引器(Properties and Indexers):

    • 属性允许类提供对其字段的访问,并允许在访问字段之前或之后执行特定的逻辑。索引器允许类的实例像数组一样进行访问。
  8. 重载和覆盖(Overloading and Overriding):

    • C#支持方法和运算符的重载,使您能够在同一类中定义具有相同名称但不同参数列表的多个方法。此外,通过使用关键字override,子类可以覆盖父类的虚方法。

这些特点使得C#成为一种强大的面向对象编程语言,能够支持灵活、可维护和可扩展的代码设计。

3、示例

创建一个Person类,其中包含nameagegender三个属性

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _02_面向对象复习
{
   
    public class person
    {
   
        //字段 属性 方法
        private string _name;

        public string Name
        {
   
            get {
    return _name; }
            set {
    _name = value; }
        }

        private int _age;

        public int Age
        {
   
            get {
    return _age; }
            set {
    _age = value; }
        }

        private char _gender;

        public char Gender
        {
   
            get {
    return _gender; }
            set {
    _gender = value; }
        }

        public void SayHello()
        {
   
            Console.WriteLine("{0},{1},{2}", this._name, this._age, this._gender);
            Console.ReadLine();
        }

    }
}

接着在Program.cs中实例化一个person对象,并给Person的三个属性分别赋值

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _02_面向对象复习
{
   
    class Program
    {
   
        static void Main(string[] args)
        {
   
            person p = new person();
            p.Age = 10;
            p.Name = "张三";
            p.Gender = '男';
            p.SayHello();

        }
    }
}

4、运行结果

在这里插入图片描述

相关推荐

  1. 面向C++程序员的Rust教程

    2023-12-14 15:48:04       35 阅读
  2. 面向对象编程(

    2023-12-14 15:48:04       35 阅读
  3. 面向对象编程(

    2023-12-14 15:48:04       43 阅读
  4. c语言利用面向对象思想编程示例

    2023-12-14 15:48:04       44 阅读
  5. C# 面向对象编程()——类 第二篇

    2023-12-14 15:48:04       48 阅读

最近更新

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

    2023-12-14 15:48:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-14 15:48:04       101 阅读
  3. 在Django里面运行非项目文件

    2023-12-14 15:48:04       82 阅读
  4. Python语言-面向对象

    2023-12-14 15:48:04       91 阅读

热门阅读

  1. 【Python 千题 —— 基础篇】输出 Hello World!

    2023-12-14 15:48:04       64 阅读
  2. QMS之SCAR&MRB小知识

    2023-12-14 15:48:04       52 阅读
  3. NFS远程文件共享系统!

    2023-12-14 15:48:04       59 阅读
  4. Excel针对导入数据存在空格及换行统一处理

    2023-12-14 15:48:04       78 阅读
  5. 在高数据量中如何优化MySQL的Group by语句?

    2023-12-14 15:48:04       59 阅读
  6. 如何理解HTML下的网页结构?

    2023-12-14 15:48:04       72 阅读
  7. 文心一言4.0使用指南

    2023-12-14 15:48:04       70 阅读
  8. K8S学习指南(7)-k8s核心概念Annotation

    2023-12-14 15:48:04       67 阅读
  9. 大语言模型--能力

    2023-12-14 15:48:04       54 阅读
  10. Redis

    Redis

    2023-12-14 15:48:04      51 阅读
  11. canvas实现鼠标滚轮滚动缩放画布

    2023-12-14 15:48:04       64 阅读
  12. PHP 去除数组中元素值的前后空白符换行等

    2023-12-14 15:48:04       64 阅读
  13. C 库函数 - time()

    2023-12-14 15:48:04       67 阅读