人生低谷来撸C#--009 继承,多态,运算符重载

1、只求明白

感觉到慢慢就开始稍微复杂一些, 没有关系,现在不去想怎么写,只求能看明白,就好,如果不明白怎么办,现在都有AI。

你都是未来的一个码农牛马,居然不会用AI来帮助你学习,那是也说不过去。

2、AI帮你解释学习代码

先看一段例子,说的是运算符重载,

using System;

namespace OperatorOvlApplication
{
   class Box
   {
      private double length;      // 长度
      private double breadth;     // 宽度
      private double height;      // 高度

      public double getVolume()
      {
         return length * breadth * height;
      }
      public void setLength( double len )
      {
         length = len;
      }

      public void setBreadth( double bre )
      {
         breadth = bre;
      }

      public void setHeight( double hei )
      {
         height = hei;
      }
      // 重载 + 运算符来把两个 Box 对象相加
      public static Box operator+ (Box b, Box c)
      {
         Box box = new Box();
         box.length = b.length + c.length;
         box.breadth = b.breadth + c.breadth;
         box.height = b.height + c.height;
         return box;
      }

   }

   class Tester
   {
      static void Main(string[] args)
      {
         Box Box1 = new Box();         // 声明 Box1,类型为 Box
         Box Box2 = new Box();         // 声明 Box2,类型为 Box
         Box Box3 = new Box();         // 声明 Box3,类型为 Box
         double volume = 0.0;          // 体积

         // Box1 详述
         Box1.setLength(6.0);
         Box1.setBreadth(7.0);
         Box1.setHeight(5.0);

         // Box2 详述
         Box2.setLength(12.0);
         Box2.setBreadth(13.0);
         Box2.setHeight(10.0);

         // Box1 的体积
         volume = Box1.getVolume();
         Console.WriteLine("Box1 的体积: {0}", volume);

         // Box2 的体积
         volume = Box2.getVolume();
         Console.WriteLine("Box2 的体积: {0}", volume);

         // 把两个对象相加
         Box3 = Box1 + Box2;

         // Box3 的体积
         volume = Box3.getVolume();
         Console.WriteLine("Box3 的体积: {0}", volume);
         Console.ReadKey();
      }
   }
}

AI是这么说的,

  • 这段代码是一个完整的C#程序,它定义了一个Box类,并且包含了一个加法运算符重载方法。这个程序的主要目的是演示如何重载运算符,并且展示如何使用这些重载的运算符来操作自定义类型的对象。

    让我们逐行解释这段代码:

     

    using System; namespace OperatorOvlApplication { class Box {

    这行代码定义了一个名为Box的类。

     

    private double length; // 长度 private double breadth; // 宽度 private double height; // 高度

    这三行代码定义了Box类的三个私有成员变量:lengthbreadthheight,它们分别代表盒子的长度、宽度和高度。

     

    public double getVolume() { return length * breadth * height; }

    这行代码定义了一个公共方法getVolume,它计算并返回盒子的体积。

     

    public void setLength( double len ) { length = len; } public void setBreadth( double bre ) { breadth = bre; } public void setHeight( double hei ) { height = hei; }

    这三行代码定义了三个公共方法setLengthsetBreadthsetHeight,它们分别设置盒子的长度、宽度和高度。

     

    // 重载 + 运算符来把两个 Box 对象相加 public static Box operator+ (Box b, Box c) { Box box = new Box(); box.length = b.length + c.length; box.breadth = b.breadth + c.breadth; box.height = b.height + c.height; return box; }

    这行代码定义了一个公共静态方法operator+,它重载了加法运算符(+),接受两个Box类型的参数bc,并将它们的尺寸相加,返回一个新的Box对象。

     

    } class Tester { static void Main(string[] args) {

    这行代码定义了一个名为Tester的类,并且包含了一个主方法Main,这是程序的入口点。

     

    Box Box1 = new Box(); // 声明 Box1,类型为 Box Box Box2 = new Box(); // 声明 Box2,类型为 Box Box Box3 = new Box(); // 声明 Box3,类型为 Box double volume = 0.0; // 体积

    这四行代码声明并初始化了三个Box对象Box1Box2Box3,以及一个用于存储体积的双精度变量volume

     

    // Box1 详述 Box1.setLength(6.0); Box1.setBreadth(7.0); Box1.setHeight(5.0);

    这三行代码设置了Box1的尺寸。

     

    // Box2 详述 Box2.setLength(12.0); Box2.setBreadth(13.0); Box2.setHeight(10.0);

    这三行代码设置了Box2的尺寸。

     

    // Box1 的体积 volume = Box1.getVolume(); Console.WriteLine("Box1 的体积: {0}", volume);

    这两行代码计算并打印了Box1的体积。

     

    // Box2 的体积 volume = Box2.getVolume(); Console.WriteLine("Box2 的体积: {0}", volume);

    这两行代码计算并打印了Box2的体积。

     

    // 把两个对象相加 Box3 = Box1 + Box2;

    这行代码使用重载的加法运算符将Box1Box2相加,并将结果赋值给Box3

     

    // Box3 的体积 volume = Box3.getVolume(); Console.WriteLine("Box3 的体积: {0}", volume);

    这两行代码计算并打印了Box3的体积。

     

    Console.ReadKey(); } } }

    这行代码等待用户按下任意键,以便在控制台应用程序中查看输出结果

这是我让他给逐行解释的,如果哪里还有不明白的,你就问他,任何一个字符都给你解释的清清楚楚明明白白。

3、接下来

计划着快速看完,不明白就行,每个代码去VS里测试下,先过第一遍。

不知道这样学对不对,先试着来,按以往经验我都是这么来。

  • 18
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值