学习笔记

1.变量命名

 Camel:多用于给变量或者字段命名,第一个单次首字母小写,其余每个单词的首字母大写。

   给字段命名,前面必须加下划线。

   _ fileName

 Pascal:要求每个单词的首字母都要大写。

   FileName

 2.进程

   一个应用程序就是一个进程,而一个进程又是由多个线程组成的。

  进程帮助我们字内存中分配相应程序执行所需的空间。

3.面向对象

    面向对象三大特性:封装,继承,多态

    封装:

      --->减少了大量的冗余代码

      ---->封装将一些复杂的代码封装起来,对外提供一个简单的使用接口。

   继承:

     --->减少类中的冗余代码

   --->让类与类产生了关系,为多态打下基础

     特性:

         单根性:一个子类只能有一个父类

        传递性:子类继承父类,子类又可以作为父类被继承。

        里氏转换:

      1.子类可以赋值给父类

      2.如果父类中装的是子类对象,则可以将这个父类转换成相对应的子类对象

        --->

          is:返回bool类型,指示是否可以做这个转换

       as:如果转换成功,则返回对象,否则返回NULL

                作用:可以将所有子类当成父类来看 ,针对父类进行代码编写,写出通用的代码,适应需求的不断变更

class Program
    {
        static void Main(string[] args)
        {
            Person person = new Student();
            if (person is Teacher)//判断person是否为Teacher对象
            {
                ((Teacher)person).TeacherSayHello();
            }
            else
            {
                Student s = person as Student;//将person转换为student对象
                if (s != null)
                {
                    s.StudentSayHello();
                }
            }
            Console.ReadKey();
        }
    }

   public class  Person
  {
       public void PersonSayHello()
       {
         Console.WriteLine("我是人类");
       }
  }

   public class Student : Person
   {
       public  void StudentSayHello()
       {
           Console.WriteLine("student");       
       }
   }

   public class Teacher : Person
   {
       public void TeacherSayHello()
       {
           Console.WriteLine("我是老师");
      

       多态;

        --->虚方法

    virtual  override

  --->抽象类

    abstract override

  --->接口

    interface

   类决定了对象将要拥有的属性和行为。

4.关键字

   new:

       1)创建对象

           --->在堆中开辟空间

          --->在开辟的堆空间中创建对象

          --->调用对象的构造函数

     2)隐藏父类的对象

    

this:

    1.代表当前类的对象

    2.显示的调用自己的构造函数

base:

    1.显示调用父类的构造函数

    2.调用父类的成员

 5.抽象类实现多态

 1 class Program
 2     {
 3         static void Main(string[] args)
 4         {
 5             UDisk u = new UDisk();
 6             MobileDisk m = new MobileDisk();
 7             Telphone t = new Telphone();
 8             Computer c = new Computer();
 9             c.MS = t;
10             c.CpuRead();
11             c.CpuWrite();
12             t.PlayMusic();
13             Console.ReadKey();
14 
15         }
16     }
17 
18     abstract class MobileStorage
19     {
20         public abstract void Read();
21         public abstract void Write();
22     }
23 
24     class MobileDisk : MobileStorage
25     {
26         public override void Read()
27         {
28             Console.WriteLine("移动硬盘在读取");
29         }
30         public override void Write()
31         {
32             Console.WriteLine("移动硬盘在写入");
33         }
34     }
35 
36     class UDisk : MobileStorage
37     {
38         public override void Read()
39         {
40             Console.WriteLine("U盘在读取");
41         }
42 
43         public override void Write()
44         {
45             Console.WriteLine("U盘在写入");
46         }
47 
48     }
49 
50     class Telphone : MobileStorage
51     {
52         public override void Read()
53         {
54             Console.WriteLine("手机在读取");
55         }
56 
57         public override void Write()
58         {
59             Console.WriteLine("手机在写入");
60         }
61 
62         public void PlayMusic()
63         {
64             Console.WriteLine("手机在播放音乐");
65         }
66     }
67 
68     class Computer
69     {
70         public MobileStorage MS
71         { 
72           get;     
73           set; 
74         }
75         public void CpuRead()
76         {
77             this.MS.Read();
78         }
79         public void CpuWrite()
80         {
81             this.MS.Write();
82         }
83     }
View Code

 

   

posted on 2018-12-09 21:57  _一级菜鸟  阅读(225)  评论(0编辑  收藏  举报