C#基础入门 三

C#基础入门 三

  • 类使用class关键字进行声明,前面加一个访问修饰符,public class car{}
  • 访问修饰符:修师傅可以用来修饰类和类成员等,控制它们的可见度
  • 修饰符关键字分别为:public,internal,protected,private
  • 使用上面四个访问修饰符可指定下列五个可访问性级别:
    • public:访问不受限制;
    • protected:访问仅限于包含类或从包含类派生的类型;
    • internal:访问仅限于当前程序集;
    • protected internal:访问限制到当前程序集或从包含派生的类型的类别;
    • private:访问仅限于包含类型。

对象

  • 对象是具体的,对象也称为实例,可以存储在命名变量中,也可以存储在数组或集合中。
  • 类的对象是使用new运算符创建。

静态类

  • 用static修饰符声明的类称为静态类,静态类与普通类基本相同,但存在一个区别,静态类不能实例化,也就是说,不能使用new关键字创建静态类类型的变量。因为没有实例变量,所以要使用类名本身访问静态类的成员。
  • 用static修饰的成员称为静态成员,静态方法和属性中不能包含非静态字段和方法。
  • 静态字段有两个常见的用法:一是记录已实例化对象的个数,二是存储必须在所有实例之间共享的值。
  • 非静态成员是由对象操作的,静态成员则是由类操作的。

类成员

字段

  • 字段是直接在类或结构体中声明的任何类型的变量,字段就是其包含类型的“成员”。在类块中通过制定字段的访问级别然后指定字段的类型,再指定字段的名称来声明这些字段,public string name="zxh";

属性

  • 属性是这样的成员:它提供灵活的机制来读取、编写或计算某个私有字段的值,可以像公共数据成员一样使用属性,但实际上它们是称作“访问器”的特殊方法,这使得可以轻松访问数据,此外还有助于提高方法的安全性和灵活性。
public class Car
    {
        protected string brand="BMW";
    public string Brand
    {
        get
        {
            return brand;//get访问器,用来读取属性值
        }
        set
        {
            brand = value;//set访问器,用来给属性赋值
        }
    }
       
    }
  • 注意:不具有访问器的属性被视为只读属性,不具有get访问器的属性被视为只写属性,同时具有这两个访问器的属性是读写属性。如下图(图7),将set注释掉,下面为brand赋值出现错误,此时属性仅为只读。同理将get注释掉,则属性不可读,不可以打印出来。

  • 可将属性标记为public、private、protected、internal或protected internal,同一属性的get和set访问器可能具有不同的访问修饰符,例如,get可能是public以允许来自类型外的只读访问;set可能是private。(仅当属性同时具有get和set访问器时,才能使用访问器修饰符,并且只允许对其中一个访问器使用修饰符)

方法

  • 方法其实就是函数,只不过,类内部的函数我们通常称为方法
  • 方法是具有特定功能的代码段,方法的使用可以省去重复代码的编写,大大简化程序,提高开发效率。
  • 方法可以分为库方法,例如Console.Write(),和自定义方法。
  • 方法的定义:访问修饰符 返回值类型(void/int/char...) 函数名(形式参数列表){语句; return 返回值;}
  • 定义了一个Run方法
 public class Car
    {
        public string brand="BMW";
    public string Brand
    {
        get
        {
            return brand;
        }
        set{ brand = value;}
    }
    public void Run(int oil)
    {
        Console.WriteLine("车里有{0}升油", oil);
        return;
    }
    }
  • 方法的返回值称为方法的值,只能通过return语句返回给主调函数,一个方法最多只能有一个返回值,方法即使没有返回值也可以使用return来结束方法的执行,回到主调方法,return后面的语句不再执行。
posted @ 2018-02-12 21:49  20145218  阅读(134)  评论(0编辑  收藏