GOオブジェクト指向言語
実際には、GOは、純粋なオブジェクト指向のプログラミング言語ではありません。それだけの構造(構造体)タイプ提供されるクラス(クラス)キーワードを、提供していませんでした。
構造体(構造体)の内部JavaやC#は、メンバ関数を持つことはできません。しかし、囲碁言語の構造体(構造体)は、「メンバ関数」を持つことができます この方法は、クラスの実装に類似した構造に加えてもよいです。
私は個人的にはオブジェクト指向言語では、実際には、単純かつ容易に理解するために行くことを感じます。
カプセル化、継承、ポリモーフィズム:学んだJavaやC#の人々は、オブジェクト指向の三つの基本的な特性を知っている必要があります。その定義は、私はここで詳しく説明しません。ここでは、オブジェクト指向言語、外出先で直接見て、それを達成する方法です。
1.パッケージの特徴
公共財産と私有財産機構との間Golangを区別しているメソッドやプロパティは、最初の文字を小文字の単語がプライベートである場合、このメソッドは、公開されている場合は、最初の文字が大文字に活用されます。
パッケージメイン インポート"FMT" 人構造体を入力し、{ 名前列 } FUNC(人*人)のsetName(名前の文字列){ person.name =名 } FUNC(人*人)GetInfoは(){ fmt.Println(person.name) } FUNCメイン(){ P:=人{ "zhangsan"} p.setName( "リシ") p.GetInfo() }
2.継承された特性
相続GOの言語は、匿名の組み合わせを使用しています。女性の構造は、匿名フィールド人が含まれ、そのプロパティの人は女のオブジェクトに属します。
メインパッケージ "FMT"輸入 のPerson構造体{入力 名の文字列 } 女性のstruct {タイプ のPerson セックスの文字列を } FUNCをメイン(){ 女性:=女性{人{ "wangwu"}、 "女"} fmt.Println(woman.name) fmt.Println(woman.sex) }
3.ポリモーフィック特性
メインパッケージ のインポート"FMT" 型イーターインターフェースを{ 食べる() } を入力マンのstruct { } 女性のstruct {入力 } {)(食べるFUNC(男性*マン) ( "人間は食べる")fmt.Printlnを } (女女性*)FUNCを(){食べる fmt.Println( "女が食べる") } メインFUNC(){ VAR電子イーター =女性{}:女性 男性:=マン{} E =&女性 e.Eat() E =&男 e.Eat() }
遂に
上記、ゴー言語オブジェクト指向の簡単なモーメントを置く方法を、実際には、JavaとC#のでも似ている、我々は実行を比較することができます。それは要約です:ゴーは、クラスが、疎結合のタイプ、インターフェイスのメソッドの実装を持っていません。