c#初识类和对象

191 阅读2分钟

初识类和对象

一、类和对象

面向对象:面向对象认为客观事物由各种对象组成,即万物皆对象;不同的对象的组合以及相互关系和作用构成了系统。

类:抽象的,是一个模板,例如:车,人,房,我们认为都是类。

对象:具体的,具体的某个事物,例如:车牌号为“鄂A123456”的车,身份证号码为“4200000000000”的人,这些是对象。

关系:

(1)类是对象的一个抽象,一个模板

(2)对象是类的实例,可以用类来实例化对象。

类的组成:

(1)特性:(名词)(此处特征我们用字段来实现,后期教程中需要将字段封装成属性来使用。)

(2)方法:(动词)

例如:

定义一个学生类,具备学号,姓名,性别三个字段,以及一个自我介绍方法。

class Student
{
    //字段(特征)
    public string no; //学号
    public string name; //姓名
    public string sex; //性别

    //方法(行为)
    public void SayHi()
    {
    Console.WriteLine("大家好,我的学号是{0},我的姓名{1},我的性{2}",this.no,this.name,this.sex);
    }
}

在程序中创建对象并个字段赋值,调用方法。

Student stu = new Student();
stu.no = "001";
stu.name = "刘德华";
stu.sex = "男";
stu.SayHi();

二、命名空间

命名空间把功能相似或相关的类或接口组织在空间中,方便类的查找和使用,默认情况下,命名空间和项目中文件夹路径同步。

同一个命名空间下不允许出现同名的类。

第一部分中的Student类 class Student,实际上有一个默认的修饰符internal,表示在一个程序集内可以访问,如果给Student类添加public修饰符,即public class Student,Student类不但可以在同一个程序集中被访问,也可以被其他程序集访问。

(1)两个相互操作的类在一个空间下,可以直接相互访问。

(2)两个相互操作的类不在同一个空间下,可以通过using导入命名空间访问或者使用完全限定名访问(这里和Java的包有区别,在Java中两个类不在一个包内,是不能够访问的,必须添加public关键字才能访问)。

程序中如果出现同名类,例如 namespace A下有一个Student,namespace B下有一个Student,那么在主程序中,如果using A,则可以访问A空间下的Student,如果using B,则可以访问B空间下的Student。