类与对象

 public class student//创建一个学生类
    {   //属性是对现实世界中实体静态特征的抽象,它提供了对类或对象性质的访问。此处属性应指数据成员。
        //C#数据成员:包括字段、常量、属性,
        //字段:是在类范围声明的变量。
        //字段可以是内置数值类型或其他类的实例。
        //常量:是在类范围声明的常量,也理解为固定的字段。
        //属性:类中的私有或保护字段,外部不可直接访问,可用属性访问器(get 和 set)访问,体现了对象的封装性。
        //字段可以说就是属性;
        //属性访问器可以说是一种特殊的方法;
        //同时包含get和set的属性称为读写属性,只有get的属性称为只读属性,只有set的属性称为只写属性。
        //成员修饰符后跟static声明的属性是静态属性,意义类似静态方法,直接使用而不能实例化后使用。

        private string name;

        public string Name
        {
            get 
            { 
                return name;
            }
            set
            {
                if (value.Length > 1)
                {
                    name = value;
                }
                else 
                {
                    name = "名字不完整";
                }
            }
         
        }
       
        private uint age;
        public uint Age //只写
        {//读访问器
           
            set
            {
                
                    age = value;
             
               
            }
        }


        private char Sex;

        protected char Sex1
        {
            get { return Sex; }
            set { Sex = value; }
        }
      
        private string telephone;

        internal string Telephone
        {
            get { return telephone; }
            set { telephone = value; }
        }
      //不需要私有变量,不必验证,完全开放

        public string Grade
        {
            get;
            set; 

        }
        //方法成员列表
        public void say()
        {
            Console.WriteLine("Hello, 淄博汉企");

        }
        public double Sum(double x, double y)
        {
            return x + y;
        }
        public int Sum(int x, int y)
        {
            return x + y;
        }
        //两个同名函数彼此构成“重载(Overload)”关系
        //两个构成重载关系的函数必须满足以下条件。(1)函数名相同。(2)参数类型不同,或参数个数不同。
     //返回值类型的不同不是函数重载的判断条件。
    //    public long Sum(int x,int y)
    
    //    {
    //        return x+y;
    //}
        //当使用new关键字创建一个对象时,一个特殊的函数被自动调用,这就是类的构造函数。
        //类的构造函数与类名相同,没有返回值。一般用于初始化类的私有数据字段。
        public student()
        {
            this.name = "12138";//this指当前类
            

        }
    }
        
       public class boystudent : student //类的继承
        {
          
           
            public static char Sex='';
           
            public void ChildFunc()
            { 
               Console.Write("这是个子类");

            }
           
           
        }
       class StaticMembers
       {
           public static int staticVar = 0;
           public int dynamicVar = 0;
           public void increaseValue()
           {
               staticVar++;
               dynamicVar++;
           }
           public static void staticFunc()
           {
              // increaseValue();

               StaticMembers obj = new StaticMembers();

               obj.dynamicVar++;
               staticVar++;
           }
           //
           
       }
static void Main(string[] args)
        {//类的实例化
           student stu=new student();
           boystudent boy = new boystudent();
          // stu.Name = "提莫";
            
           stu.Grade = "淄博汉企";
           stu.Telephone = "1234567";
           stu.Age = 3;
           Console.WriteLine(stu.Name+stu.Grade+stu.Telephone);
            //方法调用
           stu.say();
           boy.ChildFunc();
           Console.WriteLine(stu.Sum(3,4));
            //子类方法
           Console.Write(boy.Sum(3.4, 3.5));
           StaticMembers obj = null;
           for (int i = 0; i < 100; i++)
           { 
           obj=new StaticMembers();
           obj.increaseValue();
           }
            //查看静态字段与普通字段的值
           Console.WriteLine("dynamicVar="+obj.dynamicVar);
           Console.WriteLine("staticVar="+StaticMembers.staticVar);
            //类的静态成员是供类的所有对象所共享的。


               Console.ReadLine();
原文地址:https://www.cnblogs.com/liuyudong0825/p/4833563.html