【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 运行
相关推荐
ZVAyIVqt0UFji几秒前
Reactflow图形库结合Dagre算法实现函数资源关系图
开发语言·前端·javascript·ecmascript
ikkkkkkkl3 分钟前
深述C++模板类
开发语言·c++
网安_秋刀鱼3 分钟前
PHP代码审计 --MVC模型开发框架&rce示例
开发语言·web安全·网络安全·php·mvc·1024程序员节
威威猫的栗子14 分钟前
Python Turtle绘图:重现汤姆劈树的经典瞬间
开发语言·python
沙度灬17 分钟前
python之sklearn--鸢尾花数据集之数据降维(PCA主成分分析)
开发语言·python·sklearn
Theodore_102233 分钟前
7 设计模式原则之合成复用原则
java·开发语言·jvm·设计模式·java-ee·合成复用原则
枫__________34 分钟前
kotlin 协程 job的cancel与cancelAndJoin区别
android·开发语言·kotlin
Peter_chq35 分钟前
【计算机网络】HTTP协议
linux·c语言·开发语言·网络·c++·后端·网络协议
祁许1 小时前
【Golang】手搓DES加密
开发语言·golang·密码学
凡人的AI工具箱1 小时前
15分钟学 Go 实战项目六 :统计分析工具项目(30000字完整例子)
开发语言·数据库·人工智能·后端·golang