从特殊到一般-C#中的类

文章目录

  • 类的概念
  • 类的定义
    • 实例
    • 例子分析
  • 类的成员
    • 数据成员
    • 属性成员
    • 方法成员
    • 静态成员

  • 博主写作不容易,孩子需要您鼓励
  • 万水千山总是情 , 先点个赞行不行

类的概念

在日常生活中,类是对具有相同特性的一类是物的抽象。比如水果是一个类,它是对苹果、梨所有具有水果特性的食物的抽象,而这个类中所包含的具体的某一个苹果,某一个梨等个体就是对象。
不同的类具有不同的特征。

如何快速理解类与对象呢?一般大家会教你类是什么,然后对象是类的实例。我今天反过来给大家解释一下。

有一天我们想吃水果,来到菜市场,菜市场就是我们的程序包含很多内容;之后我们来到水果摊前,水果摊就相当于水果这个类;告诉老板我要一个石榴,石榴就相当与对象。我们发现这就是我们日常生活中的思维方式。那么将生活运用到工作当中,运用到程序设计当中,就是我们所说的类与对象。

也就是说我们把具有相同属性或者说类似的内容,归为一类。我们对这一类进行一个描述(抽象),之后我们在使用这一类里的东西就有了一个索引(水果)。我们将一个类的实例称为类的对象(水果里边的石榴)。

还不懂私信我,主页有qq

类的定义

