C#类的学习

①类的定义是以关键字 class 开始,后跟类的名称。类的主体,包含在一对花括号内。下面是类定义的一般形式:

 类的修饰符   class 类名 :继承的类
{

   //类的成员

}

请注意:

  • 如果要访问类的成员,你要使用点(.)运算符。
  • 点运算符链接了对象的名称和成员的名称。

②关于类的封装(私有数据成员的意义):

   类的封装 代码的安全性 代码的繁琐性 代码的效率
修改成员访问符 破坏了类的封装性 存在潜在的危险 简便 1
公有成员函数 没有破坏 安全 繁琐而且调用不直接 3
属性 没有破坏 安全 简便 2

引申:(1)C#中的类相关定义基本上与C++中相同,除了添加了属性(C++中用公有成员函数代替)  

   (2)属性:

            定义格式:访问修饰符    属性类型  属性名

                    

            {   get{}

          set {}

        }

          

  示例:      

          class person 

      {

         private  string name;

         public  string Name

        {    get {return name;}
             set {name=values;}
        }
      }

      属性的访问同字段的访问方法完全一样:若属性是静态成员,通过“类名.属性名”;如果属性是非静态成员,通过“对象名.属性名”来访问

      示例:person  p1=new person()  //实例化对象

           p1.name="王小明";//通过对象名.属性名 来进行相应的赋值(调用了set) 

         console.writeline("{0},你好!",p1.name);//调用了get 访问器

③类的构造函数

  (1)构造函数的名称与类的名称一样。

 (2) 一个类可以有多个构造函数。

 (3)如果在类中没有显式地定义一个构造函数,编译器也会自动的为相应的类生成一个默认的构造函数,并使用默认值初始化对象字段。例如int 类型的变量将初始化为0,string   类型的变量将初始化为NULL

 (4)构造函数不能声明返回类型,也不能使用void关键字

 (5)只定义了带参的构造函数,则在创建对象时必须制定相应的参数。如果此时采用不带参的构造函数创建对象,编译时会出现错误。

    

   class person

{

      public  string name;

     int  age;

     protected   string sex;

     public person()

    {

    }

    public person( string xm,int n1)

    {

      name=xn;

      tage=n1;

    }
    public void showperson()

    {

      console.write("姓名 {0},年龄 {1}”,name.age);

    }
}

  

   

原文地址:https://www.cnblogs.com/zykh/p/7674014.html