首页 > 编程语言 >C# 类、对象与封装

C# 类、对象与封装

时间:2024-07-09 13:02:39浏览次数:9  
标签:Customer 封装 定义 C# 修饰符 对象 声明 类名

目录

前言

一、类及其构成

1、类和对象

2、类的定义

二、对象

 

1、对象声明

2、为声明对象分配内存

3、使用对象

三、封装

 


前言

把相关的数据(数据结构)和操作(算法)放在一起,构成一个有机的整体(对象),实现与外界相对分隔,这就叫“封装”一个对象。   设计者的任务之一是设计对象,即决定把哪些数据和操作封装在一个对象中;其二是在此基础上怎样通知有关对象完成所需的任务。  

一、类及其构成

1、类和对象

每一个实体都是对象,而现实世界中有些实体(对象)具有相同的结构和特性,如:张山、李四就是两个具有相同结构和特性的不同对象。   我们用“类”来描述具有相同数据结构和特性的“一组对象”,可以说,“类”是对“对象”的抽象,而“对象”是“类”的具体实例.   也就是说一个类中的对象具有相同的“型”,但每个对象却具有各不相同的“值”。

2、类的定义

C#中类的声明需要使用 class 关键字,并把类的主体放在花括号中,格式如下:
[类修饰符]  [属性]  class  类名 { //类的成员定义 }
其中,除了 class 关键字和类名外,剩余的都是可选项;   类名必须是合法的 C#标识符,它将作为新定义的类的类型标识符。   其中:属性表示存储类型,当属性定义为 Static 时,表示是静态类,不能被实例化。   类修饰符表示类的访问控制权限,其意义如表所示。 fa6a7fbacdae4630b681c5a1a2d8f288.png   以上的类修饰符可以两个或多个组合起来使用,但需要注意下面几点:   (1)在一个类声明中,同一类修饰符不能多次出现,否则会出错。   (2)在使用 public、internal 这些类修饰符时,要注意这些类修饰符不仅表示所定义类的访问特性,而且还表明类中成员声明中的访问特性,并且它们的可用性也会对派生类造成影响。   (3)抽象类修饰符 abstract 和密封类修饰符 sealed 都是受限类修饰符。   (4)类的修饰符不能显式的声明为 private。   以上是用户定义类的的语句格式,.NET 框架中包含了大量的系统内置的类,如前面常用的 Console 类,这个类中就包含有多个数据成员和方法成员,用户可以直接使用。   类中不但可以包括数据,还包括处理这些数据的函数,所以,类是对某一类具有相同特性和行为的事物的描述,是对数据和处理数据的方法(函数)的封装。   【案例 】定义一个描述客户情况类 Customer
//类的定义,class是保留字,表示定义一个类,Customer 是类名
class Customer 
{ 
    private string name="张三";//类的数据成员声明
                            
    private int age=12; //private表示私有数据成员
                        
    public void Display() //类的方法(函数)声明,显示姓名和年龄
                          
    { 
        Console.WriteLine("姓名:{0},年龄:{1}",name,age); 
    } 
    public void SetName(string Name)//修改姓名的方法(函数)
                                    
    { 
        name=Name; 
    } 
    public void SetAge(int Age) 
    { 
        age=Age;
    } 
}

二、对象

 

类是对象的抽象,它并不存储信息或执行代码,而对象是类的一个实例,对象根据类定义的框架来存储信息和执行代码,所以定义类以后,就可以创建对象,创建对象的过程就是实例化类。   在 C#中,创建对象包括对象的声明和对象分配内存两个步骤。  

1、对象声明

对象声明的格式是: 类名 对象名 如:Customer C;

2、为声明对象分配内存

使用 new 运算符和类的构造方法为声明的类分配内存。其格式为:  
对象名=new 类名([参数列表]) //将声明对象指向实例化的对象。   如:C=new Customer();
  C#也可以在声明对象的同时就为对象分配内存,其格式如下:  
类名 对象名=new 类名([参数列表])   如:Customer C=new Customer();

3、使用对象

对象不仅可以使用对象的成员变量,也可使用对象的方法,对象通过使用运算符”.” 实现对成员变量的访问和成员方法的调用。如:  
C.setName("张山"); C.Display();

三、封装

抽象和封装是面向对象程序设计的相关特性。抽象允许相关信息可视化,封装则使开发者实现所需级别的抽象。   public:所有对象都可以访问;   private:对象本身在对象内部可以访问;   protected:只有该类对象及其子类对象可以访问;   internal:同一个程序集的对象可以访问;   protected internal:访问限于当前程序集或派生自包含类的类型。  

 

标签:Customer,封装,定义,C#,修饰符,对象,声明,类名
From: https://blog.csdn.net/Freesial_/article/details/140292464

相关文章

  • legged gym(包含isaac gym)丝滑安装教程
    LeggedGym(包含IsaacGym)安装教程——Ubuntu22.04安装IsaacGym安装leggedgym2.1.安装pytorch和cuda:2.2.安装rsl_r2.3.安装legged_gym参考了官方包括网上一堆教程,结合自己遇到的坑,整理了一个比较顺畅的流程,基础环境(例如miniconda或者CUDA)配好的情况下按照本教程......
  • 九,MYSQL之存储过程,实际就是用slq写函数,封装方法
    目录一,概念    1,介绍.    2,特性    3,作用二,格式    简单的存储过程案例基本格式:三,变量    1,局部变量        2,变量赋值     3,会话变量 3,系统变量四,参数    1,in参数   ......
  • Android面试题之Activity的启动模式和flag
    本文首发于公众号“AntDream”,欢迎微信搜索“AntDream”或扫描文章底部二维码关注,和我一起每天进步一点点Activity中的几种启动模式activity的几种启动模式是android中常考的知识点,一般会考察有哪几种启动模式,以及每种启动模式在什么场景下使用:standard:这个是android......
  • JavaScript基础笔记
    前言在JavaScript诞生的前几年,有人说:JavaScript是一门四不像的语言;JavaScript是一门没有规范的语言;JavaScript是一门兼容糟糕的语言;JavaScript是一门不精准的语言;JavaScript是一个半成品语言;JavaScript是一门糟糕的语言;JavaScript只是一个玩具胶水语言;这些声音从......
  • 如何从Salesforce技术人员成长为IT领导者?
    从特定技术专家转型为掌控多个业务应用平台的IT领导者并不容易。只了解自己的技术栈,那其他技术是如何工作的?如果不了解它,如何让团队和组织取得成功?虽然看起来很困难,但掌握一种应用平台的技术专家其实已经有了成功的基础。本文主要分享Silvia的成功转型之路。改变固有认知Salesf......
  • 3.1 Ansible Ad-hoc 常用命令集
    1Ad-hoc简介Ad-Hoc(点对点模式)是指ansible下临时执行的一条命令,并且不需要保存的命令,对于复杂的命令会使用playbook。Ad-hoc的执行依赖于模块,ansible官方提供了大量的模块。如:command、raw、shell、file、cron等,具体可以通过ansible-doc-l进行查看。可以使用ansible-doc-sm......
  • AES-CBC模式加解密(Python)
    importbase64try:fromCrypto.CipherimportAESfromCrypto.Util.Paddingimportpad,unpadexceptImportError:print('请安装加解密库pycryptodome')classAesSample(object):def__init__(self):self.key='MbQeThWmZq4t6w9......
  • C#中的并发工具:Task Parallel Library(TPL)深度解析
    ......
  • LeetCode 面试题 17.05. 字母与数字
    面试题17.05.字母与数字给定一个放有字母和数字的数组,找到最长的子数组,且包含的字母和数字的个数相同。返回该子数组,若存在多个最长子数组,返回左端点下标值最小的子数组。若不存在这样的数组,返回一个空数组。示例1:输入:["A","1","B","C","D","2","3","4","E","5&q......
  • LeetCode 1546. 和为目标值且不重叠的非空子数组的最大数目
    1546.和为目标值且不重叠的非空子数组的最大数目给你一个数组 nums 和一个整数 target 。请你返回 非空不重叠 子数组的最大数目,且每个子数组中数字和都为 target 。示例1:输入:nums=[1,1,1,1,1],target=2输出:2解释:总共有2个不重叠子数组(加粗数字表示)[1,......