博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【阶段试题分析】阶段一试题总结
阅读量:6329 次
发布时间:2019-06-22

本文共 2106 字,大约阅读时间需要 7 分钟。

String类型对象比较

注意是值的比较还是引用地址的比较

“==”比较两个对象是否为同一个对象

Equals则是对其对象的值进行比较

String s1 = "123";String s2 = "123";Console.WriteLine(s1 == s2);Console.WriteLine(s1.Equals(s2)); char[] ch = new char[3] { '1', '2', '3' };String s3 = new String(ch);object obj1 = s1; //获取地址object obj3 = s3; Console.WriteLine(obj1 == obj3);  //结果是TrueConsole.WriteLine(obj1.Equals(obj1));  //结果是False

===================昏割线,以下内容转自于博客园====================

Person p1 = new Person("aa", 12); Person p2 = new Person("aa", 12); Console.WriteLine("Equals和= =(等于号)的比较"); Console.WriteLine("p1==p2  " + (p1 == p2));//fals Console.WriteLine("p1.Equals(p2)  " + p1.Equals(p2));

对于 p1==p2 比较的结果是false,这点是毫无疑问的,因为他俩是两个不同的变量,所以引用的地址也是不同的。但是对于p1.Equals(p2) 返回false,可能有人会产生疑问,p1 和p2的内

容是相同的啊,为什么他俩的比较结果却是为false呢?。原因就在于在Equals是Object中的一个虚方法,而person类中没有对她进行重写,因此此时调用的仍是父类中的Equals方法。但是父

类是无法知道你都有哪些成员字段的,因此返回的是false。要想让他能够比较两个变量的内容是否相同,那就应该重写Equals方法。

来自:  

关于string讲解: 

===================昏割线==========================

继承中override和new问题

先贴上阶段一的考试题:

using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace NO8{    public class Animal    {        protected int i;        public Animal()        {            Add(1);        }        public int GetI()        {            return i;        }        public virtual void Add(int v)        {            i += v;        }    }     public class Dog : Animal    {        public Dog()        {            Add(2);        }        public override void Add(int v)        {            i += v * 2;        }    }     public class Program    {        static void Main(string[] args)        {            Dog dog = new Dog();            dog.Add(5);            Console.WriteLine(dog.GetI());            Console.Read();        }    }}

问题:运行结果是多少?答案:16

考点:涉及到override的使用,以及实例化子类对象时需要调用父类的构造函数

当父类的中的virtual方法被子类重写了,那么当实例化子类对象时需要调用父类的构造函数,其中构造函数中Add方法则是子类中重写过的;

当virtual方法没有被重写时,子类中的方法Add被new修饰时,父类中构造方法调用的则是本类中的virtual修饰的Add方法。

异常捕获的顺序

从子类到基类的顺序

对于List集合作为参数使用 

List<object>与List<food>不是同一回事

关于反射

反射一个类的对象时不执行这个类的构造函数;不可访问该类中的私有字段(如何获取私有字段?)

转载于:https://www.cnblogs.com/qingsongwang/p/3266105.html

你可能感兴趣的文章
并查集的应用之求解无向图中的连接分量个数
查看>>
7个神奇的jQuery 3D插件
查看>>
在线浏览PDF之PDF.JS (附demo)
查看>>
波形捕捉:(3)"捕捉设备"性能
查看>>
AliOS Things lorawanapp应用介绍
查看>>
美国人的网站推广方式千奇百怪
查看>>
java web学习-1
查看>>
用maven+springMVC创建一个项目
查看>>
linux设备驱动第四篇:以oops信息定位代码行为例谈驱动调试方法
查看>>
redis知识点整理
查看>>
Hello World
查看>>
Spring3全注解配置
查看>>
ThreadLocal真会内存泄露?
查看>>
IntelliJ IDEA
查看>>
低版本mybatis不能用PageHeper插件的时候用这个分页
查看>>
javaweb使用自定义id,快速编码与生成ID
查看>>
[leetcode] Add Two Numbers
查看>>
elasticsearch suggest 的几种使用-completion 的基本 使用
查看>>
04-【MongoDB入门教程】mongo命令行
查看>>
Hadoop HA元数据备份
查看>>