0. 文章目的   本文面向有一定.NET C#基础知识的学习者,介绍在C#中的常用的对象比较手段,并提供一些编码上的建议. 1. 阅读基础 1:理解C#基本语法与基本概念(如类.方法.字段与变量声明,知道class引用类型与struct值类型之间存在差异) 2:理解OOP基本概念(如类.对象.方法的概念) 2. 概念:相等性与同一性   在开始前,我们需要先来明确两个概念 相等性:或者称为值相等性,指示两个物品在某个比较规则下存在值上的相等.相等性只考虑值是否相等,譬如若两个整型变量a和b的值…
一:对象相等性和同一性 System.Object提供了名为Equals的虚方法,作用是在两个对象包含相同值的前提下返回true,内部实现 public class Object { public virtual Boolean Equals(Object obj) { //比较两个引用指向同一个对象,他们肯定包含相同的值 if (this == obj) return true; //假定对象不包含相同的值 return false; } } 乍一看,这似乎就是Euqals的合理实现,假如th…
1.类型的可访问性 a.关键字有public.internal,其中public表示该类型对于程序集都可见.internal表示该类型仅对当前程序集可见.此处的类型可以为类.接口.结构等. b.如果不显式指定类型的访问行,internal为类型的默认值. c.友元程序集 应用场景:公司的TeamA在程序集中定义了一组工具类型(UtilityType),可访问性为internal,公司的TeamB希望在另外的程序集使用这些类型. 如果直接将工具类型修改为public,其它使用TeamA程序集的团队…
本章学习要点:       1.  Java封装特性;       2.  掌握类的定义:       3.  掌握类的调用方法; 一.封装特性        Java 纯面向对象语言,面向对象语言遵循有三种基本特性,封装,继承,多态:所有的特性都围绕着类展开发,类是对现实世界中事物的抽象描述.本章先学习封装特性        1.  类  - 将现实事物(人)或虚拟事件(银行账户)进行抽象,在Java通过类来描述,事物的属性和行为:  如:             a. 人 - 现实中的具体事…
对象们都住在不同的房间里,每个房间只能住一个对象.对象们都被锁在房间里,永远没有办法搬家(至少从我们讨论的角度来说,这个说法是正确的).所以如果你知道了一个对象的房间号,就能找到对应的对象. 现在假如我们有两张名片,上面如果写着相同的房间号,我们就可以断定,这两张名片是同一个对象分发出来的,这就是同一性,也就是你所说的一致. 假如1号房里住着一个值为1的整数对象, 2号房里住着另一个值为2的整数对象,3号房里住着另另一个值为1的整数对象. 我们又有它们各自的一张名片, 那么,第一个名片和第三个对…
==对基本数据类型比较的是值,对引用类型比较的是地址 equals()比较的是对象的数据的引用 等价性原理: 自反性    x.equals(x)为true 对称性    x.equals(y) 为true时,y.equals(x) 也为true 传递性    若x.equals(y) 为true , y.equals(z) 为true, 则x.equals(z) 为true 一致性   在未修改x,y的值的情况下x.equals(y)始终是相同的值 非空性   x.equals(null) 总…
1. 什么是例行性命令 1.1 linux工作排程的种类: linux例行性命令主要有两种: at:仅执行一次就从linux的任务中取消 cron:将持续例行性的工作下去 1.2 系统常见的例行性命令有哪些: 2. 仅执行一次的工作排程 建立date.sh #!/bin/bash #program: this program to show time like: yyy-mm-dd hh-mm-ss AM/PM #history: #2009-10-07 first realease lin x…
一,区别属性和实例变量 实例变量就是声明在接口大括号里面的变量.@public类型的实例变量直接使用->访问, property 属性是一组设置器和访问器,属性是方法不是变量. 与类相似,属性需要声明和实现,声明在.h文件里, @property int age;相当于: -(void)setAge:(int)age; -(int)age; 属性的实现: @synthesize age=_age;//=后面给出要赋值或取值的实例变量 相当于实现了两个方法: -(void)setAge:(int)…
[重写Equals注意的事项] 1. Equals 必须是自反的:--x.Equals(x)肯定为 true 2. Equals 必须是对称的:--x.Equals(y)肯定返回与y.Equals(x)相同的值 3. Equals 必须是可传递的:--x.Equals(y)返回true, y.Equals(z)返回true,则x.Equals(z)肯定返回true 4. Equals 必须是一致的.比较的两个值没有变,Equals返回的值(true或false)也不能变 5. 让类型实现 Sys…
------------------------------------------------------------------------------------------------------------ cascade几种取值: save-update:   级联保存(load以后如果子对象发生了更新,也会级联更新). 但它不会级联删除 delete:              级联删除, 但不具备级联保存和更新 all-delete-orphan: 在解除父子关系时,自动删除不属…