C# 结构和类

news2024/10/12 8:21:41

要点:
1、结构概述
2、结构的使用

一 为什么需要结构

问题:
System.Drawing.Color有很多颜色值,它是一个枚举吗?
在这里插入图片描述
正常人眼可分辨的颜色种类可达几十万种以上
Color提供使用RGB值返回颜色的方法
FromArgb()

System.Drawing.Color是一个结构 

1 结构定义

结构中有属性,也可以有方法。
结构是一种值的类型,通常用来封装一组相关的变量,结构中可以包括构造函数、常量、字段、方法、属性、运算符、事件和嵌套类型等,结构修饰符使用 struct。

public struct Rect			 //定义一个矩形结构		
{
    public double width;		//矩形的宽
    public double height;		//矩形的高
    public double Area()		//矩形面积
    { return width * height;}
}
访问修饰符 struct 结构名
{ 
       定义结构成员
}

public struct StructStudent
{
       public string Name;
       public int Age;
       public string Hobby;
       public int Popularity;
       public void SayHi()
       {
          // ….
       }
}

在这里插入图片描述

2 结构的使用1

结构实际是将多个相关的变量包装成为一个整体使用。在结构体中的变量,可以是相同、部分相同,或完全不同的数据类型,结构通常用于较小的数据类型,对于较大和复杂的数据类型建议使用类定义。

示例:

 //…
 StructStudent myStu;
 myStu.Age = 20;
 myStu.Gender = Genders.Female;
 myStu.Hobby = "唱歌歌";
 myStu.Name = "张靓靓";
 myStu.Popularity = 100;
 myStu.SayHi();
 //…

在这里插入图片描述

3 结构使用2-2

示例:

struct StructStudent
{
       //…
        public StructStudent(string name, Genders gender, int age,
                                             string hobby, int popularity)
        {
            this.Name = name;
            this.Gender = gender;
            //…
        }
}

// …
 StructStudent myStu = 
        new StructStudent("张靓靓", Genders.Female, 20, "唱歌歌", 100);
 myStu.SayHi();
//…

4 类图

类图描述类的结构
在这里插入图片描述

5 通用的类图

在这里插入图片描述

6 理解结构与类的区别

在这里插入图片描述

7 值类型和引用类型

示例

static void Main(string[] args)
{
    //使用值类型
    StructStudent student1 = new StructStudent();
    StructStudent student2 = new StructStudent();
    student1.Age = 18;
    student2 = student1;
    student2.Age = 20;

    Console.WriteLine("student1 = {0},student2 = {1}", student1.Age,
             student2.Age);
}


static void Main(string[] args)
{
    //使用引用类型
    Student student1 = new Student();
    Student student2 = new Student();
    student1.Age = 18;
    student2 = student1;
    student2.Age = 20;
    Console.WriteLine("student1 = {0},student2 = {1}", student1.Age,
             student2.Age);
}

在这里插入图片描述

二 类和对象

问题:
举例说明什么是类,什么是对象?
在这里插入图片描述
类可以生成对象,类是对象的抽象。

