C#面向对象核心(类 / 封装 / 继承 / 多态)之工业场景类设计(设备类 / 通信类)

本文结合工控场景讲解 C# 面向对象的核心概念(类 / 封装 / 继承 / 多态),并重点演示工业场景下的类设计(设备类、通信类),我会从工控实际应用出发,把抽象的面向对象概念落地到具体的工业编程场景中。

一、面向对象核心概念(工控视角解读)

先把四大核心概念翻译成工控工程师能理解的语言,再结合代码实现:

核心概念

工控视角解读

类比(工控场景)

类(Class)

设备 / 功能的 “模板”,定义设备有哪些属性(参数)和行为(方法)

PLC 的功能块(FB)、设备的技术手册(规定了参数和操作)

封装(Encapsulation)

隐藏设备内部细节,只暴露必要的操作接口,防止误操作

设备的操作面板(只给按钮 / 显示屏,内部电路不可见)

继承(Inheritance)

复用同类设备的通用属性 / 方法,只扩展特有功能

所有电机都有转速 / 启停(通用),伺服电机多了定位功能(特有)

多态(Polymorphism)

同一操作对不同设备有不同实现,适配多样化设备

同样是 “启动” 操作,电机启动是转起来,阀门启动是打开


二、核心概念实战(工控场景代码实现)

1. 类(Class)—— 定义工业设备模板

核心逻辑:把工业设备的属性(参数)和行为(操作)封装成类,比如 “工业设备基类” 包含所有设备通用的属性(编号、状态)和方法(启停)。

using System;

// 工业设备基类(所有工业设备的通用模板)
public class IndustrialDevice
{
    // 通用属性(设备编号、运行状态、累计运行时长)
    public string DeviceId { get; set; } // 设备编号
    public byte Status { get; set; }    // 状态:0=停止,1=运行,2=故障
    public int RunHours { get; set; }   // 累计运行时长(小时)

    // 通用方法(启动、停止)
    public virtual void Start() // virtual标记为可被重写(为多态做准备)
    {
        if (Status == 2)
        {
            Console.WriteLine($"【{DeviceId}】设备故障,无法启动!");
            return;
        }
        Status = 1;
        Console.WriteLine($"【{DeviceId}】设备启动成功!");
    }

    public virtual void Stop()
    {
        Status = 0;
        Console.WriteLine($"【{DeviceId}】设备停止成功!");
    }

    // 显示设备状态(通用方法)
    public void ShowStatus()
    {
        string statusDesc = Status switch
        {
            0 => "停止",
            1 => "运行",
            2 => "故障",
            _ => "未知"
        };
        Console.WriteLine($"=== 设备【{DeviceId}】状态 ===");
        Console.WriteLine($"运行状态:{statusDesc}");
        Console.WriteLine($"累计运行时长:{RunHours} 小时");
    }
}
2. 封装(Encapsulation)—— 保护设备核心参数

核心逻辑:对关键参数(如电机额定转速)做私有封装,只通过方法 / 属性控制读写,防止非法赋值(比如转速超过额定值)。

// 电机类(继承自工业设备基类,增加
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

工业程序猿老赵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值