golangはオブジェクト指向ですか?

(*-*)浩
リリース: 2019-12-31 10:27:44
オリジナル
3058 人が閲覧しました

golangはオブジェクト指向ですか?

#Go 言語では、オブジェクト指向の概念は明示的に提案されていませんが、既存の構文設計に基づいてオブジェクト指向のコードを記述することもできます。 Go 言語のオブジェクト指向は、構造体構造を利用して実装されます。 (推奨学習: Go )

オブジェクト指向の 2 つの主要なタイプは、構造体とインターフェースです。

public/protected/private を使用してメンバーとメソッドの可視性を示す C とは異なり、Golang は大文字と小文字を使用して可視性を示します。つまり、大文字で始まるメンバー/メソッドは外部から参照できます。 、小文字で始まるものはクラスに対してプライベートであり、外部からメンバーに直接アクセスすることはできません。

さらに、クラス型の定義において、Golang と C の間には重要な違いがあります。つまり、Golang では構造体のクラスのメンバー変数を宣言するだけでよく、宣言や宣言を行う必要はありません。クラス定義本体ですべてのメソッドを定義します。メソッド定義はすべて構造体の外側で完了します。

Golang ではクラスの属性は struct で定義し、クラスのメソッドは func 定義時にクラスオブジェクトを渡すことで定義します。属性とメソッドのパブリック/プライベート属性はケースによって決まります。最初の文字の。

type Student struct {
	name  string
	age   int
	major string
}
ログイン後にコピー

Golang は継承を完全には実装しませんが、組み合わせによって実装します。複合クラス (サブクラス) は、結合クラス (基本クラス) のパブリック メソッドを直接呼び出して、基本クラスのパブリック プロパティにアクセスできます。サブクラスは、独自のプロパティを定義し、独自のメソッドを実装することもできます。

Golang の設計思想の 1 つはシンプルさであり、メンバーやメソッドのパブリック/プライベート属性を大文字と小文字で区別したり、組み合わせによって継承を実現したりするなど、シンプルさの哲学を体現しています。

Golang のインターフェイス タイプは、メソッドのコレクションである抽象基本クラスを定義します。これらのメソッドを完全に実装するタイプはインターフェイスと呼ばれます。抽象化とポリモーフィズムは相互に補完し合うため、または抽象化の目的はポリモーフィズムを実現することであるためです。

以上がgolangはオブジェクト指向ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート