C# 完全学习指南C# 完全学习指南
首页
基础教程
进阶内容
实战项目
编程指南
首页
基础教程
进阶内容
实战项目
编程指南
  • 基础教程

    • 📚 基础教程
    • 第1章 - 认识 C#
    • 第2章 - 环境搭建
    • 第3章 - 第一个程序
    • 第4章 - 变量与数据类型
    • 第5章 - 运算符
    • 第6章 - 控制流程
    • 第7章 - 循环语句
    • 第8章 - 数组
    • 第9章 - 方法
    • 第10章 - 面向对象基础
    • 第11章 - 类与对象
    • 第12章 - 继承
    • 第13章 - 多态
    • 第14章 - 封装
    • 第15章 - 接口

第10章 - 面向对象基础

嗨,朋友!我是长安。

恭喜你完成了前9章的学习!现在我们要进入 C# 最核心的部分——面向对象编程(OOP)。这是一个全新的编程思想,理解了它,你的编程水平会有质的飞跃!

🤔 什么是面向对象?

**面向对象编程(Object-Oriented Programming, OOP)**是一种编程思想,把现实世界中的事物抽象成程序中的"对象"。

面向过程 vs 面向对象

面向过程:关注"怎么做"

// 洗衣服的过程
放衣服();
加洗衣粉();
加水();
启动洗衣机();

面向对象:关注"谁来做"

// 洗衣机对象来做
洗衣机.洗衣服();

🌟 面向对象的三大特性

1. 封装(Encapsulation)🎁

把数据和操作数据的方法包装在一起,隐藏内部细节。

类比:手机,你只需要知道怎么用,不需要知道内部电路。

2. 继承(Inheritance)👨‍👦

子类可以继承父类的属性和方法,实现代码复用。

类比:儿子继承父亲的财产,但也可以有自己的东西。

3. 多态(Polymorphism)🎭

同一个方法,不同对象有不同的实现。

类比:动物都会"叫",但狗叫"汪汪",猫叫"喵喵"。

📦 类和对象

类(Class)- 图纸/模板

类是对象的模板,定义了对象的属性和行为。

类比:

  • 汽车设计图 → 类
  • 具体的一辆汽车 → 对象

对象(Object)- 实例

对象是类的实例,是具体存在的事物。

// 定义一个类
class Car
{
    // 属性(特征)
    public string Brand;    // 品牌
    public string Color;    // 颜色
    public int Speed;       // 速度
    
    // 方法(行为)
    public void Start()
    {
        Console.WriteLine($"{Brand} 汽车启动了!");
    }
    
    public void Run()
    {
        Console.WriteLine($"{Brand} 汽车以 {Speed} km/h 的速度行驶");
    }
}

// 使用类创建对象
class Program
{
    static void Main(string[] args)
    {
        // 创建对象
        Car myCar = new Car();
        myCar.Brand = "宝马";
        myCar.Color = "黑色";
        myCar.Speed = 120;
        
        // 调用方法
        myCar.Start();  // 宝马 汽车启动了!
        myCar.Run();    // 宝马 汽车以 120 km/h 的速度行驶
        
        // 创建另一个对象
        Car yourCar = new Car();
        yourCar.Brand = "奔驰";
        yourCar.Color = "白色";
        yourCar.Speed = 150;
        
        yourCar.Start();
        yourCar.Run();
    }
}

🎯 为什么要用面向对象?

1. 代码复用

定义一次,可以创建多个对象。

2. 易于维护

修改类的定义,所有对象自动更新。

3. 符合人类思维

现实世界就是由各种对象组成的。

4. 模块化

每个类负责一个功能,清晰明了。

💡 实战示例:学生类

using System;

namespace StudentDemo
{
    // 定义学生类
    class Student
    {
        // 属性
        public string Name;      // 姓名
        public int Age;          // 年龄
        public string StudentId; // 学号
        public double Score;     // 成绩
        
        // 方法:自我介绍
        public void Introduce()
        {
            Console.WriteLine($"大家好,我叫{Name},今年{Age}岁,学号是{StudentId}");
        }
        
        // 方法:学习
        public void Study(string subject)
        {
            Console.WriteLine($"{Name}正在学习{subject}");
        }
        
        // 方法:考试
        public void TakeExam()
        {
            if (Score >= 60)
            {
                Console.WriteLine($"{Name}考了{Score}分,及格了!");
            }
            else
            {
                Console.WriteLine($"{Name}考了{Score}分,不及格...");
            }
        }
    }
    
    class Program
    {
        static void Main(string[] args)
        {
            // 创建学生对象
            Student student1 = new Student();
            student1.Name = "张三";
            student1.Age = 18;
            student1.StudentId = "2024001";
            student1.Score = 85;
            
            student1.Introduce();
            student1.Study("C#编程");
            student1.TakeExam();
            
            Console.WriteLine("\n-------------------\n");
            
            // 创建另一个学生对象
            Student student2 = new Student();
            student2.Name = "李四";
            student2.Age = 19;
            student2.StudentId = "2024002";
            student2.Score = 55;
            
            student2.Introduce();
            student2.Study("数学");
            student2.TakeExam();
            
            Console.ReadKey();
        }
    }
}

输出:

大家好,我叫张三,今年18岁,学号是2024001
张三正在学习C#编程
张三考了85分,及格了!

-------------------

大家好,我叫李四,今年19岁,学号是2024002
李四正在学习数学
李四考了55分,不及格...

📚 面向对象的核心概念

概念说明示例
类对象的模板class Car
对象类的实例Car myCar = new Car()
属性对象的特征Brand, Color, Speed
方法对象的行为Start(), Run()
封装隐藏细节下一章详细讲
继承代码复用第12章详细讲
多态灵活实现第13章详细讲

🎨 类比总结

让我用一个完整的类比帮你理解:

  • 类 = 建筑设计图
  • 对象 = 具体的建筑物
  • 属性 = 建筑物的特征(高度、颜色、用途)
  • 方法 = 建筑物的功能(居住、办公)
  • 封装 = 只开放门窗,内部结构不可见
  • 继承 = 现代建筑继承传统建筑的元素
  • 多态 = 不同建筑有不同的使用方式

📝 本章小结

  • 面向对象是一种编程思想
  • 类是对象的模板,对象是类的实例
  • 类包含属性(特征)和方法(行为)
  • 面向对象有三大特性:封装、继承、多态
  • 使用 new 关键字创建对象
  • 面向对象让代码更易维护和复用

💡 长安的建议

面向对象是个全新的概念,刚开始可能不太好理解。建议你:

  1. 多看例子:看更多的代码示例
  2. 多想类比:联系现实生活中的事物
  3. 多写代码:自己创建几个类
  4. 不要着急:慢慢理解,后面会越来越清晰

🎯 下一步

理解了面向对象的基本概念后,下一章我们要深入学习类与对象的创建和使用!

下一章:类与对象 →

💪 练习题

  1. 创建一个"书"类,包含书名、作者、价格属性,和一个显示信息的方法
  2. 创建一个"手机"类,包含品牌、型号、价格属性,和打电话、发短信的方法
  3. 创建三个不同的学生对象,调用它们的方法
  4. 用自己的话解释什么是类和对象
答案提示
  1. class Book { public string Title; public string Author; public double Price; public void ShowInfo() {...} }
  2. class Phone { public string Brand; public string Model; public double Price; public void Call() {...} public void SendMessage() {...} }
  3. 使用 new Student() 创建多个对象
  4. 类是模板,对象是根据模板创建的实例
最近更新: 2025/12/27 14:02
Contributors: 王长安
Prev
第9章 - 方法
Next
第11章 - 类与对象