zoukankan      html  css  js  c++  java
  • 学习笔记

    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

       

  • 相关阅读:
    bzoj 3670: [Noi2014]动物园
    bzoj 2878: [Noi2012]迷失游乐园
    51nod 1348 乘积之和
    51nod 1514 美妙的序列
    AtCoder Grand Contest 002 D
    bzoj 3451 Normal
    LOJ #6119. 「2017 山东二轮集训 Day7」国王
    51nod 1752 哈希统计
    计蒜客 百度地图的实时路况
    Codeforces 549F Yura and Developers
  • 原文地址:https://www.cnblogs.com/alannxu/p/10093596.html
Copyright © 2011-2022 走看看