C#类
精华
小牛编辑
214浏览
2023-03-14
在 C# 中,类是引用类型的,其中包括状态(成员属性)和操作(成员方法和其它函数成员),我们可以动态创建类的实例(instance),这个实例也被称为对象(object),我们可以通过类和对象来设计程序。
想要创建一个类的实例需要使用 new 关键字,假如我们创建了一个名为 Student 的类,若要创建这个类的对象,语法格式如下:
除此之外,我们还可以像创建普通变量那样只创建一个 Student 类型的变量,而不使用 new 关键字实例化 Student 这个类,例如:
对象创建完成后如果要通过对象来访问类中的成员,则需要使用点
【示例】创建一个公共的学生类,类中包括一些成员属性和成员方法,然后实例化这个类,并通过类的对象调用类中的成员属性和成员方法。
1、类的定义
类的定义需要使用 class 关键字,语法格式如下: <access specifier> class class_name
{
// 成员属性
<access specifier> <data type> variable1;
<access specifier> <data type> variable2;
...
<access specifier> <data type> variableN;
// 成员函数/成员方法
<access specifier> <return type> method1(parameter_list)
{
// 函数体
}
<access specifier> <return type> method2(parameter_list)
{
// 函数体
}
...
<access specifier> <return type> methodN(parameter_list)
{
// 函数体
}
}
- <access specifier> 为访问权限修饰符,用来指定类或类中成员的访问规则,可以忽略不写,如果没有指定,则使用默认的访问权限修饰符,类的默认访问权限修饰符是 internal,类中成员的默认访问权限修饰符是 private;
- class_name 为类的名称;
- <data type> 为数据类型,用来指定成员属性的数据类型;
- variable1、variable2 等为成员属性的名称,类似于变量名;
- <return type> 为返回值类型,用来指定成员函数的返回值类型;
- method1、method2 等为成员函数的名称。
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;
对象创建完成后如果要通过对象来访问类中的成员,则需要使用点
.
运算符连接对象的名称和成员的名称,如下所示:
Student Object = new Student();
Object.method(); // 访问成员函数
Object.variable; // 访问成员属性
3、类和对象的使用
下面通过一些示例来演示一下类和对象的具体使用方法。【示例】创建一个公共的学生类,类中包括一些成员属性和成员方法,然后实例化这个类,并通过类的对象调用类中的成员属性和成员方法。
using System; namespace www.xnip.cn { class Demo { 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(); } } 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); } } }运行结果如下:
编号:101 姓名:张三 性别:男 年龄:18
编号:102 姓名:李四 性别:女 年龄:16