(二十六)C#编程基础复习——Class类

发布时间 2023-11-27 10:20:18作者: 代号六零一

在C#中,类是引用类型的,其中包括状态(成员属性)和操作(成员方法和其他函数成员),我们可以动态创建类的实例(instance),这个实例也称为对象(object),我们可以通过类和对象来设计程序。

一、类的定义

类的定义需要使用class关键字,语法说明:

  1. 访问修饰符用来指定类或类中成员的访问规则,可以忽略不写,如果没有指定,则使用默认的访问权限修饰符,类的默认访问权限修饰符是internal,类中成员的默认访问权限修饰符是private
  2. 类中的数据类型,用来指定成员属性的数据类型;

二、对象

类和对象是不同的概念,类决定了对象的类型,但不是对象本身。另外,类是在开发阶段创建的,而对象则是程序运行期间创建的。我们可以将对象看作是基于类创建的实体,所以对象也可以成为类的实例

想要创建一个类的实例需要使用new关键字,假如我们创建了一个名为Student的类,若要创建这个类的对象,语法格式如下:

Student Object=new Student();

上面的实例中,前面的Student是我们要创建的对象类型,而Object则是一个变量,它引用了Student类实例(Student类的对象)的内存地址。new关键字在这里的作用主要是在程序运行时为类的实例分配内存。

除此之外,我们还可以像创建普通变量那样只创建一个Student类型的变量,而不使用new关键字实例化Student这个类,例如:

Student Object2;

不过不建议使用这样的写法,因为此时的Object2只是一个Student类型的普通变量,它并没有被赋值,所以不能使用Object2来访问对象中的属性和方法。如果非要使用Object2的话,则可以将一个已经创建的对象赋值给它,例如:

Student Object3=new Student();
Student Object2=Object3;

上面示例中的Object2和Object3指向同一个Student对象,因此使用Object3对Student对象的任何操作也会影响Object2。

对象创建完成后如果要通过对象来访问类中的成员,则需要使用.运算符连接对象的名称和成员的名称,如下:

Student Object=new Student();
Object.method();//访问成员函数
Object.variable;//访问成员属性

三、类和对象的使用

下面通过示例演示一下类和对象的具体使用方法。创建一个公共的学生类,类中包括一些成员属性和成员方法,然后实例化这个类,并通过类对象调用类中的成员属性和成员方法。

 

namespace _015
{
    internal class Program
    {
        public class Student
        {
            public int id;
            public string name;
            public string sex;
            public int age;
            public void insert(int i,string n,string s,int a)
            {
                id = i;
                name = n;
                sex = s;
                age = a;
            }
            public void display()
            {
                Console.WriteLine("编号:{0} 姓名:{1} 性别:{2} 年龄:{3}",id,name,sex,age);
            }
        }
        static void Main(string[] args)
        {
            Student stu1 = new Student();
            Student stu2 = new Student();
            stu1.insert(101, "张三", "男", 18);
            stu1.display();
            stu2.insert(102, "李四", "女", 16);
            stu2.display();
            Console.ReadKey();
        }
    }
}

运行结果: