C#学习笔记-C#的类及其成员

***类***是面向对象语言的的一个基本特征,它是一种数据结构。
类可以理解为将现实生活中的食物进行抽象的结果,比如创建一个person的类,人有身高体重年龄的基本属性。
而类的实例化是指将类具体化,比如刚刚创建的一个person的类,将他实例化之后,就具体到某一个人,类的实例化需要用操作符new进行实例化。

 class Person//创建一个类
    {
        string name;
       int age;
    }
    Person person1 = new Person();
            person1.name = "Tom";
            person1.age = 20;//类的实例化,具体到某一个人

用s的的一个基本特征,它是一种数据结构。
类可以理解为将现实生活中的食物进行抽象的结果,比如创建一个person的类,人有身高体重年龄的基本属性。而类的实例化是指将类具体化,比如刚刚创建的一个person的类,将他实例化之后,就具体到某一个人,类的实例化需要用操作符new进行实例化。csharp class Person//创建一个类 { string name; int age; } Person person1 = new Person(); person1.name = “Tom”; person1.age = 20;//类的实例化,具体到某一个人。
而用static修饰的静态类,不能实例化,只能用类名直接访问。所谓静态的类,就好像人的数量,增长速度,它不能用来描述具体的人,所以不能实例化,只能由类名直接访问其成员。
类的成员
类的成员有字段,属性,索引器,方法,和构造函数等。
字段可用readonly(只读),const常量修饰,而用static修饰的表示静态成员(与类型相关,不与对象相关),只能由类名访问,类实例化的对象不能访问。
属性是对字段的扩展,因为为了避免客户端对数据进行篡改,字段最好用private(私有的)进行修饰,而为了访问类中的私有字段,属性应运而生,属性可以防止内外的不合法的数据污染。
就像qq资料里的年龄,我们不能填超过120岁,因为这不合理,通过属性的访问器及加入逻辑控制代码,就可以对数据进行判断处理。比如:

 public int Age
        {
            get
            {
                return age;
            }
            set
            {
                if (value < 0||value>120) throw (new ArgumentOutOfRangeException("错误"));
                age = value;
            }

        }

当我们给Age赋的值不在0-120之间,程序就会抛出异常。
在vs中打出prop在按两下Tab可以自动生成属性,一般情况下,我们优先使用属性。
索引器
索引器能使一个对象像数组一样被检索, 它的声明类似与属性,同样有get,set访问器

 public object this[int index]
        {
            get { /* return the specified index here */ }
            set { /* set the specified index to value here */ }
        }

同样在VS中,输入indexer再按两下tab可自动声明一个索引器。也可以像属性一样设置逻辑控制代码来筛选数据

发布了4 篇原创文章 · 获赞 6 · 访问量 425

猜你喜欢

转载自blog.csdn.net/Kerrhs/article/details/104326881