类的定义使用 class关键字

  • 语法格式如下:
  • [访问修饰符] class 类名
    {//类的主体
    }
    

    其中,访问修饰符可以是 public、protected、internal、private和protected internal等。class是声明类的关键词,类名是自己定义的类的名称,大括号中声明的是类的成员。其中“访问修饰符”可以省略。

  • 对类的访问控制权限需要用访问修饰符来定义:
  • 运算符说明
    public对类的访问不受限制,就像餐厅,谁都可以进去吃饭
    protected对类的访问仅限于包含类或从包含类派生的类,就像员工餐厅,只有公司员工与子公司员工才能进去吃饭
    private访问仅限于包含类,就像私人会所,不对外开放
    internal访问仅限于当前项目,就像其他公司派到公司工作的也可以去员工餐厅吃饭。
    protected internal同时拥有protected、internal的访问权限。

    类名一般使用帕斯卡命名法,即首字母大写,通常命名类采用完整的英文单词

    实例

    定义电话类,类中定义两个类成员,来表示电话的品牌和机型。
    新建一个控制台程序,主程序修改如下:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;namespace test
    {class PhoneClass{public string brand;public string type;}class Program{static void Main(string[] args){PhoneClass Phone = new PhoneClass();Phone.brand = "huawei";Phone.type = "5G";Console.WriteLine("手机品牌是:" + Phone.brand);Console.WriteLine("手机种类是:" + Phone.type);Console.ReadKey();}}
    }
    

    运行结果:
    在这里插入图片描述

    例子分析

    在这个程序中,代码比较简单。我么选择创建控制台应用项目程序,然后向程序中加入了一个简单的电话类。并生成了一个电话对象,并用控制台输出它。

    类的成员

    组成类的元素称为类的成员,类的成员主要包括描述状态数据成员和描述操作函数成员。函数成员提供了操作类中数据的某些功能,包括属性、方法、索引器、事件、运算符、构造函数和析构函数等。

    数据成员

    类的数据成员包括字段、常量和事件。字段就是在类中定义的变量,用来存储描述类的特征的值。

  • 成员变量的定义语法为:
  • [访问修饰符] 数据类型 成员变量名
    

    其中在声明成员变量时使用不同的访问修饰符来定义他们的访问级别,可以是public、private、protected、internal等,其含义和类的访问修饰符类似。

    属性成员

    属性是字段的一种自然拓展,是一个与类或对象相关联的命名。与字段不同的是,属性不表示储存位置,属性拥有访问器,访问器定义了读取或者写入属性值时必须执行的代码。通过get{}访问器和set{}访问器来实现对类中私有字段的读写操作。为了类的封装性,一般把描述类的特征的字段定义为private,把属性设为public来操作私有字段。

  • 定义属性成员的语法格式如下:
  • [访问修饰符] 数据类型 属性名
    {get{}  //get访问器set{}  //set访问器
    }
    

    其中属性的访问修饰符是用来指定方法的访问级别,主要的访问修饰符和数据成员的访问修饰符一样。属性方法的命名通常使用帕斯卡命名法,即首字母大写。
    这里不做解答,可以看我以前写过的的博文,理解访问器。链接如下:
    set()与get()详细解答(C#)https://blog.csdn.net/cashmood/article/details/100559325

    方法成员

    方法是用来描述对象的行为的,对类的书据成员的操作都封装在类的方法中。方法的主要功能是操作数据,没有方法的程序是没有意义的,就像电话如果不具备打电话功能,那么他就不叫电话了。

  • 方法的声明格式如下:
  • [访问修饰符] 返回值数据类型 方法名(参数列表)
    {//方法主体
    }
    
    1. 方法的访问修饰符是用来指定方法的访问级别的
    2. 方法的返回值类型可以是任意一种C#类型,如果没有返回值则为void
    3. 方法的命名建议采用名词动词结合的组合表示
    4. 方法可以有参数,也可以没有参数
    5. 方法要具有完成一定功能的完整代码

    静态成员

    静态成员和类是相关联的,不依赖于特定的对象,可以作为类中共有的成员。如果类的某个方法成员声明时使用了static关键字,该成员就变成了静态成员。在类中可以定义为静态成员的有字段、方法、属性、运算符、事件和构造函数等,但不能是索引器、析构函数。静态成员可以直接使用,不必创建对象,可通过类名.静态成员方式使用静态成员。静态成员为类的所有对象所共享,非静态成员也叫做实例成员,实例成员属于具体的对象。

    • 博主简介:
    • 工业自动化上位机软件工程师、机器视觉算法工程师、运动控制算法工程师。目前从业于智能制造自动化行业。 博主邮箱:2296776525@qq.com
    • 帮忙点个赞吧。哈哈。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/254312.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Chapter 1 First Sight——30

The girl sitting there giggled. Id noticed that his eyes were black — coal black. 那个坐在那里的女孩笑着。我注意到她的眼睛是很色的--炭黑色的。 Mr. Banner signed my slip and handed me a book with no nonsense about introductions. Banner 先生签了我的名字然后…

GPU 与CPU的作用协调,工作流程、GPU整合到CPU得好处

在不少人的心目中,显卡最大的用途可能就只有两点——玩游戏、看电影,除此之外,GPU并没有其他的作用了。但是随着微软IE9的正式发布,不少人突然发现,微软一直提到一个名词:GPU硬件加速,从而也让不…

[luoguP1029] 最大公约数和最小公倍数问题(数论)

传送门 一.暴力枚举&#xff08;加了点优化&#xff09; #include <cstdio>int x, y, ans;inline int gcd(int x, int y) {return !y ? x : gcd(y, x % y); }inline int lcm(int x, int y) {return x / gcd(x, y) * y; }int main() {int i, j;scanf("%d %d", …

CPU和GPU擅长和不擅长的方面

从它们执行运算的速度与效率的方面来探讨这个论题。CPU和GPU都是具有运算能力的芯片&#xff0c; CPU更像“通才”——指令运算(执行)为重数值运算&#xff0c; GPU更像“专才”——图形类数值计算为核心。在不同类型的运算方面的速度也就决定了它们的能力——“擅长和不擅长”…

一些IO流的知识

IO流&#xff1a; 输入流&#xff1a;输出流&#xff1a; 字节流&#xff1a;字符流&#xff1a;为了处理文字数据方便而出现的对象。 其实这些对象的内部使用的还是字节流(因为文字最终也是字节数据) 只不过&#xff0c;通过字节流读取了相对应的字节数&#xff0c;没有对这些…

为人示弱,做事留余 | 摸鱼系列

我很喜欢结交有很好的自然观察能力的朋友&#xff0c;这是种对周围环境和文化的洞察力。 一方面的原因是优秀的领导者、企业家和投资人能利用这种能力发现新市场&#xff0c;预测新潮流&#xff0c;设计出有效的市场营销活动&#xff0c;并找到需要重点关注的人群。 另一方面&a…

从一般到特殊-C#中的对象

文章目录对象的概念对象的创建和使用匿名类型和初始化器构造函数和析构函数构造函数析构函数范例参数传递博主写作不容易&#xff0c;孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 对象的概念 类是具有相同特征一类事物的抽象&#xff0c;而对象是类的实例。 类和对象…

如何用面对对象来做一个躁动的小球?

今天来看看怎样用面对对象来做一个躁动的小球。 首先我们先创建一个对象&#xff0c;他的属性包含小球的随机水平、纵向坐标&#xff0c;随机宽、高&#xff0c;随机颜色&#xff0c;以及创建小球的方法。 html: <div id"wrap"></div> js:function Boll(…

关于MyEclipse项目的名字的修改对项目导入导出的影响

不要修改项目名字&#xff0c;不管是在MyEclipse中(.project文件里面的额name会变)还是在G:\MyEclipseData目录下(.project文件里面的额name不会变)&#xff0c;否则导入的时候不能访问&#xff0c;会出现400的错误&#xff0c;而访问的网址必须是以前没改名前的那个名字才可以…

Gcc详解以及静态库、动态库生成

[转] Gcc详解以及静态库、动态库生成 http://www.360doc.com/content/10/0619/14/1795182_33985297.shtml 1。gcc包含的c/c编译器 gcc,cc,c,g,gcc和cc是一样的&#xff0c;c和g是一样的&#xff0c;(没有看太明白前面这半句是什 么意思:))一般c程序就用gcc编译&#xff0c;c程序…

改变世界的七大NLP技术,你了解多少?(上)

什么是NLP&#xff1f; 自然语言处理&#xff08;NLP&#xff09; 是计算机科学&#xff0c;人工智能和语言学的交叉领域。目标是让计算机处理或“理解”自然语言&#xff0c;以执行语言翻译和问题回答等任务。 随着语音接口和聊天机器人的兴起&#xff0c;NLP正在成为信息时代…

MINI类-结构体

文章目录结构体的定义和使用实例类和结构体的关系博主写作不容易&#xff0c;孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 结构体与类相似&#xff0c;通常用来封装小型的相关变量组&#xff0c;例如&#xff0c;学生的学号、姓名、性别、年龄等。结构是一种值类型&am…

由.def文件生成lib文件[转]

最近在学习curl库时&#xff0c;碰到一个问题&#xff0c;从官网上下载了一个lib版的&#xff0c;却发现只有.dll&#xff0c;没有lib文件&#xff0c;感觉很奇怪&#xff0c;google了之后才知道&#xff0c;原来库作者的用意是让用户自己生成lib文件&#xff0c;下载到的lib文…

union 和 union all 有什么不同?

假设我们有一个表 Student&#xff0c; 包括以下字段与数据&#xff1a;drop table student;create table student( idint primary key,name nvarchar2(50) not null,score number not null);insert into student values(1,Aaron,78);insert into student values(2,Bill,76);in…

暴风影音硬件加速播放高清影片

近年来&#xff0c;高清视频因为画面清晰、视觉效果好&#xff0c;越来越受到众多电脑用户的厚爱。暴风影音3.6版本在高清的支持上&#xff0c;笔者必须得说&#xff0c;是暴风影音在高清方面的一个大跨越&#xff0c;在这个技术上&#xff0c;暴风把KMP等播放器都远远的抛在后…

SSL双向认证的实现

2019独角兽企业重金招聘Python工程师标准>>> 环境 系统&#xff1a;archlinux/centOS nginx&#xff1a;nginx/1.12.2 浏览器&#xff1a;火狐firefox 前提&#xff1a;1.安装nginx。    2.安装openssl。 生成证书 新建工作目录 首先建立一个工作目录&#x…

partial 分部类-庞大类的瘦身计划

文章目录使用情况语法博主写作不容易&#xff0c;孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 一般来说&#xff0c;一个类、结构或者接口位于一个源文件中&#xff0c;但是某些情况&#xff0c;比如大型项目、特殊部署时&#xff0c;可能需要把一个类、结构或者接口放…

scroll-view——小程序横向滚动

这是官方给的布局代码 <view class"section"><view class"section__title">vertical scroll</view><scroll-view scroll-y style"height: 200px;" bindscrolltoupper"upper" bindscrolltolower"lower"…

二期设计

电子锁管理 设备管理 设备管理 1 信息编辑;回收电子锁发放 电子锁初始化&#xff0c;发放 4 记录车辆在发车时使用的电子锁电子锁开锁联系人管理 电子锁开锁联系人管理 1 根据订单路线中的投点&#xff0c;设置每个投递点的开锁联系人&#xff0c;通过短信的方式下发给你开…

音视频同步系列文章之------时间戳与时间尺度(time scale)

根据一些文章我自己推敲了一下几个概念如下&#xff1a; 采样频率是每秒钟抽取声波幅度样本的次数。8000 帧率是每秒显示帧数。 20 时间戳单位&#xff1a;时间戳计算的单位不为秒之类的单位&#xff0c;而是由采样频率所代替的单位&#xff0c;这…