C# Academy · 课时

封装和访问修饰符

学习封装如何保护数据,以及访问修饰符如何控制可见性

第 5 / 7 课10 个步骤

封装和访问修饰符 是 CoddyKit 上的免费 C# Academy 课时。 这是第 5 节课,共 7 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 C# Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 C# Academy 课程共包含 7 节课。

封装简介

封装和访问修饰符

欢迎来到下一课!本课将介绍封装这一面向对象编程中的重要概念,以及访问修饰符如何控制 C# 中类成员的可见性。让我们开始吧!

封装和访问修饰符 — 插图 1

什么是封装?

封装是将数据(字段)和行为(方法)组合到一个单元(类)中的过程,同时限制对某些组件的直接访问。这样做可以保护数据的完整性,并对数据访问实施规则。

关键点:封装可以隐藏实现细节,只公开必要的功能。

为什么封装很重要?

封装具有以下几项优势:

  • 数据保护:防止未经授权或无效地访问类字段。
  • 代码可维护性:内部实现的更改不会影响外部代码。
  • 增强模块化:使代码保持有序并易于理解。

示例:使用私有字段和公共方法管理这些字段的类,就体现了封装。

理解访问修饰符

C# 中的访问修饰符定义了类成员的可访问范围:

  • 公共:可以从任何位置访问。
  • 私有:只能在同一个类中访问。
  • 受保护:可以在同一个类及其派生类中访问。
  • 内部:可以在同一个程序集内访问。
  • 受保护的内部:可以在同一个程序集内或派生类中访问。

关键点:请使用访问修饰符来实现封装。

示例:使用私有字段实现封装

下面是一个使用私有字段和公共方法实现封装的示例:

关键点:请使用私有字段限制直接访问,并使用公共方法公开受控功能。

using System;

class BankAccount {
    private decimal balance; // Private field

    public void Deposit(decimal amount) {
        if (amount > 0) {
            balance += amount;
        } else {
            Console.WriteLine("Deposit amount must be positive.");
        }
    }

    public decimal GetBalance() {
        return balance; // Access balance through a method
    }
}

class Program {
    static void Main() {
        BankAccount account = new BankAccount();
        account.Deposit(100.50m); // Deposit money
        Console.WriteLine("Balance: $" + account.GetBalance()); // Get balance
    }
}

使用属性实现封装

属性提供了一种更清晰的方式来封装字段,同时允许添加验证逻辑。示例:

提示:请使用属性代替直接的获取器和设置器,以提高可读性。

using System;

class BankAccount {
    private decimal balance; // Private field

    public decimal Balance { // Property with validation
        get { return balance; }
        set {
            if (value >= 0) {
                balance = value;
            } else {
                Console.WriteLine("Balance cannot be negative.");
            }
        }
    }
}

class Program {
    static void Main() {
        BankAccount account = new BankAccount();
        account.Balance = 200; // Set balance
        Console.WriteLine("Balance: $" + account.Balance); // Get balance
    }
}

练习挑战

创建一个名为 Student 的类,其中包含私有字段 Name 和 Age。使用属性封装这些字段,并确保年龄始终为正数。示例:

using System;

class Student {
    private string name;
    private int age;

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

    public int Age {
        get { return age; }
        set {
            if (value > 0) {
                age = value;
            } else {
                Console.WriteLine("Age must be positive.");
            }
        }
    }
}

class Program {
    static void Main() {
        Student student = new Student();
        student.Name = "Alice";
        student.Age = 20;

        Console.WriteLine("Name: " + student.Name);
        Console.WriteLine("Age: " + student.Age);
    }
}

封装的最佳实践

以下是一些最佳实践:

  • 始终为敏感数据使用私有字段。
  • 使用属性或方法验证并控制对字段的访问。
  • 将封装与访问修饰符结合使用,以保护代码。

提示:封装有助于您构建安全且易于维护的应用程序。

做得很好!

恭喜您!您已经学会了如何使用封装和访问修饰符来保护和组织数据。在下一课中,我们将探索继承,并学习如何高效地复用代码。让我们继续编写代码吧!

封装和访问修饰符 — 插图 10
免费开始

用 AI 导师学习 C# — 免费

在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。

课程
93
课程
346

常见问题解答

「封装和访问修饰符」课时是免费的吗?

是的 — 「封装和访问修饰符」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 C# Academy 课程的其余内容,请升级到 CoddyKit PRO。 C# Academy 课程共包含 7 节课。

「封装和访问修饰符」这节课中我会学到什么?

学习封装如何保护数据,以及访问修饰符如何控制可见性 你通过在浏览器中直接运行的动手代码来练习 C# Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 C# Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 C# Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 5 节课,共 7 节。

「封装和访问修饰符」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 C# Academy 课中编写并运行代码吗?

能。每节 C# Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 什么是面向对象编程?
  2. 定义类和对象
  3. 理解属性和方法
  4. C# 中的构造函数
  5. 封装和访问修饰符
  6. 继承:复用代码
  7. 多态和方法重写
← 返回 C# Academy