【C#】面向对象:矩形类计算周长和面积

文章目录

  • 一、矩形类的设计与实现
      • [1.1 矩形类的属性](#1.1 矩形类的属性)
      • [1.2 矩形类的构造函数](#1.2 矩形类的构造函数)
      • [1.3 矩形类的方法](#1.3 矩形类的方法)
      • [1.4 代码实现](#1.4 代码实现)
        • [1.4.1 运行](#1.4.1 运行)

一、矩形类的设计与实现

  • 题目:编写一个矩形类,私有数据成员为举行的长(Len)和宽(Wid),无参构造函数将len和wid设置为0,有参构造函数设置len和wid的值,另外,类还包括求矩形的周长、求矩形的面积、取矩形的长度、取矩形的宽度、修改矩形的长度和宽度为对应的形参值等公用方法。

1.1 矩形类的属性

我们的矩形类将有两个私有成员变量:len(长度)和wid(宽度)。这两个变量将存储矩形的基本尺寸。

1.2 矩形类的构造函数

矩形类将有两个构造函数:

  • 无参构造函数:这个构造函数将初始化矩形的长度和宽度为0。这允许我们在不指定具体尺寸的情况下创建一个矩形对象。
  • 有参构造函数 :这个构造函数接受两个参数:lengthwidth,它们分别指定矩形的长度和宽度。通过这个构造函数,我们可以在创建矩形对象时直接设置其尺寸。

1.3 矩形类的方法

矩形类将提供以下公共方法:

  • CalculatePerimeter:这个方法不接受任何参数,它计算并返回矩形的周长。周长的计算公式是 (2 * (长度+宽度))。

  • CalculateArea:这个方法同样不接受任何参数,它计算并返回矩形的面积。面积的计算公式是 (长度 * 宽度)。

  • GetLength:这个方法不接受任何参数,它返回矩形当前的长度。

  • GetWidth:这个方法同样不接受任何参数,它返回矩形当前的宽度。

  • SetLength :这个方法接受一个参数 newLength,它将矩形的长度设置为这个新值。

  • SetWidth :这个方法接受一个参数 newWidth,它将矩形的宽度设置为这个新值。

1.4 代码实现

csharp 复制代码
using System;

namespace Pages_184_编程题3_1_矩形类计算周长面积
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建一个矩形对象,使用有参构造函数初始化
            Rectangle rectangle = new Rectangle(5, 3);

            // 打印矩形的长度
            Console.WriteLine($"矩形的长度为: {rectangle.GetLength()}");

            // 打印矩形的宽度
            Console.WriteLine($"矩形的宽度为: {rectangle.GetWidth()}");

            // 计算并打印矩形的周长
            double perimeter = rectangle.CalculatePerimeter();
            Console.WriteLine($"矩形的周长为: {perimeter}");

            // 计算并打印矩形的面积
            double area = rectangle.CalculateArea();
            Console.WriteLine($"矩形的面积为: {area}");

            // 修改矩形的长度和宽度
            rectangle.SetLength(7);
            rectangle.SetWidth(4);

            // 再次打印修改后的矩形相关信息
            Console.WriteLine("\n修改后:");
            Console.WriteLine($"矩形的长度为: {rectangle.GetLength()}");
            Console.WriteLine($"矩形的宽度为: {rectangle.GetWidth()}");
            perimeter = rectangle.CalculatePerimeter();
            Console.WriteLine($"矩形的周长为: {perimeter}");
            area = rectangle.CalculateArea();
            Console.WriteLine($"矩形的面积为: {area}");
            Console.WriteLine();
            Console.Read();
        }
    }

    // 定义一个名为Rectangle的类,用于表示矩形相关的操作和属性
    class Rectangle
    {
        // 私有成员变量,用于存储矩形的长度
        private double len;
        // 私有成员变量,用于存储矩形的宽度
        private double wid;

        // 无参构造函数,用于创建一个默认的矩形对象
        // 将矩形的长度和宽度都初始化为0
        public Rectangle()
        {
            len = 0;
            wid = 0;
        }

        // 有参构造函数,用于根据传入的参数创建矩形对象
        // 参数length:指定矩形的长度
        // 参数width:指定矩形的宽度
        public Rectangle(double length, double width)
        {
            len = length;
            wid = width;
        }

        // 公共方法,用于计算矩形的周长
        // 返回值为矩形的周长,计算公式为:2 * (长度 + 宽度)
        public double CalculatePerimeter()
        {
            return 2 * (len + wid);
        }

        // 公共方法,用于计算矩形的面积
        // 返回值为矩形的面积,计算公式为:长度 * 宽度
        public double CalculateArea()
        {
            return len * wid;
        }

        // 公共方法,用于获取矩形的长度
        // 返回值为矩形当前的长度值
        public double GetLength()
        {
            return len;
        }

        // 公共方法,用于获取矩形的宽度
        // 返回值为矩形当前的宽度值
        public double GetWidth()
        {
            return wid;
        }

        // 公共方法,用于设置矩形的长度为指定的新长度值
        // 参数newLength:要设置的新长度值
        public void SetLength(double newLength)
        {
            len = newLength;
        }

        // 公共方法,用于设置矩形的宽度为指定的新宽度值
        // 参数newWidth:要设置的新宽度值
        public void SetWidth(double newWidth)
        {
            wid = newWidth;
        }
    }
}
1.4.1 运行
相关推荐
2601_966949657 小时前
为什么量化策略需要大量历史股票数据?从回测可信度理解数据规模
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
niucloud-admin8 小时前
JAVA V6 多商户商城 开发文档——插件目录结构
java·开发语言
滕州市燕猫虎计算机科技工作室个体工商户8 小时前
Java锁
java·开发语言
多加点辣也没关系8 小时前
JavaScript|第31章:表单与控件
开发语言·javascript·ecmascript
菜鸟~noob2338 小时前
【电子战】 第09篇:阵列信号处理——波束形成、MVDR、MUSIC【含matlab代码】
开发语言·matlab·信号处理
ocean21039 小时前
2025-2026年Python面试高频知识点洞察
开发语言·python·面试·python八股文
零依赖极客9 小时前
Day 6·1 ARMv8.2 dotprod——vdotq_s32 一条指令做 4 个点积
c语言·开发语言·人工智能·矩阵·arm·vllm
新时代牛马10 小时前
cyclictest 毛刺从哪来?从ftrace、latencytop、perf到IRQ/调度延迟定位
android·开发语言·python·kotlin
三84411 小时前
Java 模板注入(FreeMarker) · 02 · 模板引擎与 FreeMarker 语法
java·开发语言·web安全·freemarker
IvanCodes11 小时前
Python 基础语法(七):推导式与常见遍历写法
开发语言·python