今天是我们复习前面学习的第三天,也是在今天我们结束了复习。之前上学时间感觉知识全是生僻的,在生活中很少用到,因此喜欢重复的记忆,而现在学习的知识全是现在乃至未来,将是每天我们使用的,所以就感觉没必要重复记忆啦,只要我记得知识点的存在然后会想起来具体的内容的,可是今天的复习我发现这样的做法还是不对的,也可能只是刚开始啦,太多东西都是硬性的,因此我想通过这篇文章来重新捡起来我忘记的,嘿嘿。下面就来说下具体容易忘记的和做起来题还是比较生硬的吧。

一.构造函数

构造函数方法名和类名一样,没有返回值,连void都不用。构造函数可以有参数,new对象的时候传递函数参数即可,如果不指定构造函数,则类有一个默认的无参构造函数。如果指定了构造函数,则不再有默认的无参构造函数,如果需要无参构造函数,则需要自己来写。构造函数可以重载,也就是有多个参数不同的构造函数。我在学习的过程中知道怎么来写构造函数,但是却忘记啦有“base”这个关键字可以继承传参,只是记得在输出时间可以使用,因此现在来总结下啦,嘿嘿,下面写一道题来加深我的记忆啦。

定义父亲类Father(姓lastName,财产property,血型bloodType),儿子Son类(玩游戏PlayGame方法),女儿Daughter类(跳舞Dance方法),调用父类构造函数(:base())给子类字段赋值。

//定义父亲类Father(姓lastName,财产property,血型bloodType),
class Father
{
public Father(string l, double p, string b)
{
this.lastname = l;
this.property = p;
this.bloodtype = b;
}
string lastname; public string Lastname
{
get { return lastname; }
set { lastname = value; }
}
double property; public double Property
{
get { return property; }
set { property = value; }
}
string bloodtype; public string Bloodtype
{
get { return bloodtype; }
set { bloodtype = value; }
}
}
 //女儿Daughter类(跳舞Dance方法),
class Daughter:Father
{
public Daughter(string l, double p, string b):base(l,p,b)
{
}
public void Dance()
{
Console.WriteLine("我的名字是{0},我的血液是{1},有{2}财产,而且我会跳舞",base.Lastname,base.Bloodtype,base.Property);
}
}
 //儿子Son类(玩游戏PlayGame方法),
class Son:Father
{
public Son(string l, double p, string b):base(l,p,b)
{
}
public void PlayGame()
{
Console.WriteLine("我的名字是{0},有{1}财产,我的血液是{2},而且我会玩游戏\n", base.Lastname, base.Property, base.Bloodtype);
}
}
class Program
{
//调用父类构造函数(:base())给子类字段赋值
static void Main(string[] args)
{
Son s = new Son("大大", , "A");
s.PlayGame();
Daughter d = new Daughter("笑笑",,"B");
d.Dance();
Console.ReadKey();
}
}

在这个题中有一个父类Father,他有三个属性已经用一个构造函数的形式传参,而在儿子和女儿中也存在这几个属性啊,可以继承啦,但是此时可以用base在构造函数中直接传参,非常方便啦,这个小知识点做题时间我给忽略啦,而且那时间看题时间,还以为就只是在儿子女儿各自的方法输出的时间使用关键字的,嘿嘿。

二.虚方法和抽象方法

        关于虚方法需要注意的几点:
        1.父类中如果有方法需要让子类重写,则可以将该方法标记为virtual
        2.虚方法在父类中必须有实现,哪怕是空实现。
        3.虚方法子类可以重写(override),也可以不重写
        关于抽象方法注意的几点:
        1.需要用abstract关键字标记
        2.抽象方法不能有任何方法实现。
        3.抽象成员必须包含在抽象类中。
        4.由于抽象成员没有任何实现,所以子类必须将抽象成员重写。
        5.抽象类不能实例化,抽象类的作用:抽象类的作用就是为了让子类继承。
        6.抽象类中可以包括抽象成员,可以包括有具体代码的成员。
        7.还有抽象方法不能用static修饰
        综上几点,虚方法和抽象方法不是现在不会写啦,而是感觉不能区分什么时间使用虚方法,什么时间使用抽象类,好多在使用时抽象类实现的功能使用虚方法也是可以实现的啦,这个有点迷茫啦。其实像我前几天博客写的一个工厂模式的一个练习题,那个里面的shape就是一个父类,而他就是一个抽象类,不需要实现其方法,但是在其中写一个虚方法也是可以实现的啦,所以没找到他们的区别。
         三.接口
        •1.接口中只能包含方法(属性、事件、索引器也都是方法)
        •2.接口中的成员都不能有任何实现。光说不做
        •3.接口不能被实例化。
        •4.接口中的成员不能有任何访问修饰符。(默认为public)
        •5.实现接口的子类必须将接口中的所有成员全都实现。
        •6.子类实现接口的方法时,不需要任何关键字,直接实现即可。
        •7.接口存在的意义就是为了多态。
            接口学习起来还是比较简单的啦,在这里复习时间忘记啦第4点,它的默认修饰符为public,因为接口就是用来实现其方法的啦,所以默认修饰符一定为public啦。
        四.静态与非静态
        静态:使用关键字static;调用方法时间只能使用类名调用;在静态方法中访问静态成员,不可以直接访问实例成员,调用前初始化。
        非静态:不需要关键字static,调用方法时间可以实例化对象,用对象调用方法(即初始化对象),在实例方法中访问实例成员,也可以访问静态成员。
        在复习这个时间怎么把这几个知识点给忘记啦,之前记忆的甚是清楚啦,现在忽然想起啦却感觉陌生啦,还是使用的少吧,接下来我就要及时的复习啦,嘿嘿,不能再这样,学习完啦,好多又忘记啦。

