Golangオブジェクト指向プログラミング
著者:殷Zhengjie
著作権:オリジナルの作品は、再版に減少しました!それ以外の場合は、責任を負いません。
囲碁理由(より少ない程度の)これらの異なるのC ++、JavaやPythonの言語となぜオブジェクト指向言語、それは継承をサポートしていないため、唯一の集約(組み合わせも呼ばれる)と埋め込みをサポートしています。次に、我々は、オブジェクト指向プログラミング言語囲碁権について学ぶために一緒に働きます。
A.オブジェクト指向プログラミングのアイデア
時間だけで人気のオブジェクト指向プログラミングでは、継承は、それが最初にもてはやされた最大の利点の一つです。しかし、実際の数十、この機能は、大規模システムの維持管理に使用する場合は特に、また、いくつかの重大な欠点であるという事実の後にロードした後。ゴー言語は、インターフェイス指向プログラミングを提案しています。 一般的なプログラミングモード: プロセス指向(関数指向プログラミング): 典型的な: C言語 の利点: コードを読みやすい明確なプロセス、。 短所: 結合度が高すぎる、プロジェクトの反復を助長されていません。 オブジェクト指向プログラミング: :一般的な C ++ ように、Javaの、パイソン、golangと。 長所: デカップリング。 短所: コードの抽象化が高すぎると読みにくいです。 オブジェクト指向の三つの要素: 包装 アセンブリ:運転データと一緒に組み立てられます。 隠されたデータ:外国人は、インタフェースの一部のみ、オブジェクトを介してアクセスインタフェースを露出。例えば、ドライバーが車の構成の詳細を理解していない、車を使用して、ちょうど部品がどのようにライン上で駆動するために何を知っている必要があり、あなたが操縦それらの原理を理解することはできません、実行することができアクセルを踏みました。 相続 マルチ多重化、自分自身を記述しないでください継承。 多重継承少し修正、OCP(オープン -原理は)閉じ、個性を反映するために変更するために使用継承。 多型 最も柔軟で動的バインディングオブジェクト指向プログラミング。 他のほとんどのオブジェクト指向言語と継承と重合が異なっている、囲碁言語サポートのみ重合(とも呼ばれる組み合わせ)と埋め込み。
II。初期化と構造の定義
メインパッケージ のインポート( 「FMT 」 ) Person型のstruct { 名前 文字列の 年齢 int型の 性別の文字列 } タイプの学生のstruct { 人// 埋め込まれた人が匿名組み合わせて属性を。 float64スコアは } 教師型構造体{ 人//を人埋め込み匿名合わせ属性を介し。 もちろん、文字列 } 型校長の構造体{ 人 // 埋め込み人の匿名の組み合わせを介して属性。 CarBrandストリング } FUNCメイン(){ / * * 最初に初期化:最初の割り当ての定義 * / S1: = 学生{} s1.Name = " ジェイソン陰陽" fmt.Println(S1) fmt.Printf(" %のV + \ N- \ N- '、S1)// "各印刷フィールド構造を示す+ V" / * * 秒初期化:直接初期化 * / S2: = {人教師{ " Yinzheng潔"、18は、" 少年" }、" ゴー並行プログラミング" } fmt.Println(S2) fmt.Printf("+ V%\ N- \ N- ' 、S2) / * * 第三割当モード:初期化部割当フィールド * / S3: = {CarBrand校長:" トヨタ"、人:人{名:" JasonYin最強王" } } fmt.Println(S3) fmt.Printf(" %のV + \ N- " 、S3) }
III。指向プログラミング・インタフェース