注意是值的比較還是引用位址的比較
「==」比較兩個物件是否為同乙個物件
equals則是對其物件的值進行比較
string s1 = "***************====昏割線,以下內容**於********************123"
;string s2 = "
123"
;console.writeline(s1 ==s2);
console.writeline(s1.equals(s2));
char ch = new
char[3] ;
string s3 = new
string(ch);
object obj1 = s1; //
獲取位址
object obj3 =s3;
console.writeline(obj1 == obj3); //
結果是true
console.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講解: equals() 和 運算子 == 過載準則
***************====昏割線*************************=
先貼上階段一的考試題:
using問題:執行結果是多少?答案:16system;
using
system.collections.generic;
using
system.linq;
using
system.text;
namespace
no8
public
intgeti()
public
virtual
void add(int
v)
}public
class
dog : animal
public
override
void add(int
v)
}public
class
program}}
考點:涉及到override的使用,以及例項化子類物件時需要呼叫父類的建構函式
當父類的中的virtual方法被子類重寫了,那麼當例項化子類物件時需要呼叫父類的建構函式,其中建構函式中add方法則是子類中重寫過的;
當virtual方法沒有被重寫時,子類中的方法add被new修飾時,父類中構造方法呼叫的則是本類中的virtual修飾的add方法。
從子類到基類的順序
list與list不是同一回事
反射乙個類的物件時不執行這個類的建構函式;不可訪問該類中的私有字段(如何獲取私有字段?)
需求分析階段報告
團隊專案之需求分析 1 任務描述 2 任務目的 1 任務描述 2 任務目的業務流程模型 構建模型 李飛浪 完成文件 張瑞源 用例模型 構建模型 王志斌 隊長 完成文件 童子銘 階段報告 報告撰寫 葉鴻 1.模型介紹 1 目標 這個模型幹什麼用 2 變數 現實世界中具體事務的抽象 3 關係 各變數之間...
需求和分析階段的任務
需求階段的任務 1 需求說明書 簡單的進行客戶調研,明確專案的功能,並且對功能進行簡單的描述。提供給使用者,用於售前的合同以及 2 需求規格說明書 該說明書屬於合同簽訂以後的成果。需要詳細的進行客戶調研,明確客戶的業務流程,處理的表單資訊等等。規格說明書中需要有業務流程圖,表單的各個域資訊,以及一些...
需求分析階段的整體流程
首先每個公司會有專門負責需求的人員 需求分析師 ba 產品經理 pm 整理和收集需求給出產品需求文件 prd 測試和開發提前學習產品需求文件 prd 找出其中的問題和存在疑問的點,記錄下來 ba pm組織召開需求評審會議,由他們主導進行需求串講整體需求方案 開發和測試提問,產品經理解答疑問 部分問題...