C#类和对象用法详细指南

2021年3月11日17:13:46 发表评论 762 次浏览

类和对象是面向对象编程的基本概念, 围绕着现实生活中的实体。类是用户定义的蓝图或原型, 从中可以创建对象。基本上, 一个类将字段和方法(定义动作的成员函数)组合到一个单元中。在C#中, 类支持多态, 继承, 并且还提供派生类和基类的概念。

类声明

通常, 类声明仅包含关键字类, 然后是标识符(名称)班上的但是根据应用程序的要求, 有些可选属性可以与类声明一起使用。通常, 类声明可以按顺序包括以下组件:

  • 修饰符:一个类可以是公共类, 也可以是内部类。默认情况下, 类的修饰符是内部.
  • 关键字类别:一种类关键字用于声明类型类。
  • 类标识符:提供了类型为class的变量。标识符(或类的名称)应以首字母开头, 该首字母应按惯例大写。
  • 基类或超类:班级的父级(超类)的名称(如果有), 后跟:(冒号)。这是可选的。
  • 接口:由类实现的接口的逗号分隔列表, 如果有的话, 其后是:(冒号)。一个类可以实现多个接口。这是可选的。
  • 身体:类主体被{}(大括号)包围。

类中的构造方法用于初始化新对象。字段是提供类及其对象状态的变量, 而方法则用于实现类及其对象的行为。

例子:

// declaring public class
public class Geeks
{

    // field variable
    public int a, b;

      // member function or method
      public void display()
      {
          Console.WriteLine("Class & Objects in C#");
      }
}

对象

它是面向对象编程的基本单元, 代表现实生活中的实体。一个典型的C#程序会创建许多对象, 你知道这些对象通过调用方法进行交互。一个对象包括:

  • 州:它由对象的属性表示。它还反映了对象的属性。
  • 行为:它由对象的方法表示。它还反映了一个对象对其他对象的响应。
  • 身份:它为一个对象赋予唯一的名称, 并使一个对象能够与其他对象进行交互。

将Dog视为对象, 请参见下图以了解其身份, 状态和行为。

C#|类和对象1

对象对应于现实世界中发现的事物。例如, 图形程序可以具有诸如"圆形", "正方形", "菜单"之类的对象。在线购物系统可能具有"购物车", "客户"和"产品"之类的对象。

声明对象(也称为实例化类)

当创建一个类的对象时, 该类被称为实例化。所有实例都共享类的属性和行为。但是这些属性的值, 即状态对于每个对象都是唯一的。单个类可以具有任意数量的实例。

例子:

C#|类和对象2

当我们声明类似(type name;)的变量时。这通知编译器我们将使用该名称来引用类型为type的数据。对于原始变量, 此声明还为变量保留了适当的内存量。因此, 对于引用变量, 类型必须严格是具体的类名称。

Dog tuffy;

如果我们这样声明一个引用变量(tuffy), 则在实际创建并分配一个对象之前, 其值将一直不确定(null)。仅声明引用变量不会创建对象。

初始化对象

new运算符通过为新对象分配内存并返回对该内存的引用来实例化一个类。 new运算符还调用类构造函数。

例子:

// C# program to illustrate the
// Initialization of an object
using System;
  
// Class Declaration
public class Dog {
  
     // Instance Variables
     String name;
     String breed;
     int age;
     String color;
  
     // Constructor Declaration of Class
     public Dog(String name, String breed, int age, String color)
     {
         this .name = name;
         this .breed = breed;
         this .age = age;
         this .color = color;
     }
  
     // Property 1
     public String getName()
     {
         return name;
     }
  
     // Property 2
     public String getBreed()
     {
         return breed;
     }
  
     // Property 3
     public int getAge()
     {
         return age;
     }
  
     // Property 4
     public String getColor()
     {
         return color;
     }
  
     // Method 1
     public String toString()
     {
         return ( "Hi my name is " + this .getName()
                 + ".\nMy breed, age and color are " + this .getBreed() 
                 + ", " + this .getAge() + ", " + this .getColor());
     }
  
// Main Method
public static void Main(String[] args)
     {
          
         // Creating object
         Dog tuffy = new Dog( "tuffy" , "papillon" , 5, "white" );
         Console.WriteLine(tuffy.toString());
     }
}

输出如下:

Hi my name is tuffy.
My breed, age and color are papillon, 5, white

说明:此类包含一个构造函数。我们可以识别出构造函数, 因为其声明使用与类相同的名称, 并且没有返回类型。 C#编译器根据参数的数量和类型来区分构造函数。 Dog类中的构造函数采用四个参数。以下语句提供" tuffy", " papillon", 5, " white"作为这些参数的值:

Dog tuffy = new Dog("tuffy", "papillon", 5, "white");

执行此语句的结果可以说明为:

C#|类和对象3

木子山

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: