C#学习之路-封装

这篇具有很好参考价值的文章主要介绍了C#学习之路-封装。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

封装 被定义为"把一个或多个项目封闭在一个物理的或者逻辑的包中"。在面向对象程序设计方法论中,封装是为了防止对实现细节的访问。

抽象和封装是面向对象程序设计的相关特性。抽象允许相关信息可视化,封装则使开发者实现所需级别的抽象

C# 封装根据具体的需要,设置使用者的访问权限,并通过 访问修饰符 来实现。

一个 访问修饰符 定义了一个类成员的范围和可见性。C# 支持的访问修饰符如下所示:

  • public:所有对象都可以访问;
  • private:对象本身在对象内部可以访问;
  • protected:只有该类对象及其子类对象可以访问
  • internal:同一个程序集的对象可以访问;
  • protected internal:访问限于当前程序集或派生自包含类的类型。

C#学习之路-封装,c#,学习,开发语言 

Public 访问修饰符

Public 访问修饰符允许一个类将其成员变量和成员函数暴露给其他的函数和对象。任何公有成员可以被外部的类访问。

using System;

namespace RectangleApplication
{
    class Rectangle
    {
        //成员变量
        public double length;
        public double width;

        public double GetArea()
        {
            return length * width;
        }
        public void Display()
        {
            Console.WriteLine("长度: {0}", length);
            Console.WriteLine("宽度: {0}", width);
            Console.WriteLine("面积: {0}", 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.7

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("长度: {0}", length);
            Console.WriteLine("宽度: {0}", width);
            Console.WriteLine("面积: {0}", GetArea());
        }
    }//end class Rectangle    
    class ExecuteRectangle
    {
        static void Main(string[] args)
        {
            Rectangle r = new Rectangle();
            r.Acceptdetails();
            r.Display();
            Console.ReadLine();
        }
    }
}

Protected 访问修饰符

Protected 访问修饰符允许子类访问它的基类的成员变量和成员函数。这样有助于实现继承。

Internal 访问修饰符

Internal 访问修饰符允许一个类将其成员变量和成员函数暴露给当前程序中的其他函数和对象。换句话说,带有 internal 访问修饰符的任何成员可以被定义在该成员所定义的应用程序内的任何类或方法访问。

Protected Internal 访问修饰符

Protected Internal 访问修饰符允许在本类,派生类或者包含该类的程序集中访问。这也被用于实现继承。文章来源地址https://www.toymoban.com/news/detail-539644.html

到了这里,关于C#学习之路-封装的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • C语言-学习之路-07

    内存管理 作用域 C语言中变量的作用域可分为:代码作用域、函数作用域、文件作用域 局部变量 局部变量也叫auto自动变量,一般情况下代码块{}内部定义的变量都是自动变量,它有如下特点: 在一个函数内定义,只在函数范围内有效 在复合语句中定义,只在函数范围内有效

    2024年02月03日
    浏览(35)
  • C语言-学习之路-04

    数组与字符串 数组:为了方便处理数据把具有相同类型的若干变量按有序形式组织起来。 数组就是在内存中连续的相同类型的变量空间。同一个数组的所有成员都是相同的数据类型,同时所有成员在内存中的地址也是连续的。 数组属于构造数据类型: 一个数组可以分解为多

    2024年02月03日
    浏览(29)
  • C语言-学习之路-05

    函数 函数分类 C语言程序都是从主函数main()开始执行的。从函数的定义角度看,函数可分为系统函数和用户定义函数。 系统函数(库函数):这是由编译系统提供,用户不必自己定义这些函数,但可以直接使用。例如scanf()、printf()、sizeof()等。 用户定义函数:由用户自行定义

    2024年02月02日
    浏览(26)
  • C语言学习之路(工具篇)—— Visual Studio的使用

    说明:该篇博客是博主一字一码编写的,实属不易,请尊重原创,谢谢大家! 源文件—添加—新建项 C语言编译步骤 1)预处理 宏定义展开、头文件展开、条件编译等,同时将代码中的注释删除, 这里并不会检查语法 2)编译 检查语法 ,将预处理后文件编译生成汇编文件

    2023年04月08日
    浏览(30)
  • ESP32C3学习&开发之路——VScode开发环境搭建

    上次搭建好了ESP IDF离线版的开发环境,但是我不想每次开发的时候都要打开“PowerShell”终端,也不想要输入指令进行编译和下载的操作,所以再搭建在VScode的软件上开发ESP32系列WiFi模组的开发环境。 VScode全称Visual Studio Code,免费而强大,可在Windows、Linux和Mac OS上运行。所以

    2024年02月10日
    浏览(41)
  • 编程语言学习笔记-架构师和工程师的区别,PHP架构师之路

    🏆作者简介,黑夜开发者,全栈领域新星创作者✌,CSDN博客专家,阿里云社区专家博主,2023年6月CSDN上海赛道top4。 🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。 🏆本文已收录于PHP专栏:PHP进阶实战教程。 🎉欢迎 👍点赞✍评论⭐收藏 什么是架构师

    2024年02月12日
    浏览(36)
  • 【从零开始的rust web开发之路 一】axum学习使用

    第一章 axum学习使用 本职java开发,兼架构设计。空闲时间学习了rust,目前还不熟练掌握。想着用urst开发个web服务,正好熟悉一下rust语言开发。 目前rust 语言web开发相关的框架已经有很多,但还是和java,go语言比不了。 这个系列想完整走一遍web开发,后续有时间就出orm,还

    2024年02月12日
    浏览(40)
  • 第4天:基础入门-APP架构&小程序&H5+Vue语言&Web封装&原生开发&Flutter

    1.原生开发 安卓一般使用java语言开发,当然现在也有kotlin语言进行开发。如何开发就涉及到具体编程了,这里就不详说了。简单描述就是使用安卓提供的一系列控件来实现页面,复杂点的页面可以通过自定义控件来实现。 2.使用H5语言开发 使用H5开发的好处有很多,可多端复

    2024年04月10日
    浏览(34)
  • 嵌入式开发的学习与未来展望:借助STM32 HAL库开创创新之路

      引言: 嵌入式开发作为计算机科学领域的重要分支,为我们的日常生活和产业发展提供了无限的可能。STMicroelectronics的STM32系列芯片以其出色的性能和广泛的应用领域而备受关注。而STM32 HAL库作为嵌入式开发的高级库,为学习者提供了更高效、更简单的开发方式。本文将结

    2024年02月12日
    浏览(35)
  • 基于C#语言的GUI开发,主要介绍WPF框架

    下面是几种常见基于.Net的界面开发框架,都是Microsoft提供,下面简介由GPT生成 WinForms (Windows Forms WPF (Windows Presentation Foundation) UWP (Universal Windows Platform) MAUI (Multi-platform App UI) WinForms(Windows Forms): 介绍: WinForms是由Microsoft提供的用于开发Windows桌面应用程序的UI框架。它使用简单

    2024年02月03日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包