クラス定義とは? わかりやすく解説

クラス定義

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/08/02 08:13 UTC 版)

Objective-C」の記事における「クラス定義」の解説

Objective-Cクラスは定義部実装部に分かれており、通常義部.hファイル実装部を.mファイル記述する後述カテゴリによりクラス定義を複数パート分割できる。 // クラスの定義 (MyObject.h)@interface MyObject : NSObject{ int val; id obj;}+ (void)classMethod:(id)arg; // クラスメソッド- (id)method:(NSObject*)arg1 with:(int)arg2; // インスタンスメソッド。arg1は型付き@end // 実装 (MyObject.m)@implementation MyObject+ (void)classMethod:(id)arg{ // some operation}- (id)method:(NSObject*)arg1 with:(int)args2{ return obj;}// 典型的なinit- (id)init{ self = [super init]; // スーパークラス呼びだし if(self != nil) { val = 1; obj = [[SomeClass alloc] init]; } return self;}// deallocは自身リソース解放してからスーパークラスに回す- (void)dealloc{ [obj release]; [super dealloc];}@end メソッドにはクラスメソッドとインスタンスメソッドがあり、それぞれ接頭辞+及び-により区別される。クラスメソッドはクラスオブジェクト操作に、インスタンスメソッドはインスタンスオブジェクトの操作使用される。クラスメソッドは特にインスタンスオブジェクトの生成にも使用される事が多い。インスタンスメソッドは、インスタンスオブジェクトにメッセージ送信した際に起動され、クラスメソッドはクラスオブジェクトメッセージ送信した際に起動する。なお、インスタンスメソッドとクラスメソッドは全く同じ名前のセレクタ指定して定義できるいわゆるコンストラクタ存在しない慣習として新規オブジェクト生成は+allocで、初期化は-init行われるが、プログラマ自由に別の特殊化したメソッド定義することが可能であり、初期化中に別の初期化メソッド呼びだす場合もある。一方デストラクタファイナライザ)に相当するものは-dealloc、またはガベージコレクション使用時の-finalizeで、これらのメソッドオブジェクト破壊時に必ず呼び出されるself特殊な変数で、メソッド実行時自動的にレシーバ代入される。再代入も可能であり、-init等でスーパークラス実装自分自身初期化し正しい値が返った時の継続して初期化行なうなどに利用されるオブジェクトの型はオブジェクト特定のクラス制限したい時に用いられる。ただしこれはソースコードでのみ意味を持ち実行レベルでは全てidとして扱われる。また型付きオブジェクトインスタンス変数構造体互換アクセスできる。保護レベルpublicフリー)、protected継承クラスのみ)、private同一クラスのみ)があり、デフォルトprotectedである。ただメモリ管理一貫性などの理由から、ほとんどの場合アクセサ用いる。

※この「クラス定義」の解説は、「Objective-C」の解説の一部です。
「クラス定義」を含む「Objective-C」の記事については、「Objective-C」の概要を参照ください。


クラス定義

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/08/21 23:55 UTC 版)

Groovy」の記事における「クラス定義」の解説

Groovyコードはクラス定義中にある必要はなく、クラス定義の外側でのメソッドの定義や実行文の記述が可能である。 以下、ファイル名が HelloTest.groovy とする println "Hello, World!" すると、 class HelloTest { public HelloTest() { println "Hello, World!" } public static void main(String[] args) { new HelloTest() }} と同じ意味を持つ。

※この「クラス定義」の解説は、「Groovy」の解説の一部です。
「クラス定義」を含む「Groovy」の記事については、「Groovy」の概要を参照ください。


クラス定義

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/03/21 15:31 UTC 版)

関数プロトタイプ」の記事における「クラス定義」の解説

C++では、関数プロトタイプはクラス定義にも使われるクラス属すメンバー関数などの宣言(または定義)をクラス定義のブロック内に記述する必要がある。 #include class MyClass { std::string m_name;public: MyClass(); // デフォルトコンストラクタ宣言。 ~MyClass(); // デストラクタ宣言。 // メンバー関数の宣言std::string getName() const; void setName(const std::string& name);}; クラス定義のブロック内に直接実装記述したメンバー関数内部別のメンバー関数呼び出す場合は、前方宣言不要である。 #include class MyMath {public: static double calcLength(double x, double y) { return std::sqrt(calcLengthSq(x, y)); } static double calcLengthSq(double x, double y) { return x * x + y * y; }};

※この「クラス定義」の解説は、「関数プロトタイプ」の解説の一部です。
「クラス定義」を含む「関数プロトタイプ」の記事については、「関数プロトタイプ」の概要を参照ください。

ウィキペディア小見出し辞書の「クラス定義」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「クラス定義」の関連用語

クラス定義のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



クラス定義のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのObjective-C (改訂履歴)、Groovy (改訂履歴)、関数プロトタイプ (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS