黑马程序员----类和对象的一点理解

---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

1.面向对象程序设计技术是将数据和对数据的操作作为一个相互依赖。不可分割的整体,采用数据抽象和信息隐藏技术,使得复杂的工作条理清晰、编写容易。

2.面向对象的主要概念:

(1)抽象:是一种从一般观点来看待事物的方法,它要求开发人员集中于对事物的本质特征,而不是具体细节,采用抽象分类方法,抽取公共的属性和行为将其放入一个类中。

(2)封装:是把数据与对数据进行的操作捆绑在一起,成为一个类型的对象。封装应具备明确的功能,并提供一组接口以便和其他对象互相操作。

(3)继承:使一个类可以获得先前已定义类的全部特征,增强了代码的可重用性,提高了开发效率。

(4)多态性:指相同的函数为不同对象所接受时,可导致完全不同的行为。利用多态性,程序中只需进行一般形式的函数调用,函数的具体实现细节留给接受函数调用的对象处理。

3.类是面向对象开发方法的基本成分。类是具有相同属性和相同行为的一组对象的集合。例如动物这个类就包括所有动物共享的一些特征,如:颜色,年龄,品种,可以捕食等。

类是一个数据结构,它可能包含数据成员(常数和字段)、函数成员(方法、属性、事件、索引器、运算符、实例构造函数、静态构造函数和析构函数(现在不用了))以及嵌套类型。

4.类的成员使用举例

class Program
    {
        static void Main(string[] args)
        {
            Myclass a = new Myclass();        //构造函数的使用
            Myclass b = new Myclass(100);
            Console.WriteLine("Myconst ={0}",Myclass.Myconst);   //常数的使用
            a.Myfield++;                                         //字段的使用
            Console.WriteLine("a.Myfield={0}",a.Myfield);
            a.Mymethod();                                        //方法的使用
            a.Myproperty++;                                      //属性的使用
            Console.WriteLine("a.Myproperty={0}",a.Myproperty);
            a[3] = a[1] = a[2];                                  //索引器的使用
            Console.WriteLine("a[3]={0}",a[3]);                  
            a.Myevent += new EventHandler(MyHandler);            //事情的使用
            Myclass c = a + b;                                   //运算符的使用
            Console.ReadKey();
        }
        static void MyHandler(object sender, EventArgs e)
        {
            Console.WriteLine("Program.MyHandler");
        }
        internal class MyNestedClass
        { }
    }
    class Myclass 
    {
        public Myclass()      //构造函数
        {
            Console.WriteLine("object is initialized");
        }
        public Myclass(int value)                            //带有参数的构造函数
        {
            Myfield = value;
            Console.WriteLine("object is initialized");
        }
        public const int Myconst = 10;                       //常数
        public int Myfield = 15;                             //字段
        public void Mymethod()                               //方法
        {
            Console.WriteLine("Myclass.Mymethod");
        }
        public int Myproperty                                //属性
        {
            get 
            {
                return Myfield;
            }
            set 
            {
                Myfield = value;
            }
        }
        public int this[int index]                           //索引器 
        {
            get 
            {
                return 0;
            }
            set 
            {
                Console.WriteLine("this[{0}]={1} ",index,value);
            }
        }
        public event EventHandler Myevent;                   //事件
        public static Myclass operator +(Myclass a, Myclass b)  //运算符 
        {
            return new Myclass(a.Myfield + b.Myfield);
        }
        internal class MyNestedClass 
        { }
    }



















---------------------- ASP.Net+Unity开发.Net培训、期待与您交流! ----------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值