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

一.构造函数

构造函数方法名和类名一样,没有返回值,连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. RSA算法工具

    RSA算法工具-生成密钥对(生成密钥对) RSA算法工具-解析密钥对(导入密钥对,解析密钥对) RSA测试工具-计算分量(输入P,Q,E,计算出N,DP,DQ,Qinv)

  2. JAVA面试题集---数据库方面_

    1.存储过程和函数的区别存储过程是用户定义的一系列sql语句的集合,涉及特定表或其它对象的任务,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定用户表. ...

  3. 如何在Windows Server 2008 R2下搭建FTP服务

    在Windows Server 2008 R2下搭建FTP服务,供客户端读取和上传文件 百度经验:jingyan.baidu.com 工具/原料 Windows Server 2008 R2 百度经验 ...

  4. C语言 · 拿糖果

    算法提高 拿糖果   时间限制:1.0s   内存限制:256.0MB      问题描述 妈妈给小B买了N块糖!但是她不允许小B直接吃掉. 假设当前有M块糖,小B每次可以拿P块糖,其中P是M的一个不 ...

  5. RP2833 FPGA对应串口标识

    U41 FPGA-TXD0         /dev/ruart0        FPGA-RXD0      U40 FPGA-TXD1         /dev/ruart1 FPGA-RXD1

  6. Beego 框架学习(一)

    1.特性 beego是一个http框架 高性能,是目前最快的的go框架 开发快捷,组件多,高度解耦 RESTful方式,可以自定义action 文档完整 智能路由.智能监控 2.安装 go get g ...

  7. s:debug标签的错误ConcurrentModificationException

    搭建SSH的时候页面上加入<s:debug>标签后台出现 严重: Servlet.service() for servlet jsp threw exception java.util.C ...

  8. Framework 7 之 给Picker Modal 添加半透明背景

    官网的效果图如下: 效果图如下: 我们需要在显示下面浮层的时候显示后面的半透明背景,Framework 7 里面默认有个半透明背景,如下图: 解决方案: 1.在</body>标签之前添加& ...

  9. 基于Java的四大开源测试工具

    摘要:成功的应用程序离不开测试人员和QA团队反复地测试,应用程序在进行最后的部署之前,需要通过测试来确保它的负载管理能力以及在特殊情况下的工作条件和工作加载情况. %R[)vA t]N0 测试是应用程 ...

  10. 快速理解 Phoenix : SQL on HBASE

    转自:http://blog.csdn.net/colorant/article/details/8645081 ==是什么 == 目标Scope EasyStandard SQL access on ...