C# 封装,你会吗?

本文转载自微信公众号「后端Q」,你会吗作者conan。封装转载本文请联系后端Q公众号。你会吗
封装 被定义为"把一个或多个项目封闭在一个物理的封装或者逻辑的包中"。在面向对象程序设计方法论中,你会吗封装是封装为了防止对实现细节的访问。
抽象和封装是你会吗面向对象程序设计的相关特性。抽象允许相关信息可视化,封装封装则使开发者实现所需级别的你会吗抽象。
C# 封装根据具体的封装需要,设置使用者的你会吗访问权限,并通过 访问修饰符 来实现。封装
一个 访问修饰符 定义了一个类成员的你会吗范围和可见性。C# 支持的封装访问修饰符如下所示:
public:所有对象都可以访问;
private:对象本身在对象内部可以访问;
protected:只有该类对象及其子类对象可以访问
internal:同一个程序集的对象可以访问;
protected internal:访问限于当前程序集或派生自包含类的类型。
Public 访问修饰符
Public 访问修饰符允许一个类将其成员变量和成员函数暴露给其他的你会吗函数和对象。任何公有成员可以被外部的类访问。WordPress模板
下面的实例说明了这点:
实例
using System; namespace RectangleApplication { class Rectangle { //成员变量 public double length; public double width; public double GetArea() { return length * width; } public void Display() { Console.WriteLine("长度: ", length); Console.WriteLine("宽度: ", width); Console.WriteLine("面积: ", GetArea()); } }// Rectangle 结束 class ExecuteRectangle { static void Main(string[] args) { Rectangle r = new Rectangle(); r.length = 4.5; r.width = 3.5; r.Display(); Console.ReadLine(); } } }当上面的代码被编译和执行时,它会产生下列结果:
长度:4.5 宽度:3.5 面积:15.75在上面的实例中,成员变量 length 和 width 被声明为 public,所以它们可以被函数 Main() 使用 Rectangle 类的实例 r 访问。
成员函数 Display() 和 GetArea() 可以直接访问这些变量。
成员函数 Display() 也被声明为 public,所以它也能被 Main() 使用 Rectangle 类的实例 r 访问。
Private 访问修饰符
Private 访问修饰符允许一个类将其成员变量和成员函数对其他的函数和对象进行隐藏。只有同一个类中的函数可以访问它的私有成员。即使是类的实例也不能访问它的私有成员。
下面的实例说明了这点:
实例
using System; namespace RectangleApplication { class Rectangle { //成员变量 private double length; private double width; public void Acceptdetails() { Console.WriteLine("请输入长度:"); length = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("请输入宽度:"); width = Convert.ToDouble(Console.ReadLine()); } public double GetArea() { return length * width; } public void Display() { Console.WriteLine("长度: ", length); Console.WriteLine("宽度: ", width); Console.WriteLine("面积: ", GetArea()); } }//end class Rectangle class ExecuteRectangle { static void Main(string[] args) { Rectangle r = new Rectangle(); r.Acceptdetails(); r.Display(); Console.ReadLine(); } } }当上面的代码被编译和执行时,它会产生下列结果:
请输入长度:
4.4
请输入宽度:
3.3
长度:4.4
宽度:3.3
面积:14.52
在上面的实例中,成员变量 length 和 width 被声明为 private,所以它们不能被函数 Main() 访问。
成员函数 AcceptDetails() 和 Display() 可以访问这些变量。
由于成员函数 AcceptDetails() 和 Display() 被声明为 public,云南idc服务商所以它们可以被 Main() 使用 Rectangle 类的实例 r 访问。
Protected 访问修饰符
Protected 访问修饰符允许子类访问它的基类的成员变量和成员函数。这样有助于实现继承。我们将在继承的章节详细讨论这个。更详细地讨论这个。
Internal 访问修饰符
Internal 访问说明符允许一个类将其成员变量和成员函数暴露给当前程序中的其他函数和对象。换句话说,带有 internal 访问修饰符的任何成员可以被定义在该成员所定义的应用程序内的任何类或方法访问。
下面的实例说明了这点:
实例
using System; namespace RectangleApplication { class Rectangle { //成员变量 internal double length; internal double width; double GetArea() { return length * width; } public void Display() { Console.WriteLine("长度: ", length); Console.WriteLine("宽度: ", width); Console.WriteLine("面积: ", GetArea()); } }//end class Rectangle class ExecuteRectangle { static void Main(string[] args) { Rectangle r = new Rectangle(); r.length = 4.5; r.width = 3.5; r.Display(); Console.ReadLine(); } } }当上面的代码被编译和执行时,它会产生下列结果:
长度:4.5
宽度:3.5
面积:15.75
在上面的实例中,请注意成员函数 GetArea() 声明的时候不带有任何访问修饰符。如果没有指定访问修饰符,则使用类成员的默认访问修饰符,即为 private。
Protected Internal 访问修饰符
Protected Internal 访问修饰符允许在本类,派生类或者包含该类的程序集中访问。这也被用于实现继承。源码库
相关文章
电脑无法连接以前的WiFi密码错误(解决方法及网络安全保护措施)
摘要:随着科技的发展,电脑已经成为人们生活和工作中不可或缺的一部分。而无线网络连接已经成为人们获取互联网信息的重要途径之一。然而,当我们尝试连接以前曾经使用过的WiFi时,常常会遇到密码...2025-11-05
时至今日,对域名行业的探讨一直还在继续。在国内中华文化博大精深,拼音域名一直占用一席之地,今天聚名网小编想跟大家聊一聊拼音域名中的双拼域名,是不是在拼音域名中,双拼域名最有价值?众所周知,拼音是汉字发2025-11-05
在建站过后,相信一定有不少人遇到过域名网址到期后应该怎么办的难题,也有不少网友不知道域名过期要经历哪几个阶段?怎么突然域名网址就会过期了?下面小聚就给大家介绍下域名过期后的几个阶段。1、域名保留期在域2025-11-05
入手域名的方式有哪些?入手域名后可以快速卖掉吗?现如今域名投资热度不减,备受追捧。下面小聚就给大家介绍下入手域名的方式有哪些呢?一起和小聚来看看吧!一、第一种方式预见该域名的未来价值,抢在其他人前面把2025-11-05半岛铁盒v3(发掘功能,体验卓越——全面解析半岛铁盒v3的优势和亮点)
摘要:随着科技的不断进步和手机市场的竞争日益激烈,人们对于一款手机的需求已经远远超过了通信功能。半岛铁盒v3作为一款备受瞩目的手机,引起了广大消费者的关注。本文将从功能、设计、性能等方面...2025-11-05
注册域名的人数那么多,目前还能申请到精品域名吗?新老域名注册人在这个市场上难识别,怎么样才能申请到好域名?一个好域名可以帮助seo人员快速优化网站排名。今日小聚就来告诉大家如何才能申请到精品域名。首先2025-11-05

最新评论