从特殊到一般-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,一经查实,立即删除!

相关文章

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

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

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

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

MINI类-结构体

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

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

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

SSL双向认证的实现

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

NKU 专题一 题解

A - Flip Game 总的情况数只有2^16次方种&#xff0c;显然直接bfs就可以了 1 #include<iostream>2 #include<queue>3 #include<cstring>4 using namespace std;5 int W,B,start;6 bool have[1000000];7 struct plot{8 int n,step;9 }; 10 void input(int…

子承父业-C#继承

文章目录继承的定义和使用实例继承的特性继承的可传递性继承的单一性继承中的访问修饰符base和this关键字basethis实例博主写作不容易&#xff0c;孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 继承是软件复用的一种形式。使用继承可以复用现在类的数据和行为&#xff…

MAVEN创建并打包web项目

maven项目是由一个maven project和多个maven module组成的&#xff0c;以下简介一下maven webapp的创建和打包&#xff0c;前提是你已经安装配置好maven了。打开eclipse。依照例如以下操作&#xff1a; 我们首先当然要先创建一个project。如上图选择。 如今maven project已经创…

学界 | CVPR 2018颁布五大奖项,何恺明获年轻学者奖

年度计算机视觉和模式识别盛会CVPR&#xff08;Conference on Computer Vision and Pattern Recognition&#xff09;在美国盐湖城开幕啦&#xff01; 据统计&#xff0c;本届大会有超过3309篇大会论文投稿&#xff0c;接收979篇论文。 面对如此多的论文评审任务&#xff0c;CV…

[BZOJ2458][BeiJing2011]最小三角形

题目描述 Description Xaviera现在遇到了一个有趣的问题。平面上有N个点&#xff0c;Xaviera想找出周长最小的三角形。由于点非常多&#xff0c;分布也非常乱&#xff0c;所以Xaviera想请你来解决这个问题。为了减小问题的难度&#xff0c;这里的三角形也包括共线的三点。 输…

小技巧集锦

2019独角兽企业重金招聘Python工程师标准>>> jackson JsonDeserialize 使用方法&#xff1a; 实现方法注解写在set方法上。 public class CustomJsonDateDeserializer extends JsonDeserializer<Date> {private SimpleDateFormat datetimeFormat new SimpleD…

interface-C#接口-统一的标准

文章目录接口的定义接口的实现实例1实例2接口的继承博主写作不容易&#xff0c;孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 接口是面向对象编程的一个重要技术&#xff0c;在C#中负责实现多重继承。一个接口定义一个协定&#xff0c;实现接口类或结构体必须遵守其协定…

JMeter入门(1):JMeter总体介绍及组件介绍

一、JMeter概述 JMeter就是一个测试工具&#xff0c;相比于LoadRunner等测试工具&#xff0c;此工具免费&#xff0c;且比较好用&#xff0c;但是前提当然是安装Java环境&#xff1b;JMeter可以做(1)压力测试及性能测试&#xff1b;(2)数据库测试&#xff1b;(3)Java程序的测试…

根据HTML5 获取当前位置的经纬度【百度地图】【高德地图】

是想让地图的定位用户位置更准确一些。 查看了介绍&#xff1a; http://www.w3school.com.cn/html5/html_5_geolocation.asp 看介绍中拿数据挺简单。 <!DOCTYPE html> <html> <body> <p id"demo">点击这个按钮&#xff0c;获得您的坐标&…

C# delegate与event,委托与事件

文章目录委托示例事件实例博主写作不容易&#xff0c;孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 委托和事件是C#中两个比较复杂的概念&#xff0c;这篇文章介绍两个概念与基本用法&#xff0c;让大家理解C#中的事件处理机制。 委托 委托也叫代理&#xff0c;就是把…

Java的四种引用,强弱软虚,用到的场景(转+补充)

Q1&#xff1a;引用队列是什么&#xff1f;如何使用&#xff1f;使用的场景有哪些&#xff1f; A1:oracle的api文档的描述&#xff1a; https://docs.oracle.com/javase/7/docs/api/java/lang/ref/ReferenceQueue.htmlReference queues, to which registered reference objects…

C# lambda表达式与匿名方法

文章目录匿名方法Lambda表达式实例实例博主写作不容易&#xff0c;孩子需要您鼓励 万水千山总是情 , 先点个赞行不行 C#中的匿名方法是在C#2.0引入的&#xff0c;它终结了声明委托的唯一方法是使用命名方法的时代。在C#更高版本中&#xff0c;Lambda表达式取代了匿名方法&a…

常用的相似度计算

在数据分析和数据挖掘的过程中&#xff0c;我们经常需要知道个体间差异的大小&#xff0c;进而评价个体的相似性和类别。最常见的是数据分析中的相关分析&#xff0c;数据挖掘中的分 类和聚类算法&#xff0c;如K最近邻&#xff08;KNN&#xff09;和K均值&#xff08;K-Means&…

玩转C#窗体-属性、方法和事件详细说明

文章目录简介Windows窗体的基本属性一、布局属性1、StartPosition属性2、Location属性3、尺寸属性4、WindowsState属性5、Autoscroll属性6、AutoSize属性二、样式属性1、ControlBox属性2、MaximizeBox属性3、MinimizeBox属性4、HelpButton属性5、ShowIcon属性6、Icon属性7、Sho…

for循环和数组练习

//公鸡2文&#xff0c;母鸡1文&#xff0c;小鸡半文&#xff0c;每种至少一只&#xff0c;100文买100只鸡有多少种可能var ci 0; for(var g1;g<50;g){for(var m1;m<100;m){for(var x1;x<100;x){if(g*2m*1x*(0.5)100&&gmx100){ci1;console.log("买公鸡&qu…