五.字符串的处理

对待字符串的处理使用起来还是还是会做题的,但是好多都是使用微软提供给我的方法,而我不是不会调用方法,而是在字符串字符的类型转换上面总是不知道用哪个类型更好,或者应该转换为那个类型,下面就简单的举例说一下啦.

static void Main(string[] args)
{
#region MyRegion
string num = "I love you";
string array = num.Substring(, ).ToLower();
string array1 = num.Substring(, );
string array2 = num.Substring();
var arr = array.ToCharArray().Reverse();
var arr1 = array1.ToCharArray().Reverse();
var arr2 = array2.ToCharArray().Reverse();
foreach (var item in arr)
{
Console.Write("{0}", item);
}
foreach (var item1 in arr1)
{
Console.Write("{0}", item1);
}
foreach (var item2 in arr2)
{
Console.Write("{0}", item2);
}
Console.ReadKey();

像上面这样的题一样,每次做起来这个类型的题,总是不知道该怎么改变其类型啦,其实这个就是昨天做的这个题,在做这个题时间浪费啦好久的时间啊,这个在前面的那几个类型转换上面纠结啊,直到今天才想起来啦我们经常会想到的var关键字,换成了它,感觉简单啦好多,不用再纠结类型转换该使用哪个好啦,也知道在做题时间会用提示需要使用什么类型,但是在这个方面就是没有很好地掌握啦。

六.集合

         集合常用操作 添加、遍历、移除,命名空间System.Collections
         1.ArrayList 可变长度数组,使用类似于数组,属性 Capacity(集合中可以容纳元素的个数,翻倍增长);
           Count(集合中实际存放的元素的个数。)
–           方法:–Add();AddRange(Icollection c);Remove();RemoveAt();Clear();–Contains();ToArray();Sort():排序;Reverse():反转。
         2.Hashtable 键值对的集合,类似于字典,Hashtable在查找元素的时候,速度很快。
          –Add(object key,object value);–hash[“key”]–hash[“key”]=“修改”;–.ContainsKey(“key”);–Remove(“key”);
          –遍历:–hash.Keys–hash.Values/DictionaryEntry
         3.List<T>类似于ArrayList,ArrayList的升级版。各种方法:Sort()、Max()、Min()、Sum()…
         4.Dictionary<K,V>类似于Hashtable,Hashtable的升级版。
               在复习到集合这一块时间,ArrayList和List还是很熟悉的,而且他的几个方法感觉也不陌生啦,但是在Dictionary和Hashtable时间就生疏了很多,他的值通过key来获取的,这个使用的或许很少,但是的确感觉麻烦啦许多啊,做练习时间也没所有使用。所以还是要熟练地看下具体的方法。
          七.文件类
         File:操作文件,对文件整体操作。拷贝,删除,剪切等,是一个静态类;   
         Directory:操作目录,指的是文件夹,静态类;
         Path:对文件的目录或者路径进行操作,但是在这里文件的目录或者路径不是实际存在的,也就是是针对字符串的处理;
         Stream:文件流,在这里它是一个抽象类。
         FileStream:他是文件流;
         StreamReader和StreamWrite;
         文件类就简单的说这几个啦,前面我已经把他们各自常用的方法谢过啦,但是只是知道这些方法啦,文件类是我认为最不太清楚做题思想的,不知道是参数太多的问题,还是刚开始接触对它敏感那,做起来这个感觉甚是苦恼啊,这个也需要好好地掌握啦,之前这个就没有做熟悉啦,这是我的根本原因啦,接下来要把方法看下,具体的使用这个练习练习啦。
         哎,感觉一个过程的复习让我知道啦自己还有哪些地方没有掌握,我要学会反复的回顾前面学习的基础知识啦。感觉忘记的好快,总之,这次的复习让我再次看清楚啦自己学习的情况,同时及时的复习和练习习题可以帮助我们强化知识额,嘿嘿,好啦,今天就总结到这里啦。
 

我们复习.Net的这些日子里的更多相关文章

  1. 在没有DOM操作的日子里,我是怎么熬过来的(上)

    前言 在我动笔写这篇文章的时候,我刚刚从我的项目中删除了最后一行JQuery代码.至于我为何要这么做,请听闰土娓娓道来.前几年我还在想,假如有一天,前端世界里不能再直接操作dom了,我该怎么办?没想到 ...

  2. 在没有DOM操作的日子里,我是怎么熬过来的(终结篇)

    前言 在我写终结篇的日子里,Vue版本稳定在2.9.1.当我摸清Vue的脉络之后,以一个爬坑无数的亲历者的身份,谈谈我在MVVM时代里遇到的那些事儿. 接下来,正文从这开始~ 好多童鞋学习Vue都有灯 ...

  3. 运维MES的日子里

    可以看下<工业软件国内与国外差距,越来越小还是越来越大>.<MES技术国内现状与未来发展趋势>及<国际主要MES厂商>,总结来说中国工业是进步的,工业软件也是进步的 ...

  4. 在没有DOM操作的日子里,我是怎么熬过来的(中)

    前言 继上篇推送之后,在掘金.segmentfault.简书.博客园等平台上迅速收到了不俗的反馈,大部分网友都留言说感同身受,还有不少网友追问中篇何时更新.于是,闰土顺应呼声,在这个凛冽的寒冬早晨,将 ...

  5. 与linux相处的日子里

    在前几天装了一下linux操作系统,并安装了几个经常使用的工具.如今就谈谈我的感受吧! 对一个连linux几个字母都不会拼写的人来说.让我參与这个工作可谓是:"太残忍啦!"当然这在 ...

  6. DTD复习笔记(复习资料为菜鸟教程里的DTD教程)

    DTD(文档类型定义)的作用是定义 XML 文档的合法构建模块. DTD 可被成行地声明于 XML 文档中,也可作为一个外部引用. 为什么使用 DTD? 通过 DTD,您的每一个 XML 文件均可携带 ...

  7. XML复习笔记(复习资料为菜鸟教程里的XML教程)

    XML 指可扩展标记语言(eXtensible Markup Language) XML 的设计宗旨是传输数据,而不是显示数据. XML 标签没有被预定义.您需要自行定义标签. XML 被设计为具有自 ...

  8. javase基础复习攻略《十》

    按照计划本篇为大家总结JAVA的网络编程,什么叫网络编程呢?网络编程!=网站编程,对于这一点大家一定要注意,很多小朋友都曾经这么认为.既然谈到网络编程,咱们先了解一下网络的基础知识,什么是计算机网络? ...

  9. 【C#复习总结】垃圾回收机制(GC)1

    摘要:今天我们漫谈C#中的垃圾回收机制,本文将从垃圾回收机制的原理讲起,希望对大家有所帮助. GC的前世与今生 虽然本文是以.NET作为目标来讲述GC,但是GC的概念并非才诞生不久.早在1958年,由 ...

随机推荐

  1. 纯css3实现的幽灵按钮导航

    之前为大家介绍了好几款导航菜单,今天再给大家带来一款css3实现的幽灵按钮式的导航菜单.导航界面非常好看.右侧是一个css3实现的动画消息图标.效果图如下: 在线预览   源码下载 实现代码: htm ...

  2. php底层HashTable的实现

    本文转载自:  http://segmentfault.com/blog/tree/1190000000718519 HashTable对PHP来说是一种非常重要的数据结构.很多PHP的内部实现(变量 ...

  3. 风雪之隅(Laruence PHP开发组成员, Zend兼职顾问, Yaf, Yar, Yac, Opcache等项目作者、维护者.)

    http://www.laruence.com/?from=inf&wvr=5&loc=infblog

  4. htonl()函数学习

    今天在网上看到一篇关于htonl()函数的解释,感觉有道理,贴过来大家一起学习! htonl就是把本机字节顺序转化为网络字节顺序 h---host 本地主机 to 就是to 了 n ---net 网络 ...

  5. DataGridView使用技巧四:删除行操作

    一.无条件的删除行 默认时,DataGridView是允许用户进行行的删除操作,选中要删除的行,按Delete键可以删除,该操作没有任何提示(只是删除界面显示的数据,不会真实删除数据库中的数据).如果 ...

  6. HTML(一):HTML基本元素标签

    一.什么是HTML HTML(Hypertext Markup Language):即超文本标记语言,是一种用来设计网页的标记语言,用该语言编写的文件,以.html或.htm为后缀,并且由浏览器解释执 ...

  7. anroid 广播

    广播接收者(BroadcastReceiver)用于接收广播Intent,广播Intent的发送是通过调用Context.sendBroadcast().Context.sendOrderedBroa ...

  8. MYSQL的用户变量(@)和系统变量(@@)

    9.3. 用户变量 可以先在用户变量中保存值然后在以后引用它:这样可以将值从一个语句传递到另一个语句.用户变量与连接有关.也就是说,一个客户端定义的变量不能被其它客户端看到或使用.当客户端退出时,该客 ...

  9. 移动H5功能设计反思 测试用例总结

    一.线上页面滑动流畅性测试 1.减少长动画效果(影响流畅) 2.是否自动跳转或者还是让用户自己操作跳转需要推敲 二.buttom和页面滑动的选择(优劣) 部分手机本身就会滑动不灵敏,大部分时候其实用b ...

  10. h264 i p 帧特点

     1.爱无铭(47530789) 2014-2-13 17:07:27 I帧只有intra p帧有inter和intra:B帧一般只用inter  2.  庐舍闲士(361389535) 2014-2 ...