浅谈c# 面向对象之类与对象

浅谈C#面向对象之类与对象

在 C# 中,类与对象是面向对象程序设计 (OOP) 的核心概念。类是一个模板或者蓝图,用来描述某个对象的属性和方法。对象是类的一个实例,是具有一组属性和方法的实体。

定义类

C# 中定义类使用 class 关键字。类由类名、数据成员和成员函数组成。

例如:

public class Person
{
    // 数据成员
    private string name;
    private int age;

    // 成员函数
    public void SetName(string name)
    {
        this.name = name;
    }

    public void SetAge(int age)
    {
        this.age = age;
    }

    public void Print()
    {
        Console.WriteLine($"Name: {name}   Age: {age}");
    }
}

以上代码定义了一个名为 Person 的类,该类有两个数据成员 nameage,以及三个成员函数 SetNameSetAgePrint。其中 SetName 用于设置人名,SetAge 用于设置年龄,Print 用于将人名和年龄打印出来。

创建对象

C# 中创建对象需要使用 new 关键字。例如,我们依据上面的 Person 类创建一个名为 jackPerson 对象,可以使用以下代码:

Person jack = new Person();

调用成员函数

对象通过访问成员函数来与外部进行交互。在上述 Person 类中,我们通过调用成员函数 SetNameSetAge 来设置 jack 对象的名字和年龄,通过调用成员函数 Print 来将 jack 对象的名字和年龄打印出来。示例如下:

Person jack = new Person();
jack.SetName("Jack");
jack.SetAge(20);
jack.Print();

运行上述代码会输出 "Name: Jack Age: 20"

示例1

假设我们要实现一个图形库,其中包含一个名为 Rectangle 的类,用来描述一个矩形。该类有数据成员 widthheight,以及成员函数 GetArea,它用来返回矩形的面积。

我们可以这样定义 Rectangle 类:

public class Rectangle
{
    private double width;
    private double height;

    public void SetWidth(double width)
    {
        this.width = width;
    }

    public void SetHeight(double height)
    {
        this.height = height;
    }

    public double GetArea()
    {
        return width * height;
    }
}

然后通过以下代码创建一个名为 recRectangle 对象,并将其宽度设置为 3.0,高度设置为 4.0,最后调用 GetArea 函数,可以计算出该矩形的面积:

Rectangle rec = new Rectangle();
rec.SetWidth(3.0);
rec.SetHeight(4.0);
double area = rec.GetArea();
Console.WriteLine(area);

输出结果为 12,即 3*4

示例2

在这个示例中,我们将实现一个名为 Dog 的类,用于描述一只狗。这个类有数据成员 nameage,以及两个成员函数 BarkFetch,分别代表狗的吠叫和拿东西。

代码如下:

public class Dog
{
    private string name;
    private int age;

    public Dog(string name, int age)
    {
        this.name = name;
        this.age = age;
    }

    public void Bark()
    {
        Console.WriteLine($"{name} is barking!");
    }

    public void Fetch(string thing)
    {
        Console.WriteLine($"{name} is fetching {thing}!");
    }
}

上面的代码中,我们通过提供一个带参构造函数,来创建 Dog 类的对象,第一个参数为狗的名字,第二个参数为狗的年龄。我们也可以添加一个无参构造函数,用来创建一个默认的狗对象。成员函数 Bark 用来输出狗的吠叫,成员函数 Fetch 用来输出狗的拿东西行为。

下面我们可以创建一个默认的狗对象 dog1,并调用它的成员函数 BarkFetch

Dog dog1 = new Dog("旺财", 3);
dog1.Bark();
dog1.Fetch("球");

运行上述代码后,输出:

旺财 is barking!
旺财 is fetching 球!

我们也可以创建一个带参数的狗对象 dog2,并调用它的成员函数 Fetch

Dog dog2 = new Dog("小黑", 2);
dog2.Fetch("骨头");

运行上述代码后,输出:

小黑 is fetching 骨头!

至此,我们详细讲解了C#中的类与对象的定义和使用,以及提供了两个示例说明,希望能对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:浅谈c# 面向对象之类与对象 - Python技术站