![在这里插入代码片](https://i-blog.csdnimg.cn/direct/9dedf98ce7604e5eab908ae159f05aca.png)

在这里插入图片描述
操作Student类的字段和方法

在这里插入图片描述

三 对象

对象是人们要进行研究的任何事物
在这里插入图片描述

1 类和对象

类描述一组相似对象的共性。
在这里插入图片描述

2 类和对象的应用

类和对象的简单应用
示例:
在这里插入图片描述

3 类和类的成员

在这里插入图片描述

4 自定义一个类

回顾:使用过的自定义类DBHelper。
在这里插入图片描述

5 公有成员和私有成员

在这里插入图片描述

6 一种特别的方法

在这里插入图片描述

四 构造函数

是类中的一种特殊的方法
构造函数名与类名相同,不返回任何值
可初始化成员变量

在这里插入图片描述

1 使用构造函数

每次创建类的实例都会调用此方法
在这里插入图片描述

2 构造函数的重载

在这里插入图片描述

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

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

相关文章

LabVIEW开关磁阻电机特性测量系统

基于LabVIEW软件和特定硬件组件的开关磁阻电机(SRM)特性测量系统,结合多功能数据采集卡,统能够准确地测量并分析SRM的电磁特性,从而支持电机模型的精确建立和性能优化。 项目背景 在工业生产和家用电器领域&#xff0…

电子取证新视角:USB键盘流量提取密码方法研究与实现

0x01 引言 在当今数字化时代,USB设备的广泛使用使得信息安全和电子取证领域面临着新的挑战与机遇。特别是USB键盘,作为一种常见的输入设备,其流量中可能包含用户输入的敏感信息,如密码和其他私人数据。因此,研究USB键…

数据治理:制造企业转型的关键要素与战略需求

制造业,作为国民经济的主体,是立国之本、兴国之器、强国之基。从工业文明的曙光初现,到今日全球化的激烈竞争,始终昭示着一个真理:没有强大的制造业,就没有国家和民族的强盛。 为全面推进制造强国建设&…

Qt初识_项目文件解析

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 Qt初识_项目文件解析 收录于专栏【Qt开发】 本专栏旨在分享学习Qt的一点学习笔记,欢迎大家在评论区交流讨论💌 目录 1. pro文件解析 2.…

跟着深度学习好书实践tensorflow神经网络

前言 2024 年诺贝尔物理学奖授予了约翰霍普菲尔德 (John Hopfield)和图灵奖得主、AI教父杰弗里辛顿(Geoffrey Hinton),"以表彰他们利用人工神经网络进行机器学习的奠基性发现和发明"。 辛顿在接受电话采访…

基于Handsontable.js + Excel.js实现表格预览和导出功能(公式渲染)

本文记录在html中基于Handsontable.js Excel.js实现表格预览功能。 Handsontable官方文档 一、开发前的准备引入相关依赖库 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" co…

openpdf

1、简介 2、示例 2.1 引入依赖 <dependency><groupId>com.github.librepdf</groupId><artifactId>openpdf</artifactId><version>1.3.34</version></dependency><dependency><groupId>com.github.librepdf</…

正点原子STM32F407ZG 开发板简介

1. STM32F407ZG 学习资料 1&#xff09;ST 官方的学习资料 ST 官方资料有两个网址&#xff1a; www.stmcu.org.cn 和 www.st.com 。 www.stmcu.org.cn 是 ST 中文社区&#xff0c;里面的资料全部由 ST 中国区的人负责更新和整理&#xff0c;包含了所有 ST 公司的 …

计算机的错误计算(一百二十)

摘要 探讨在许多应用中出现的函数 的计算精度问题。 例1. 考虑在许多应用中出现的函数 计算 不妨在Python下计算&#xff1a; 若用下列Rust代码在线计算&#xff1a; fn f(x: f64) -> f64 {(x.exp() - 1.0) / x }fn main() {let result f(0.9e-13);println!("…

微知-Bluefield DPU命名规则各字段作用?BF2 BF3全系列命名大全

文章目录 背景字段命名C是bmc的意思NOT的N是是否加密S表示不加密但是secureboot enable倒数第四个都是E倒数第五个是速率 V和H是200GM表示E serials&#xff0c;H表示P serials&#xff08;区别参考兄弟篇&#xff1a;[more](https://blog.csdn.net/essencelite/article/detail…

【通信协议讲解】单片机基础重点通信协议解析与总结(IIC,CAN,MODBUS...)

目录 一.IIC总线 基础特性&#xff1a; 配置特性&#xff1a; 时序特性&#xff1a; 二.SPI总线 基础特性&#xff1a; 配置特性&#xff1a; 时序特性&#xff1a; 三.串口通信 基础特性&#xff1a; 配置特性&#xff1a; 时序特性&#xff1a; 四.CAN总线 基础特性…

vue后台管理系统从0到1(5)

文章目录 vue后台管理系统从0到1&#xff08;5&#xff09;完善侧边栏修改bug渲染header导航栏 vue后台管理系统从0到1&#xff08;5&#xff09; 接上一期&#xff0c;我们需要完善我们的侧边狼 完善侧边栏 我们在 element 组件中可以看见&#xff0c;这一个侧边栏是符合我们…

I/O进程(Day26)

一、学习内容 I/O进程 标准IO 概念 针对文件的读写操作 文件IO最终达成的目的&#xff1a;将一个临时存在于内存中的数据&#xff0c;永久性的存放于磁盘当中 操作 文件IO的操作&#xff0c;需要这样的2个指针 一个指针&#xff1a;指向源数据&#xff0c;提供读取操作的指针 …

复杂系统学习

一、复杂网络分析在复杂性研究中的地位 1.复杂系统 系统中存在的复杂度从两个维度来看 ①系统自由度&#xff08;系统组成成分的数目&#xff09; ②相互作用&#xff08;线性到非线性的转换&#xff09; 复杂网络是复杂系统的骨架 复杂系统可以抽象成一个网络&#xff0…

大数据新视界 --大数据大厂之 Dremio:改变大数据查询方式的创新引擎

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

【JVM】如何判断对象是否可以被回收

引用计数法&#xff1a; 在对象中添加一个引用计数器&#xff0c;每当有一个地方引用它时&#xff0c;计数器值就加一&#xff1b;当引用失效时&#xff0c;计数器值就减一&#xff1b;任何时刻计数器为零的对象就是不可能再被使用的。 优点&#xff1a;实现简单&#xff0c;判…

Visual Studio--VS安装配置使用教程

Visual Studio Visual Studio 是一款功能强大的开发人员工具&#xff0c;可用于在一个位置完成整个开发周期。 它是一种全面的集成开发环境 (IDE)。对新手特别友好&#xff0c;使用方便&#xff0c;不需要复杂的去配置环境。用它学习很方便。 Studio安装教程 Visual Studio官…

从这里看BD仓储如何改变物流效率?

BD仓储物流建设成为当代物流领域的核心要素&#xff0c;推动着整个行业朝向高效性与智能化水平不断提升。在BD仓储物流的创新浪潮中&#xff0c;RFID技术犹如一颗耀眼的明珠&#xff0c;凭借其无可比拟的特性获得了业界的广泛推崇与广泛应用。该技术通过无线信号与电子标签的互…

Python剪辑视频

import os from moviepy.editor import VideoFileClipvideo_dir r"E:\学习\视频剪辑" s_video_file "1.mp4" d_video_file "剪辑片段1.mp4" s_video_path os.path.join(video_dir, s_video_file) # 原视频文件路径 d_video_path os.path…

FDTD Solutions(时域有限差分)仿真技术与应用

FDTD Solutions是一款非常好用的微纳光学设计工具。该软件提供了丰富的设计功能&#xff0c;支持CMOS图像传感器&#xff0c;OLED和液晶&#xff0c;表面计量&#xff0c;表面等离子体&#xff0c;石墨烯&#xff0c;太阳能电池&#xff0c;集成光子组件&#xff0c;超材料&…