3 物件導向程式設計

2021-07-06 07:41:17 字數 1210 閱讀 9209

 基礎型別,如byte、int、bool、float等;

 復合型別,如陣列、結構體、指標等;

 可以指向任意物件的型別(any型別);

 值語義和引用語義;

 物件導向,即所有具備物件導向特徵(比如成員方法)的型別;

 介面

type integer int

func (a integer)

less(b integer) bool

go語言中的大多數型別都基於值語義,包括:

 基本型別,如byte、int、bool、float32、float64和string等;

 復合型別,如陣列(array)、結構體(struct)和指標(pointer)等。

go語言中型別的值語義表現得非常徹底。我們之所以這麼說,是因為陣列。

go語言中有4個型別比較特別,看起來像引用型別

 陣列切片:指向陣列(array)的乙個區間。

 map:極其常見的資料結構,提供鍵值查詢能力。

 channel:執行體(goroutine)間的通訊設施。

 介面(inte***ce):對一組滿足某個契約的型別的抽象。

所有的go語言型別(指標型別除外)都可以有自己的方法

type rect struct 

func (r *rect) area() float64

rect1 := new(rect)

rect2 := &rect{}

rect3 := &rect

rect4 := &rect

type base struct 

func (base *base) foo()

func (base *base) bar()

type foo struct 

func (foo *foo) bar()

在「派生類」foo沒有改寫「基類」base的成員方法時,相應的方法就被「繼承」,例如在

上面的例子中,呼叫foo.foo()和呼叫foo.base.foo()效果一致。

go語言中符號的可訪問性是包一級的而不是型別一級的

在go語言中,只要兩個介面擁有相同的方法列表(次序不同不要緊),那麼它們就是等同的,可以相互賦值。

注意:介面查詢、型別查詢

物件導向程式設計(3)

封裝有兩方面的含義 1 將資料和行為包裝到類物件中,在方法內部對屬性進行操作,在類物件的外部呼叫方法。無需關心方法內部的具體實現細節,從而提高了複雜度。2 在類物件內部通過訪問控制把某些屬性和方法隱藏起來,不允許在類物件的外部直接訪問,而是在類物件的內部對外提供公開的介面方法以訪問隱藏的資訊。這樣,...

物件導向程式設計作業3

github鏈結 我選擇的是用c 實現 c語言實現三電梯過程 讀取乘客請求 asktime請求時間,askfloor請求樓層,askspace請求目的地 分析乘客請求,判斷其應乘坐哪號電梯 若相應電梯接到請求便開始執行 判斷電梯是否到達請求樓層或者請求目的地,若到達,電梯停靠,否則繼續響應請求 若處...

3 物件導向程式設計初步

如何開汽車 事務比較簡單,可以用線性的思維去解決 面向過程 物件導向 1.踩離合 駕駛員 2.掛擋 汽車 3.踩油門,放離合 駕駛員開汽車!4.開了 car.start 如何製造汽車 事物比較複雜使用簡單的線性思維無法解決 面向過程 物件導向 1.造車輪?車輪 2.造發動機?買橡膠到馬來西亞找到橡膠...