• C# 面向对象系列笔记(三)


                           第三天

    1. 类转换的关键字isas

        is (能不能转)

              如果转换成功,则换回true,如果转换不成功,则返回false;

            Person person = newStudent("学生", 11, '', 100);

              if (person isStudent)

                {

                    ((Student)person).Study();

                }

                else

                {

                    Console.WriteLine("转换失败");

              }

     

     

      as:(尝试的转)

           如果转换成功,则返回要转的对象,失败则返回null

     

    Person person = newStudent("学生", 11, '', 100);

                Teacher teacher = person asTeacher;

                if (teacher != null)

                {

                    teacher.Teach();

                }

                else

                {

                    Console.WriteLine("转换失败");

              }

     

    2.base:关键字

    区别:

           this:

    1> 就代表当前类的对象

       2> 调用当前自己类中的构造函数

            base:

               1> 指向父类的引用,可以调用父类的成员。

               2> 子类继承父类的构造函数时,用于调父类的构造函数

              

    base并不代表父类的对象,而是指向父类的一个引用

          通过base关键字,我们可以调用父类的成员

     

         publicnewvoid Test()//彻底的将父类的Test隐藏了子类调用不到父类的Test()

                   {

                    Console.WriteLine("我是子类");

                    base.Test();

                 }

    3. new

    1>  把父类与子类同名的方法进行隐藏,子类把方法重写         

     2> 创建对象   

      

      Person

     publicvoid Test()

               {

                    Console.WriteLine("我是父类");

             }

            Teache

    publicnewvoid Test()//彻底的将父类的Test隐藏了子类调用不到父类的Test()

               {

                     Console.WriteLine("我是子类");

                   base.Test();

    }

     

    4. ArrayList集合:

          特点:  不需要考虑数组的长度

                  不需要考虑元素的类型和个数

     

         常用的方法:

             1> list.count : 实际包含的元素个数;

             2> list.capcity: 可包含的数组个数(从4开始,进行2为递增)

             3> list.Add(): 添加单个元素;

             4> list.AddRange(): 添加一个数组

             5> list.Clear(): 清除集合中所有的元素

             6> list.Remove(“张三”): 写谁谁就被删掉了

             7> list.RemoveAt(1): 根据下标删除集合中的元素;

             8> list.RemoveRange(0,3): 删除一定范围内的元素

             9> list.Insert(1,”我是新来的”);插入元素到指定1的位置

             10> list.InsertRange(0, new string[] { "张三", "李四", "王二狗蛋儿" }): 插入一条数组

            11> list.Sort() 进行升序排列

            12> list.Rever() 反转整个数组         

     

    5. 装箱和拆箱

           装箱:值类型---à引用类型  

                  int n = 10;

                object o = n;//装箱

           拆箱:引用类型---à值类型

               int n2 = (int)o;//拆箱

         

       注意: 有继承关系的对象才能发生拆装箱,没有就不能发生拆装箱;

             装箱什么类型,拆箱就必须什么类型

     

     

    6.Hashtable字典集合--->字典的拼音目录;值--->汉字

          定义:存储数据的时候,采用的是键值对的方式来进行存储。

          创建过程:

    Hashtable ht = newHashtable();  //创建字典集合对象

                  ht.Add(1, "张三");   //给集合对象添加数据

     

                  Console.WriteLine(ht[1]);   //根据键的值输出值

     

     //我们使用foreach循环来对键值对集合进行遍历

                  foreach (var item in ht.Values)   //如果ht.Keys就是把数组中所有键传入item中,最后根据ht[item]查询值

                  {                    

                      //Console.WriteLine("{0}----{1}",item,ht[item]);

                      Console.WriteLine(item);  //item

                }

     

    注意1.在我们给Hashtable添加数据的时候,键必须是唯一的,而值是可以重复的;

    if (!ht.ContainsKey(2))   //判断键是否重复

                {

     ht.Add(2, "新来哒");

                }

                else

                {

                    Console.WriteLine("集合中已经存在相同的键");

                }

          2.键是可以重新赋值的。

     

    7. var

          称之为推断类型,能够根据值推断出值的类型

            var number = 100;

                var pi = 3.14;

                var name = "张三";

                var gender = '';

                var money = 5000m;

                var b = true;

     

                Console.WriteLine(number.GetType());   

                Console.WriteLine(pi.GetType());

                Console.WriteLine(name.GetType());

                Console.WriteLine(gender.GetType());

                Console.WriteLine(money.GetType());

              Console.WriteLine(b.GetType());

          

    注意:本类型不建议使用,因为C#是一门强类型语言,就是对数据的类型必须有一个明确的定义。而且造成程序后期可读性差;

     

    8. File:   (using System.IO;//File类的命名空间)

         常用函数:

             File.Exist(): 判断指定的文件是否存在,返回bool类型;

             File.Create(): 创建一个对象;

    eg:

    //创建文件之前,首先判断文件是否存在绝对路径

                if (!File.Exists(@"C:UsersSpringRainDesktop ew.txt"))

                {

                    File.Create(@"C:UsersSpringRainDesktop ew.txt");

              }

     

             File.Delete(): 删除一个文件;

              eg:    

    File.Delete(@"C:UsersSpringRainDesktop ew.txt");

                Console.WriteLine("删除成功");

             File.Copy(): 复制一个文件;

              eg:  

    File.Copy(@"C:UsersSpringRainDesktop繁体字.txt", @"C:UsersSpringRainDesktop ew繁体字new.txt");

             File.Move(): 剪切一个文件;

            eg:

    File.Move(@"C:UsersSpringRainDesktop ew繁体字new.txt", @"D:新来的.txt");

                

             路径:

               1.相对路径:文件相对于你可执行应用程序的路径;

               2.决对路径:通过这个路径可直接在你电脑上找到这个文件的路径;

     

     

    9. Path

           Path.GetFileName(); 获取文件名但是包含扩展名

           Path.GetFileNameWithoutExtensition();获取文件名但是不包括扩展名;

          eg:

    string filePath = @"C:UsersSpringRainDesktop繁体字.txt";

                #region Old Method老方法

                //int index = filePath.LastIndexOf("\");

                //int index2 = filePath.LastIndexOf(".");

                //string fileName = filePath.Substring(index + 1,index2-index-1);

                #endregion

     

     

     

                Console.WriteLine(Path.GetFileName(filePath));

                Console.WriteLine(Path.GetFileNameWithoutExtension(filePath));

           Path.ChangeExtension(): 改变文件后辍名;

            eg:

                Console.WriteLine(Path.ChangeExtension(filePath, "jpg"));

           Path.GetFullPath(): 获得文件的绝对路径;

    eg:

    Console.WriteLine(Path.GetFullPath("1.txt"));

     

     

      第三天

     

    1. 类转换的关键字isas

        is (能不能转)

              如果转换成功,则换回true,如果转换不成功,则返回false;

            Person person = newStudent("学生", 11, '', 100);

              if (person isStudent)

                {

                    ((Student)person).Study();

                }

                else

                {

                    Console.WriteLine("转换失败");

              }

     

     

      as:(尝试的转)

           如果转换成功,则返回要转的对象,失败则返回null

     

    Person person = newStudent("学生", 11, '', 100);

                Teacher teacher = person asTeacher;

                if (teacher != null)

                {

                    teacher.Teach();

                }

                else

                {

                    Console.WriteLine("转换失败");

              }

     

    2.base:关键字

    区别:

           this:

    1> 就代表当前类的对象

       2> 调用当前自己类中的构造函数

            base:

               1> 指向父类的引用,可以调用父类的成员。

               2> 子类继承父类的构造函数时,用于调父类的构造函数

              

    base并不代表父类的对象,而是指向父类的一个引用

          通过base关键字,我们可以调用父类的成员

     

         publicnewvoid Test()//彻底的将父类的Test隐藏了子类调用不到父类的Test()

                   {

                    Console.WriteLine("我是子类");

                    base.Test();

                 }

    3. new

    1>  把父类与子类同名的方法进行隐藏,子类把方法重写         

     2> 创建对象   

      

      Person

     publicvoid Test()

               {

                    Console.WriteLine("我是父类");

             }

            Teache

    publicnewvoid Test()//彻底的将父类的Test隐藏了子类调用不到父类的Test()

               {

                     Console.WriteLine("我是子类");

                   base.Test();

    }

     

    4. ArrayList集合:

          特点:  不需要考虑数组的长度

                  不需要考虑元素的类型和个数

     

         常用的方法:

             1> list.count : 实际包含的元素个数;

             2> list.capcity: 可包含的数组个数(从4开始,进行2为递增)

             3> list.Add(): 添加单个元素;

             4> list.AddRange(): 添加一个数组

             5> list.Clear(): 清除集合中所有的元素

             6> list.Remove(“张三”): 写谁谁就被删掉了

             7> list.RemoveAt(1): 根据下标删除集合中的元素;

             8> list.RemoveRange(0,3): 删除一定范围内的元素

             9> list.Insert(1,”我是新来的”);插入元素到指定1的位置

             10> list.InsertRange(0, new string[] { "张三", "李四", "王二狗蛋儿" }): 插入一条数组

            11> list.Sort() 进行升序排列

            12> list.Rever() 反转整个数组         

     

    5. 装箱和拆箱

           装箱:值类型---à引用类型  

                  int n = 10;

                object o = n;//装箱

           拆箱:引用类型---à值类型

               int n2 = (int)o;//拆箱

         

       注意: 有继承关系的对象才能发生拆装箱,没有就不能发生拆装箱;

             装箱什么类型,拆箱就必须什么类型

     

     

    6.Hashtable字典集合--->字典的拼音目录;值--->汉字

          定义:存储数据的时候,采用的是键值对的方式来进行存储。

          创建过程:

    Hashtable ht = newHashtable();  //创建字典集合对象

                  ht.Add(1, "张三");   //给集合对象添加数据

     

                  Console.WriteLine(ht[1]);   //根据键的值输出值

     

     //我们使用foreach循环来对键值对集合进行遍历

                  foreach (var item in ht.Values)   //如果ht.Keys就是把数组中所有键传入item中,最后根据ht[item]查询值

                  {                    

                      //Console.WriteLine("{0}----{1}",item,ht[item]);

                      Console.WriteLine(item);  //item

                }

     

    注意1.在我们给Hashtable添加数据的时候,键必须是唯一的,而值是可以重复的;

    if (!ht.ContainsKey(2))   //判断键是否重复

                {

     ht.Add(2, "新来哒");

                }

                else

                {

                    Console.WriteLine("集合中已经存在相同的键");

                }

          2.键是可以重新赋值的。

     

    7. var

          称之为推断类型,能够根据值推断出值的类型

            var number = 100;

                var pi = 3.14;

                var name = "张三";

                var gender = '';

                var money = 5000m;

                var b = true;

     

                Console.WriteLine(number.GetType());   

                Console.WriteLine(pi.GetType());

                Console.WriteLine(name.GetType());

                Console.WriteLine(gender.GetType());

                Console.WriteLine(money.GetType());

              Console.WriteLine(b.GetType());

     

    注意:本类型不建议使用,因为C#是一门强类型语言,就是对数据的类型必须有一个明确的定义。而且造成程序后期可读性差;

     

    8. File:   (using System.IO;//File类的命名空间)

         常用函数:

             File.Exist(): 判断指定的文件是否存在,返回bool类型;

             File.Create(): 创建一个对象;

    eg:

    //创建文件之前,首先判断文件是否存在绝对路径

                if (!File.Exists(@"C:UsersSpringRainDesktop ew.txt"))

                {

                    File.Create(@"C:UsersSpringRainDesktop ew.txt");

              }

     

             File.Delete(): 删除一个文件;

              eg:    

    File.Delete(@"C:UsersSpringRainDesktop ew.txt");

                Console.WriteLine("删除成功");

             File.Copy(): 复制一个文件;

              eg:  

    File.Copy(@"C:UsersSpringRainDesktop繁体字.txt", @"C:UsersSpringRainDesktop ew繁体字new.txt");

             File.Move(): 剪切一个文件;

            eg:

    File.Move(@"C:UsersSpringRainDesktop ew繁体字new.txt", @"D:新来的.txt");

                

             路径:

               1.相对路径:文件相对于你可执行应用程序的路径;

               2.决对路径:通过这个路径可直接在你电脑上找到这个文件的路径;

     

     

    9. Path

           Path.GetFileName(); 获取文件名但是包含扩展名

           Path.GetFileNameWithoutExtensition();获取文件名但是不包括扩展名;

          eg:

    string filePath = @"C:UsersSpringRainDesktop繁体字.txt";

                #region Old Method老方法

                //int index = filePath.LastIndexOf("\");

                //int index2 = filePath.LastIndexOf(".");

                //string fileName = filePath.Substring(index + 1,index2-index-1);

                #endregion

     

     

     

                Console.WriteLine(Path.GetFileName(filePath));

                Console.WriteLine(Path.GetFileNameWithoutExtension(filePath));

           Path.ChangeExtension(): 改变文件后辍名;

            eg:

                Console.WriteLine(Path.ChangeExtension(filePath, "jpg"));

           Path.GetFullPath(): 获得文件的绝对路径;

    eg:

    Console.WriteLine(Path.GetFullPath("1.txt"));

     

     

  • 相关阅读:
    spring boot 1.4 整合 mybatis druid
    大话设计模式读书笔记--6个原则
    大话设计模式读书笔记--23.访问者模式
    大话设计模式读书笔记--22.解释器模式
    大话设计模式读书笔记--21.享元模式
    大话设计模式读书笔记--20.中介者模式
    大话设计模式读书笔记--19.责任链模式
    大话设计模式读书笔记--18.命令模式
    大话设计模式读书笔记--17.桥接模式
    大话设计模式读书笔记--17.单例模式
  • 原文地址:https://www.cnblogs.com/zhaobaocheng/p/4621554.html
Copyright © 2020-2023  润新知