C#核心(2)类和对象

前言

在上一节中,我们已经了解了面向对象开发的概念和原则,那今天,我们就来讲讲c#中的类。

c#中的类是我们面向对象开发使用最频繁的东西。

在未来我们要学习的unity开发中也是必不可少的。

所以希望屏幕前的你务必把这一块的知识学得扎实一些,好为未来的工作做好打算。

类的概念

万物皆对象,用程序抽象出来的对象的概况就是类。

在C#中,类是一种数据结构,用于封装数据和行为。它是面向对象编程的核心概念之一。一个类可以定义对象的属性(数据)和方法(行为),并且可以根据该类创建多个对象。

我们概括一下注意事项(要点):

  1. 类一般具有相同的特征或者行为:比如不管是苹果树(对象)或者葡萄树(对象)都是树(一个类),他们都有根(特征)
  2. 是一类事物程序的抽象语言(用程序描述一个人的特征,描述后形成的数据结构就是类)
  3. 类是对象的模板,比如人(类)有说话的能力,小明说了你好(照着人提供的说话能力实现的)
  4. 可以通过类创建对象,比如有了人(类),就可以创建出一个叫小刚的人(对象)。
  5. 类的关键词:class

声明的语法

访问修饰符 class 类名
{
    特征——成员变量//构造函数和析构函数
    行为——成员方法//索引器
    保护特征——成员属性//运算符重载或者静态成员    
}

有些概念你看不懂也没关系,这些我们在后面都会一一讲解,你现在需要知道的就是,类里面会有特征和行为就OK了。 

申明的实例

以下是博主对一个类的声明,接下来我们围绕着这个例子展开来讲解类。

我们来实现一个人的类,简单来说,他有名字,然后会打招呼,我们基于此来实现它。

public class Person
{
   // 特征
   private string name;

   // 属性
   public string Name//后续成员属性会讲,这里你只用知道是给name赋值就行
   {
      get { return name; }
      set { name = value; }
   }

   // 方法
   public void SayHello()
   {
      Console.WriteLine("Hello, my name is " + name);
   }
}

tips:声明一般在namespace语句块中。

类对象的概念

  • 类的声明和类对象的声明是两个概念,一个是声明框架,一个是声明实例。(声明树这一个种类和声明这里确实存在一颗怎样的树)
  • 类的声明类似枚举和结构体的声明,类的声明相当于声明一个自定义的变量类型
  • 对象是创建出来的,相当于声明一个指定类这种变量类型的变量
  • 这个过程我们一般称为实例化对象
  • 类对象都是引用类型

实例化

我们继续上面声明的类,然后来实例化一个person,叫John,然后调用他自我介绍的方法。

// 创建类的实例并使用
Person person = new Person();
person.Name = "John";
person.SayHello();

 打印结果如下:

Hello, my name is John
 

你可以自己尝试一下。

tips:如果我们再实例化一个new person,他们的所有信息也是独有的,彼此没有关系,int a和int b的区别类似。

强化

这是我们之前用结构体实现的一个小功能,现在我们用类重新来实现一下。

using System;

struct StudentGrade
{
    public string name;
    public int grade;

    public StudentGrade(string name, int grade)
    {
        this.name = name;//本身的name变量等于传入的name值
        this.grade = grade;
    }

    public void DisplayInformation()
    {
        Console.WriteLine("Name: {0}", name);
        Console.WriteLine("Grade: {0}", grade);
    }
}

class Program
{
    static void Main(string[] args)
    {
        // 创建学生成绩实例
        StudentGrade student = new StudentGrade("John Doe", 85);

        // 显示学生成绩信息
        student.DisplayInformation();

        Console.ReadLine();
    }
}
 

可能你的实现过程和博主不一样,博主也使用了一些后面才会讲的知识点,但使用class是可以实现的哦。

using System;  

class StudentGrade  
{  
    public string Name { get; set; }  
    public int Grade { get; set; }  

    // 构造函数,传参
    public StudentGrade(string name, int grade)  
    {  
        Name = name;  
        Grade = grade;  
    }  

    // 方法用于显示学生成绩信息  
    public void DisplayInformation()  
    {  
        Console.WriteLine("Name: {0}", Name);  
        Console.WriteLine("Grade: {0}", Grade);  
    }  
}  

class Program  
{  
    static void Main(string[] args)  
    {  
        // 创建学生成绩实例  
        StudentGrade student = new StudentGrade("John Doe", 85);  

        // 显示学生成绩信息  
        student.DisplayInformation();  

        Console.ReadLine();  
    }  
}

你可能有疑问结构体和类有什么区别,博主后续会进行讲解,以及为什么不同结构体来代替类,博主也会在后续讲解。

接下来的学习,类肯定会萦绕你的脑海。 

总结

我们今天对类进行了简单的学习,大概了解了一些概念,也做了一点练习,我想你已经能够get到类的作用以及概念。

可能有些知识点看上去好像很难,但博主相信你只要脚踏实地的学习,一定会成为一个程序员大佬的。

请期待我的下一篇博客!共勉!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值