【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 运行
相关推荐
二十雨辰5 分钟前
[尚庭公寓]07-Knife快速入门
java·开发语言·spring
Python大数据分析@7 分钟前
Origin、MATLAB、Python 用于科研作图,哪个最好?
开发语言·python·matlab
编程零零七35 分钟前
Python巩固训练——第一天练习题
开发语言·python·python基础·python学习·python练习题
我爱Jack1 小时前
时间与空间复杂度详解:算法效率的度量衡
java·开发语言·算法
米饭「」1 小时前
C++AVL树
java·开发语言·c++
心愿许得无限大1 小时前
Qt 常用界面组件
开发语言·c++·qt
2401_858286112 小时前
OS15.【Linux】gdb调试器的简单使用
linux·运维·服务器·开发语言·gdb
牛马baby2 小时前
MATLAB下载安装教程(附安装包)2025最新版(MATLAB R2024b)
开发语言·matlab
shenyan~2 小时前
关于 c、c#、c++ 三者区别
开发语言·c++
Ashlee_code2 小时前
什么是Web3?金融解决方案
开发语言·金融·架构·eclipse·web3·区块链·php