浅谈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日

相关文章

  • C#实现Socket通信的解决方法

    C#实现Socket通信的解决方法,可以分为以下几个步骤: 步骤一:创建Socket对象 首先,需要使用C#提供的System.Net命名空间下的Socket类创建一个Socket对象,可以使用以下代码: using System.Net; using System.Net.Sockets; Socket socket = new Socket(Addres…

    C# 2023年6月1日
    00
  • .net core中Quartz的使用方法

    Quartz是一个开源的作业调度框架,它可以用于在指定的时间间隔内执行任务。在.NET Core中,我们可以使用Quartz来执行定时任务。本文将详细讲解.NET Core中Quartz的使用方法。 安装Quartz 在.NET Core中,我们可以使用NuGet包管理器来安装Quartz。下面是安装Quartz的步骤: 打开Visual Studio,并创…

    C# 2023年5月16日
    00
  • .Net 对于PDF生成以及各种转换的操作

    以下是关于”.Net 对于PDF生成以及各种转换的操作”的完整攻略。 准备工作 在开始操作之前,需要准备以下工具: Visual Studio,用于编写 .Net 程序。 iTextSharp,用于生成 PDF 文件。 Ghostscript,用于将 PDF 文件转换为图片或其他格式文件。 生成 PDF 文件 1. 安装 iTextSharp 在 Visua…

    C# 2023年6月3日
    00
  • c# SendMail发送邮件实例代码

    下面详细讲解一下“c# SendMail发送邮件实例代码”的完整攻略。 什么是SendMail? SendMail是c#中一个邮件发送类,可以方便地实现发送邮件的功能。它的使用方法较为简单,只需要按照一定格式配置SMTP服务器和发件人信息,即可完成邮件的发送。 SendMail使用教程 配置SMTP服务器 在使用SendMail发送邮件前,需要首先配置SMT…

    C# 2023年6月7日
    00
  • C# Winform选项卡集成窗体详解

    下面是关于“C# Winform选项卡集成窗体详解”的完整攻略: 1. 确定需求 在实现选项卡集成窗口前,我们需要先确定我们的需求。我们需要考虑以下几个问题: 我们想集成哪些选项卡? 每个选项卡内需要添加哪些控件? 如何处理选项卡之间的切换? 2. 创建WinForm应用程序 首先我们需要在Visual Studio中创建一个WinForm应用程序。创建完成…

    C# 2023年6月1日
    00
  • C#通过HttpWebRequest发送带有JSON Body的POST请求实现

    C#通过HttpWebRequest发送带有JSON Body的POST请求实现,一般包括以下几个步骤: 1. 引入命名空间 在 C# 文件中,需要引入 System.Net 命名空间,代码如下: using System.Net; 2. 创建 POST 请求对象 使用 HttpWebRequest 类创建 POST 请求对象,代码如下: HttpWebRe…

    C# 2023年5月31日
    00
  • C#基于DBContext(EF)实现通用增删改查的REST方法实例

    下面我将分享一下C#基于DBContext(EF)实现通用增删改查的REST方法实例的攻略。 步骤一:创建数据库和数据表 首先,我们需要在SQL Server 中创建一个新的数据库和一些数据表。在本例中,我们将创建一个名为”EmployeeDB”的数据库,并在其中创建一个名为”Employee”的表,该表将包含有关员工的详细信息。 步骤二:创建C#项目 在V…

    C# 2023年5月31日
    00
  • .NET使用YARP通过编码方式配置域名转发实现反向代理

    以下是“.NET使用YARP通过编码方式配置域名转发实现反向代理”的完整攻略: 什么是YARP YARP(Yet Another Reverse Proxy)是一个开源的反向代理组件,由微软开发。它是一个轻量级、高性能、可扩展的反向代理组件,可以用于构建高性能的微服务网关、API网关等。 YARP的特性 YARP具有以下特性: 支持HTTP、HTTPS、We…

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