從本節開始深入學習物件導向程式設計。
講解了 c# 基本元素、基本語法
把類的成員過了一遍:字段、屬性、方法、事件
在前面其實已經講過了封裝、後面講繼承和多型
類是一種資料結構,它可以包含資料成員(常量和字段)、函式成員(方法、屬性、事件、索引器、運算子、例項建構函式、靜態建構函式和析構函式)以及巢狀型別。類型別支援繼承,繼承是一種機制,它使派生類可以對基類進行擴充套件和專用化。 —— 《c# 語言規範》
注:這是在描述類是什麼,講的是類的外延而不是類的內涵。
計算機領域的類有下面三個方面
類是一種「抽象」的資料結構。
這裡提到的 data structure 和演算法裡面的 data structure 略有不同。演算法裡面的資料結構更多是指集合(list、dictionary 等)資料型別。
namespace helloclass
}//1、類是一種資料結構
//2、類是一種自定義的引用型別
class student
//從現實世界學生抽象出來的屬性
public int id
public string name
//從現實世界學生抽象出來的行為
public void report()
student,my name is .");}}
}
類是一種引用型別,具體到每乙個類都是乙個自定義的型別:
可以用類去宣告變數
可以用類去建立例項(把類作為例項的模板)
這兩個示例也展現了類作為「資料型別」的一面。
反射的基礎:
type t = typeof(student);
object o = activator.createinstance(t, 1, "timothy");
student stu = o as student;
console.writeline(stu.name);
dynamic 程式設計:
type t = typeof(student);
dynamic stu = activator.createinstance(t, 1, "timothy");
console.writeline(stu.name);
程式中的類與哲學、數學中的類有相通的地方。
namespace helloclass
}//1、類是一種資料結構
//2、類是一種自定義的引用型別
class student
static student()//靜態構造器
//自定義構造器
public student(int id,string name)
//自定義析構器
~ student()
//從現實世界學生抽象出來的屬性
public int id
public string name
//從現實世界學生抽象出來的行為
public void report()
student,my name is .");}}
}
namespace helloclass
}//1、類是一種資料結構
//2、類是一種自定義的引用型別
class student
//自定義析構器
~ student()
//從現實世界學生抽象出來的屬性
public int id
public string name
//從現實世界學生抽象出來的行為
(P24)管道 管道的讀寫規則
當要寫入的資料量小於等於pipe buf,linux將保證寫入的原子性 原子性 假設a程序和b程序都要向管道寫入資料,a程序寫入的資料量小於等於pipe buf,則a程序寫入的資料是連續的,中間並不會插入b程序寫入的資料,man 7 pipe看pipe buf 否則多個程序往管道寫入資料,可能會出現...
什麼是基類,什麼是父類
基類就是父類,派生類就是子類 你可以理解為生活中的父子關係,也就是說兒子繼承了所有的父親的樣貌特徵,但是兒子也有父親所沒有的一些特點 專業點講,就是子類可以繼承並使用父類的屬性和方法,也可以有自己的屬性和方法!不知道這麼說你能理解不?這裡又要講到一些繼承的特性 繼承使用繼承是為了減少 的冗餘,增強 ...
什麼是基類,什麼是父類
基類就是父類,派生類就是子類 你可以理解為生活中的父子關係,也就是說兒子繼承了所有的父親的樣貌特徵,但是兒子也有父親所沒有的一些特點 專業點講,就是子類可以繼承並使用父類的屬性和方法,也可以有自己的屬性和方法!不知道這麼說你能理解不?這裡又要講到一些繼承的特性 繼承使用繼承是為了減少 的冗餘,增強 ...