(0)
上一篇 2023年6月1日
下一篇 2023年6月1日

相关文章

  • 在.NET Core控制台程序中如何使用依赖注入详解

    在.NET Core控制台程序中如何使用依赖注入详解 在.NET Core控制台程序中,您可以使用内置的依赖注入(DI)容器来管理对象和依赖关系。以下是使用.NET Core控制台程序中依赖注入(DI)的步骤: 在Program.cs文件中,创建一个HostBuilder对象,并使用ConfigureServices方法将服务添加到DI容器中。例如,使用Ad…

    C# 2023年5月17日
    00
  • 详解ASP.NET Core 2.0 路由引擎之网址生成(译)

    详解ASP.NET Core 2.0 路由引擎之网址生成攻略 在本攻略中,我们将详细讲解ASP.NET Core 2.0路由引擎之网址生成,并提供两个示例说明。 步骤一:创建路由 在ASP.NET Core 2.0应用程序中,您需要创建一个路由。以下是一个示例: app.UseMvc(routes => { routes.MapRoute( name:…

    C# 2023年5月17日
    00
  • C# 使用modbus 读取PLC 寄存器地址的方法

    C#是一种强类型编程语言,用于开发.NET框架下的应用程序。 Modbus是一种在工业自动化领域广泛使用的通讯协议,用于在PLC和其他设备之间进行通信。在本篇文章中,我们将详细讲解C#使用Modbus读取PLC寄存器地址的方法。 准备工作 在开始之前,必须做以下准备工作: 安装.Net框架; 准备好一个Modbus通讯的PLC设备; 下载和安装一个支持Mod…

    C# 2023年5月15日
    00
  • ASP.NET Mvc开发之EF延迟加载

    ASP.NET Mvc是一个广泛应用于Web应用程序开发的框架,其通过使用模型-视图-控制器(MVC)设计模式来促进代码的组织、维护和测试。而在ASP.NET Mvc应用程序的开发中,数据库访问和数据操作是非常重要的一部分,其中基于Entity Framework(EF)的数据操作是最常用的方式之一。 本攻略将详细讲解在ASP.NET Mvc开发中使用EF延…

    C# 2023年5月31日
    00
  • 在VB.NET应用中使用MySQL的方法

    讲解“在VB.NET应用中使用MySQL的方法”的完整攻略如下: 环境准备 MySQL Connector/NET 在VB.NET应用中使用MySQL,需要先下载与安装MySQL Connector/NET。MySQL Connector/NET是MySQL数据库的官方ADO.NET驱动程序,它提供了对MySQL服务器的访问和代码缩短的高效方法。 连接下载地…

    C# 2023年5月31日
    00
  • C#DirectoryInfo类用法详解

    C#DirectoryInfo类用法详解 什么是DirectoryInfo? DirectoryInfo是C#中用于操作文件夹的类,可以用来获取、创建、移动、重命名和删除文件夹等操作。 DirectoryInfo的基本使用方法 获取文件夹信息 要获取一个文件夹的信息,需要先实例化一个DirectoryInfo对象,并将要操作的文件夹的路径作为参数传入。 Di…

    C# 2023年5月15日
    00
  • .NET 2.0 的压缩功能代码

    .NET 2.0 提供了压缩和解压缩文件的功能,主要是通过System.IO.Compression和System.IO.Compression.FileSystem命名空间下的类型来实现。 以下是压缩文件的示例代码: using System.IO.Compression; public static void CompressFile(string so…

    C# 2023年5月31日
    00
  • C#串口通信模块使用方法示例

    下面就详细讲解一下“C#串口通信模块使用方法示例”的完整攻略。 1. 简介 C#串口通信模块是一个用于实现PC机与设备之间高效通信的模块。它的主要作用是简化串口通信过程,使得我们可以更加方便、稳定地与硬件设备进行通信,并且可进行快读写、繁忙等控制。接下来,我将教大家如何使用C#串口通信模块。 2. 示例说明 2.1. 实例1:C#串口通信模块的基本用法 下面…

    C# 2023年6月7日
    00
合作推广
合作推广
分享本页
返回顶部