「object」とは、英語の単語で、多様な意味を持つ。
一つ目の意味は「物体」で、具体的な存在を指す。
例えば、テーブルや椅子など、目に見えて触れることのできるもの全般を指す。
二つ目の意味は「目的」で、何かを達成するための目標を指す。
例えば、「The object of the game is to score the most points.」という文では、「ゲームの目的は最も点数を獲得することである」という意味になる。
また、プログラミングの世界では、「オブジェクト」とは特定のデータ構造と、そのデータに対する操作を一つにまとめたものを指す。
これらの意味は文脈により使い分けられる。
(2023年9月28日更新)
別表記:オブジェクト
一つ目は、目的語としての意味で、動詞に続く名詞や名詞句を指す。
二つ目は、反対するという意味で、ある事柄や意見に対して異議を唱えることを示す。
目的語としての「object」は、動詞のアクションが向かう対象をイメージすることで覚えやすい。
一方、反対するという意味の「object」は、自分の意見や立場を主張する際に使われることを思い出すことで記憶に定着させることができる。
これらの語源から、「object」は、何かに向かって投げられる対象や、反対する際に立ちはだかる障害物という意味が生まれた。
前者は名詞としての「object」であり、後者は動詞としての「object」である。
主語は文の主たる行為者であり、動詞のアクションを行うものを指す。
一方、目的語は動詞のアクションが向かう対象である。
「object」は、具体的な対象物や目的語を指すのに対して、「objective」は、達成すべき目標や目的を意味する。
この表現では、「object」は動詞として用いられ、反対する意味を持つ。
2. The teacher explained the object of the lesson.(先生はその授業の目的を説明した。)
3. She objects to smoking in public places.(彼女は公共の場での喫煙に反対する。)
4. The cat is chasing a moving object.(猫が動く物体を追いかけている。)
5. He couldn't find the object of his affection.(彼は自分の想いを寄せる対象を見つけられなかった。)
6. I object to working on weekends.(週末に働くことに反対する。)
7. The object of the game is to collect the most points.(そのゲームの目的は最も多くのポイントを集めることである。)
8. The subject and object of the sentence are clear.(その文の主語と目的語は明確である。)
9. She objects to the new policy.(彼女は新しい方針に反対する。)
10. The object of his research is to find a cure for the disease.(彼の研究の目的は、その病気の治療法を見つけることである。)(2023年4月14日更新)
一つ目の意味は「物体」で、具体的な存在を指す。
例えば、テーブルや椅子など、目に見えて触れることのできるもの全般を指す。
二つ目の意味は「目的」で、何かを達成するための目標を指す。
例えば、「The object of the game is to score the most points.」という文では、「ゲームの目的は最も点数を獲得することである」という意味になる。
また、プログラミングの世界では、「オブジェクト」とは特定のデータ構造と、そのデータに対する操作を一つにまとめたものを指す。
これらの意味は文脈により使い分けられる。
(2023年9月28日更新)
別表記:オブジェクト
「object」の基本的な意味
「object」には、主に二つの意味がある。一つ目は、目的語としての意味で、動詞に続く名詞や名詞句を指す。
二つ目は、反対するという意味で、ある事柄や意見に対して異議を唱えることを示す。
「object」の覚え方
「object」を覚える際には、二つの意味をそれぞれ別々に記憶することが効果的である。目的語としての「object」は、動詞のアクションが向かう対象をイメージすることで覚えやすい。
一方、反対するという意味の「object」は、自分の意見や立場を主張する際に使われることを思い出すことで記憶に定着させることができる。
「object」の語源
「object」の語源は、ラテン語の「ob-」(向かって)と「iacere」(投げる)から成る。これらの語源から、「object」は、何かに向かって投げられる対象や、反対する際に立ちはだかる障害物という意味が生まれた。
「object」の発音・読み方
「object」の発音は、アクセントが第一音節にある場合は /ɑ́bdʒekt/、第二音節にある場合は /əbdʒékt/ となる。前者は名詞としての「object」であり、後者は動詞としての「object」である。
「object」と「subject」の違い
「object」と「subject」は、共に文法用語であり、それぞれ目的語と主語を意味する。主語は文の主たる行為者であり、動詞のアクションを行うものを指す。
一方、目的語は動詞のアクションが向かう対象である。
「object」と「objective」の違い
「object」と「objective」は、目的や目標を意味する点で類似しているが、ニュアンスが異なる。「object」は、具体的な対象物や目的語を指すのに対して、「objective」は、達成すべき目標や目的を意味する。
「object」を含む英熟語・英語表現
「object to doing」とは
「object to doing」は、「~することに反対する」という意味の表現である。この表現では、「object」は動詞として用いられ、反対する意味を持つ。
「object」の使い方・例文
1. I gave her an object.(彼女に物を渡した。)2. The teacher explained the object of the lesson.(先生はその授業の目的を説明した。)
3. She objects to smoking in public places.(彼女は公共の場での喫煙に反対する。)
4. The cat is chasing a moving object.(猫が動く物体を追いかけている。)
5. He couldn't find the object of his affection.(彼は自分の想いを寄せる対象を見つけられなかった。)
6. I object to working on weekends.(週末に働くことに反対する。)
7. The object of the game is to collect the most points.(そのゲームの目的は最も多くのポイントを集めることである。)
8. The subject and object of the sentence are clear.(その文の主語と目的語は明確である。)
9. She objects to the new policy.(彼女は新しい方針に反対する。)
10. The object of his research is to find a cure for the disease.(彼の研究の目的は、その病気の治療法を見つけることである。)(2023年4月14日更新)
読み方:おぶじぇくと
1 対象。
客観。
客体。
→サブジェクト
2 文法で、目的語。
→サブジェクト
「オブジェクト」に似た言葉
» 類語の一覧を見る
客語目的語
読み方:おー
1 英語のアルファベットの第15字。
2 〈O〉ABO式血液型のO型。
→A →B
3 〈O〉《oxygen》酸素の元素記号。
4 〈O〉《origin》数学で、座標軸の原点を表す記号。
5 〈O〉《object》英文法などで、目的語を示す符号。
→S →V →C
「オー」に似た言葉
» 類語の一覧を見る
ウオーワーウラーエイエイオー
1 対象。
客観。
客体。
→サブジェクト
2 文法で、目的語。
→サブジェクト
「オブジェクト」に似た言葉
» 類語の一覧を見る
客語目的語
読み方:おー
1 英語のアルファベットの第15字。
2 〈O〉ABO式血液型のO型。
→A →B
3 〈O〉《oxygen》酸素の元素記号。
4 〈O〉《origin》数学で、座標軸の原点を表す記号。
5 〈O〉《object》英文法などで、目的語を示す符号。
→S →V →C
「オー」に似た言葉
» 類語の一覧を見る
ウオーワーウラーエイエイオー
【英】object
オブジェクトとは、操作の対象となっているデータ、または、オブジェクト指向の考え方においてプログラムが扱う対象のことである。
オブジェクトは、いわゆる「物体」や「対象」といった意味であるが、現実の世界に存在する事象や概念を指す場合もあるし、そうした事象や概念をモデルとして再現したものや、さらには現実世界には存在せずにモデル上のみに存在する何物かを指すこともある。
Microsoft Officeのアプリケーションでは、文書に挿入できる図表やワードアートなどがオブジェクトと呼ばれている。
しかしIT用語としてオブジェクトと言った場合には、オブジェクト指向、とりわけオブジェクト指向プログラミングについて言及されていることがほとんどである。
オブジェクト指向プログラミングにおけるオブジェクトとは、データ(属性)と機能(手続き)をひとかたまりにした実体のことである。
オブジェクトは、集合としての実体である「クラス」と、個としての実体である「インスタンス」という形で捉えることができる。
オブジェクト指向プログラミングでは、既存のオブジェクトを再利用したり、新たに作成したオブジェクトを組み合わせて、オブジェクト間でメッセージ(情報)をやり取りすることで処理を実行させる。
オブジェクトを利用して形でプログラムを作成していくことで、プログラマは個々のオブジェクトの内部構造や動作原理の詳細を知らなくても、その機能を利用できる。
同時に、プログラムの再利用が容易になるため、ソフトウェア開発の生産性も飛躍的に向上するといわれている。
なお、オブジェクトやクラス、インスタンスの概念や定義は、オブジェクト指向言語の種類によってニュアンスが異なっていることがあり、必ずしも定説になっているとは限らないため、注意を要する。
パソコン向けのオペレーティングシステム(OS)の世界では、IBMのOS/2でオブジェクトの概念がいち早く導入され、アイコン、フォルダ、データファイル、デバイス、ウィンドウ、プログラムなど、ユーザの操作対象となるものがすべてオブジェクトとして扱われた。
OS/2のGUIは、当時の競合であったWindows 95やMac OSと見かけ上の大きな違いはなかったが、内部的には、オブジェクト指向によってユーザーが容易にカスタマイズできるという特徴を備えていた。
オブジェクトとは、操作の対象となっているデータ、または、オブジェクト指向の考え方においてプログラムが扱う対象のことである。
オブジェクトは、いわゆる「物体」や「対象」といった意味であるが、現実の世界に存在する事象や概念を指す場合もあるし、そうした事象や概念をモデルとして再現したものや、さらには現実世界には存在せずにモデル上のみに存在する何物かを指すこともある。
Microsoft Officeのアプリケーションでは、文書に挿入できる図表やワードアートなどがオブジェクトと呼ばれている。
しかしIT用語としてオブジェクトと言った場合には、オブジェクト指向、とりわけオブジェクト指向プログラミングについて言及されていることがほとんどである。
オブジェクト指向プログラミングにおけるオブジェクトとは、データ(属性)と機能(手続き)をひとかたまりにした実体のことである。
オブジェクトは、集合としての実体である「クラス」と、個としての実体である「インスタンス」という形で捉えることができる。
オブジェクト指向プログラミングでは、既存のオブジェクトを再利用したり、新たに作成したオブジェクトを組み合わせて、オブジェクト間でメッセージ(情報)をやり取りすることで処理を実行させる。
オブジェクトを利用して形でプログラムを作成していくことで、プログラマは個々のオブジェクトの内部構造や動作原理の詳細を知らなくても、その機能を利用できる。
同時に、プログラムの再利用が容易になるため、ソフトウェア開発の生産性も飛躍的に向上するといわれている。
なお、オブジェクトやクラス、インスタンスの概念や定義は、オブジェクト指向言語の種類によってニュアンスが異なっていることがあり、必ずしも定説になっているとは限らないため、注意を要する。
パソコン向けのオペレーティングシステム(OS)の世界では、IBMのOS/2でオブジェクトの概念がいち早く導入され、アイコン、フォルダ、データファイル、デバイス、ウィンドウ、プログラムなど、ユーザの操作対象となるものがすべてオブジェクトとして扱われた。
OS/2のGUIは、当時の競合であったWindows 95やMac OSと見かけ上の大きな違いはなかったが、内部的には、オブジェクト指向によってユーザーが容易にカスタマイズできるという特徴を備えていた。
HTML仕様: HTML4.01非推奨
適応要素 :applet
アプレットの名前を指定してページに読み込ませる属性。
非推奨とされています。
機能と値 | HTML * | Windows | Macintosh |
・テキスト: アプレット名を指定する | ▽ | IE3,4,5,5.5,6 NS4,6 | IE3,4,4.5 NS4,6 |
適応要素 :applet
アプレットの名前を指定してページに読み込ませる属性。
非推奨とされています。
※ HTMLの表記
◎: HTML4.01Strictで定義されている必須の属性と値
○: HTML4.01Strictで定義されている属性と値
▽: HTML4.01Transitionalの属性と値(非推奨)
HTML仕様 : HTML4.01Strict
属性の機能と値 | DTD ※ | |
data | URI : オブジェクトとして配置するデータの URI を指定する | ○ |
classid | URI : Java VM や各種プラグインの実行プログラムの URI を指定する | ○ |
archive | URI : オブジェクトに関連するファイルの URI を指定する | ○ |
codebase | URI : archive属性で使用されている相対パスの基準となる URI を指定 | ○ |
type | MIMEタイプ: data属性で指定されるデータの MIMEタイプを指定 | ○ |
codetype | MIMEタイプ: classid属性で指定される実行プログラムの MIMEタイプを指定 | ○ |
declare | 属性値なし: オブジェクトの宣言のみでプログラムを実行しないように設定 | ○ |
standby | オブジェクトのダウンロード中に表示させる文字を指定 | ○ |
tabindex | 数字: Tabキーによる移動の順序を指定 | ○ |
usemap | URI : map要素で定義されるイマージマップの URI を指定 | ○ |
name | 名前: オブジェクトの名前を指定する | ○ |
width | ピクセル: オブジェクトの横幅を指定する | ○ |
height | ピクセル: オブジェクトの高さを指定する | ○ |
align | 位置: オブジェクトと文字との位置関係を指定する | ▽ |
top オブジェクトと上と文字の上を揃える | ||
middle オブジェクトの中心に文字のベースラインを揃える | ||
bottom オブジェクトの下に文字のベースラインを揃える | ||
left オブジェクトを左に配置し、右側に文字が回りこむ | ||
right オブジェクトを右に配置し、左側に文字が回りこむ | ||
border | ピクセル: オブジェクトの枠線の太さを指定する | ▽ |
hspace | ピクセル: オブジェクトの左右の余白を指定する | ○ |
vspace | ピクセル: ;オブジェクトの上下の余白を指定する | ▽ |
汎用属性 | id、class、lang、title、style属性など | ○ |
object要素は、画像、アプレット、動画、他のHTML文書などさまざまなデータや外部アプリケーションをHTML文書に埋め込むという汎用的な性質を持っています。
つまり、img、applet 等これまでの別々の要素で扱われていたデータを、一括して同じタグで処理しようとするものです。
そのため、データ形式に応じて様々な属性が定義されていますが、実際のところブラウザ側では、あまり対応がなされていないのが現状で、こうした現実には驚くばかりです。
また、head要素 内での使用も可能ですが、Webブラウザ上に表示しないものに限られます。
classid属性と data属性で実行パラメータを引き渡すことの動作保証はされないため、param要素 で指定することが推奨されています。
下記のHTMLコードはFLASHのオブジェクトを示したものです。
(参考までに記述)<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=3,0,0,0"height=330><param name=movie value="sample.swf"><param name=quality value=high><param name=bgcolor value=#ffffff></object>
※ DTDの表記
◎: HTML4.01Strictで定義されている必須の属性と値
○: HTML4.01Strictで定義されている属性と値
▽: HTML4.01Transitionalの属性と値(非推奨)
.NET Framework クラス階層のすべてのクラスをサポートし、派生クラスに下位レベルのサービスを提供します。
これは、.NET Framework の全クラスの基本クラスであり、型階層のルートです。
名前空間: System
アセンブリ: mscorlib (mscorlib.dll 内)
構文
Visual Basic (宣言)
<SerializableAttribute> _<ComVisibleAttribute(True)> _<ClassInterfaceAttribute(ClassInterfaceType.AutoDual)> _Public Class Object
Visual Basic (使用法)
Dim instance As Object
C#
[SerializableAttribute] [ComVisibleAttribute(true)] [ClassInterfaceAttribute(ClassInterfaceType.AutoDual)] public class Object
C++
[SerializableAttribute] [ComVisibleAttribute(true)] [ClassInterfaceAttribute(ClassInterfaceType::AutoDual)] public ref class Object
J#
/** @attribute SerializableAttribute() */ /** @attribute ComVisibleAttribute(true) */ /** @attribute ClassInterfaceAttribute(ClassInterfaceType.AutoDual) */ public class Object
JScript
SerializableAttribute ComVisibleAttribute(true) ClassInterfaceAttribute(ClassInterfaceType.AutoDual) public class Object
解説
通常、各言語では、クラスの Object の継承を宣言する必要はありません。
継承が暗黙的であるためです。
.NET Framework では、すべてのクラスが Object から派生するため、システム内のオブジェクトは、Object クラスで定義されているすべてのメソッドを使用できます。
派生クラスでは、これらのメソッドのうち、次のメソッドをオーバーライドできます。
・
Equals - オブジェクトを比較します。
・
Finalize - オブジェクトが自動的に収集される前に、クリーンアップ操作を実行します。
・
GetHashCode - ハッシュ テーブルを使用できるようにするため、オブジェクトの値に対応する番号を生成します。
・
ToString - クラスのインスタンスの説明テキスト文字列をユーザーが判読できる形で生成します。
パフォーマンスに関する考慮事項
オブジェクトの任意の型を処理する必要のあるクラス (コレクションなど) をデザインする場合、Object クラスのインスタンスを受け入れるクラス メンバを作成できます。
ただし、型のボックス化およびボックス化解除のプロセスによって、パフォーマンス コストが発生します。
新しいクラスで特定の値型を頻繁に処理することがわかっている場合は、次の 2 つの方法のいずれかを使用することで、ボックス化のコストを最小限に抑えることができます。
1 つ目の方法は、Object 型を受け入れる一般的なメソッドと、クラスで頻繁に処理することが予想される各値型を受け入れる、型固有の一連のメソッド オーバーロードを作成することです。
呼び出し元のパラメータ型を受け入れる型固有のメソッドが存在する場合、ボックス化は発生せず、その型固有のメソッドが呼び出されます。
呼び出し元のパラメータ型に一致するメソッドの引数がない場合には、パラメータはボックス化され、一般的なメソッドが呼び出されます。
この方法では、CLS 準拠のメソッドが生成されます。
もう 1 つの方法は、ジェネリックを使用するようにクラスとそのメソッドをデザインすることです。
クラスのインスタンスを作成し、ジェネリック型の引数を指定すると、共通言語ランタイムによってクローズ ジェネリック型が作成されます。
ジェネリック メソッドは型固有のメソッドであるため、呼び出しパラメータをボックス化せずに呼び出すことができます。
この方法では、.NET Framework Version 2.0 の CLS に準拠しないメソッドが生成されます。
使用例
Object クラスから派生した Point 型を定義し、Object クラスの仮想メソッドの多くをオーバーライドする例を次に示します。
また、この例は、Object クラスの多数の静的メソッドとインスタンス メソッドを呼び出す方法も示しています。
C#
using System;// The Point class is derived from System.Object.class Point { public int x, y; public Point(int x, int y) { this.x = x; this.y = y; } public override bool Equals(object obj) { // If this and obj do not refer to the same type, then they are not equal. if (obj.GetType() != this.GetType()) return false; // Return true if x and y fields match. Point other = (Point) obj; return (this.x == other.x) && (this.y == other.y); } // Return the XOR of the x and y fields. public override int GetHashCode() { return x ^ y; } // Return the point's value as a string. public override String ToString() { return String.Format("({0}, {1})", x, y); } // Return a copy of this point object by making a simple field copy. public Point Copy() { return (Point) this.MemberwiseClone(); }}public sealed class App { static void Main() { // Construct a Point object. Point p1 = new Point(1,2); // Make another Point object that is a copy of the first. Point p2 = p1.Copy(); // Make another variable that references the first Point object. Point p3 = p1; // The line below displays false because p1 and p2 refer to two different objects. Console.WriteLine(Object.ReferenceEquals(p1, p2)); // The line below displays true because p1 and p2 refer to two different objects that have the same value. Console.WriteLine(Object.Equals(p1, p2)); // The line below displays true because p1 and p3 refer to one object. Console.WriteLine(Object.ReferenceEquals(p1, p3)); // The line below displays: p1's value is: (1, 2) Console.WriteLine("p1's value is: {0}", p1.ToString()); }}// This code produces the following output.//// False// True// True// p1's value is: (1, 2)
C++
using namespace System;// The Point class is derived from System.Object.ref class Point{public: int x;public: int y;public: Point(int x, int y) { this->x = x; this->y = y; }public: virtual bool Equals(Object^ obj) override { // If this and obj do not refer to the same type, // then they are not equal. if (obj->GetType() != this->GetType()) { return false; } // Return true if x and y fields match. Point^ other = (Point^) obj; return (this->x == other->x) && (this->y == other->y); } // Return the XOR of the x and y fields.public: virtual int GetHashCode() override { return x ^ y; } // Return the point's value as a string.public: virtual String^ ToString() override { return String::Format("({0}, {1})", x, y); } // Return a copy of this point object by making a simple // field copy.public: Point^ Copy() { return (Point^) this->MemberwiseClone(); }};int main(){ // Construct a Point object. Point^ p1 = gcnew Point(1, 2); // Make another Point object that is a copy of the first. Point^ p2 = p1->Copy(); // Make another variable that references the first // Point object. Point^ p3 = p1; // The line below displays false because p1 and // p2 refer to two different objects. Console::WriteLine( Object::ReferenceEquals(p1, p2)); // The line below displays true because p1 and p2 refer // to two different objects that have the same value. Console::WriteLine(Object::Equals(p1, p2)); // The line below displays true because p1 and // p3 refer to one object. Console::WriteLine(Object::ReferenceEquals(p1, p3)); // The line below displays: p1's value is: (1, 2) Console::WriteLine("p1's value is: {0}", p1->ToString());}// This code produces the following output.//// False// True// True// p1's value is: (1, 2)
継承階層
System.Object
派生クラス
スレッド セーフ
この型の public static (Visual Basic では Shared) メンバは、マルチスレッド操作に対して安全です。
インスタンス メンバがスレッド セーフになるかどうかは保証されていません。
プラットフォーム
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。
サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
.NET Framework
サポート対象 : 2.0、1.1、1.0
.NET Compact Framework
サポート対象 : 2.0、1.0
参照
関連項目
Object メンバ
System 名前空間
Object クラスの新しいインスタンスを初期化します。
名前空間: System
アセンブリ: mscorlib (mscorlib.dll 内)
構文
Visual Basic (宣言)
Public Sub New
Visual Basic (使用法)
Dim instance As New Object
C#
public Object ()
C++
public:Object ()
J#
public Object ()
JScript
public function Object ()
解説
このコンストラクタは、派生クラスのコンストラクタにより呼び出されます。
このコンストラクタを使用して Object クラスのインスタンスを直接作成することもできます。
プラットフォーム
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。
サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
.NET Framework
サポート対象 : 2.0、1.1、1.0
.NET Compact Framework
サポート対象 : 2.0、1.0
参照
関連項目
Object クラス
Object メンバ
System 名前空間
パブリック メソッド
( プロテクト メソッド も参照)
プロテクト メソッド
参照
System 名前空間
.NET Framework クラス階層のすべてのクラスをサポートし、派生クラスに下位レベルのサービスを提供します。
これは、.NET Framework の全クラスの基本クラスであり、型階層のルートです。
Object データ型で公開されるメンバを以下の表に示します。
パブリック コンストラクタ
パブリック メソッド
( プロテクト メソッド も参照)
プロテクト メソッド
参照
System 名前空間
これは、.NET Framework の全クラスの基本クラスであり、型階層のルートです。
名前空間: System
アセンブリ: mscorlib (mscorlib.dll 内)
構文
Visual Basic (宣言)
<SerializableAttribute> _<ComVisibleAttribute(True)> _<ClassInterfaceAttribute(ClassInterfaceType.AutoDual)> _Public Class Object
Visual Basic (使用法)
Dim instance As Object
C#
[SerializableAttribute] [ComVisibleAttribute(true)] [ClassInterfaceAttribute(ClassInterfaceType.AutoDual)] public class Object
C++
[SerializableAttribute] [ComVisibleAttribute(true)] [ClassInterfaceAttribute(ClassInterfaceType::AutoDual)] public ref class Object
J#
/** @attribute SerializableAttribute() */ /** @attribute ComVisibleAttribute(true) */ /** @attribute ClassInterfaceAttribute(ClassInterfaceType.AutoDual) */ public class Object
JScript
SerializableAttribute ComVisibleAttribute(true) ClassInterfaceAttribute(ClassInterfaceType.AutoDual) public class Object
解説
通常、各言語では、クラスの Object の継承を宣言する必要はありません。
継承が暗黙的であるためです。
.NET Framework では、すべてのクラスが Object から派生するため、システム内のオブジェクトは、Object クラスで定義されているすべてのメソッドを使用できます。
派生クラスでは、これらのメソッドのうち、次のメソッドをオーバーライドできます。
・
Equals - オブジェクトを比較します。
・
Finalize - オブジェクトが自動的に収集される前に、クリーンアップ操作を実行します。
・
GetHashCode - ハッシュ テーブルを使用できるようにするため、オブジェクトの値に対応する番号を生成します。
・
ToString - クラスのインスタンスの説明テキスト文字列をユーザーが判読できる形で生成します。
パフォーマンスに関する考慮事項
オブジェクトの任意の型を処理する必要のあるクラス (コレクションなど) をデザインする場合、Object クラスのインスタンスを受け入れるクラス メンバを作成できます。
ただし、型のボックス化およびボックス化解除のプロセスによって、パフォーマンス コストが発生します。
新しいクラスで特定の値型を頻繁に処理することがわかっている場合は、次の 2 つの方法のいずれかを使用することで、ボックス化のコストを最小限に抑えることができます。
1 つ目の方法は、Object 型を受け入れる一般的なメソッドと、クラスで頻繁に処理することが予想される各値型を受け入れる、型固有の一連のメソッド オーバーロードを作成することです。
呼び出し元のパラメータ型を受け入れる型固有のメソッドが存在する場合、ボックス化は発生せず、その型固有のメソッドが呼び出されます。
呼び出し元のパラメータ型に一致するメソッドの引数がない場合には、パラメータはボックス化され、一般的なメソッドが呼び出されます。
この方法では、CLS 準拠のメソッドが生成されます。
もう 1 つの方法は、ジェネリックを使用するようにクラスとそのメソッドをデザインすることです。
クラスのインスタンスを作成し、ジェネリック型の引数を指定すると、共通言語ランタイムによってクローズ ジェネリック型が作成されます。
ジェネリック メソッドは型固有のメソッドであるため、呼び出しパラメータをボックス化せずに呼び出すことができます。
この方法では、.NET Framework Version 2.0 の CLS に準拠しないメソッドが生成されます。
使用例
Object クラスから派生した Point 型を定義し、Object クラスの仮想メソッドの多くをオーバーライドする例を次に示します。
また、この例は、Object クラスの多数の静的メソッドとインスタンス メソッドを呼び出す方法も示しています。
C#
using System;// The Point class is derived from System.Object.class Point { public int x, y; public Point(int x, int y) { this.x = x; this.y = y; } public override bool Equals(object obj) { // If this and obj do not refer to the same type, then they are not equal. if (obj.GetType() != this.GetType()) return false; // Return true if x and y fields match. Point other = (Point) obj; return (this.x == other.x) && (this.y == other.y); } // Return the XOR of the x and y fields. public override int GetHashCode() { return x ^ y; } // Return the point's value as a string. public override String ToString() { return String.Format("({0}, {1})", x, y); } // Return a copy of this point object by making a simple field copy. public Point Copy() { return (Point) this.MemberwiseClone(); }}public sealed class App { static void Main() { // Construct a Point object. Point p1 = new Point(1,2); // Make another Point object that is a copy of the first. Point p2 = p1.Copy(); // Make another variable that references the first Point object. Point p3 = p1; // The line below displays false because p1 and p2 refer to two different objects. Console.WriteLine(Object.ReferenceEquals(p1, p2)); // The line below displays true because p1 and p2 refer to two different objects that have the same value. Console.WriteLine(Object.Equals(p1, p2)); // The line below displays true because p1 and p3 refer to one object. Console.WriteLine(Object.ReferenceEquals(p1, p3)); // The line below displays: p1's value is: (1, 2) Console.WriteLine("p1's value is: {0}", p1.ToString()); }}// This code produces the following output.//// False// True// True// p1's value is: (1, 2)
C++
using namespace System;// The Point class is derived from System.Object.ref class Point{public: int x;public: int y;public: Point(int x, int y) { this->x = x; this->y = y; }public: virtual bool Equals(Object^ obj) override { // If this and obj do not refer to the same type, // then they are not equal. if (obj->GetType() != this->GetType()) { return false; } // Return true if x and y fields match. Point^ other = (Point^) obj; return (this->x == other->x) && (this->y == other->y); } // Return the XOR of the x and y fields.public: virtual int GetHashCode() override { return x ^ y; } // Return the point's value as a string.public: virtual String^ ToString() override { return String::Format("({0}, {1})", x, y); } // Return a copy of this point object by making a simple // field copy.public: Point^ Copy() { return (Point^) this->MemberwiseClone(); }};int main(){ // Construct a Point object. Point^ p1 = gcnew Point(1, 2); // Make another Point object that is a copy of the first. Point^ p2 = p1->Copy(); // Make another variable that references the first // Point object. Point^ p3 = p1; // The line below displays false because p1 and // p2 refer to two different objects. Console::WriteLine( Object::ReferenceEquals(p1, p2)); // The line below displays true because p1 and p2 refer // to two different objects that have the same value. Console::WriteLine(Object::Equals(p1, p2)); // The line below displays true because p1 and // p3 refer to one object. Console::WriteLine(Object::ReferenceEquals(p1, p3)); // The line below displays: p1's value is: (1, 2) Console::WriteLine("p1's value is: {0}", p1->ToString());}// This code produces the following output.//// False// True// True// p1's value is: (1, 2)
継承階層
System.Object
派生クラス
スレッド セーフ
この型の public static (Visual Basic では Shared) メンバは、マルチスレッド操作に対して安全です。
インスタンス メンバがスレッド セーフになるかどうかは保証されていません。
プラットフォーム
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。
サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
.NET Framework
サポート対象 : 2.0、1.1、1.0
.NET Compact Framework
サポート対象 : 2.0、1.0
参照
関連項目
Object メンバ
System 名前空間
Object クラスの新しいインスタンスを初期化します。
名前空間: System
アセンブリ: mscorlib (mscorlib.dll 内)
構文
Visual Basic (宣言)
Public Sub New
Visual Basic (使用法)
Dim instance As New Object
C#
public Object ()
C++
public:Object ()
J#
public Object ()
JScript
public function Object ()
解説
このコンストラクタは、派生クラスのコンストラクタにより呼び出されます。
このコンストラクタを使用して Object クラスのインスタンスを直接作成することもできます。
プラットフォーム
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。
サポートされているバージョンについては、「システム要件」を参照してください。
バージョン情報
.NET Framework
サポート対象 : 2.0、1.1、1.0
.NET Compact Framework
サポート対象 : 2.0、1.0
参照
関連項目
Object クラス
Object メンバ
System 名前空間
パブリック メソッド
( プロテクト メソッド も参照)
名前 | 説明 | |
---|---|---|
Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 | |
GetHashCode | 特定の型のハッシュ関数として機能します。 GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 | |
GetType | 現在のインスタンスの Type を取得します。 | |
ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 | |
ToString | 現在の Object を表す String を返します。 |
プロテクト メソッド
名前 | 説明 | |
---|---|---|
Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 | |
MemberwiseClone | 現在の Object の簡易コピーを作成します。 |
参照
関連項目
Object クラスSystem 名前空間
.NET Framework クラス階層のすべてのクラスをサポートし、派生クラスに下位レベルのサービスを提供します。
これは、.NET Framework の全クラスの基本クラスであり、型階層のルートです。
Object データ型で公開されるメンバを以下の表に示します。
パブリック コンストラクタ
名前 | 説明 | |
---|---|---|
Object | Object クラスの新しいインスタンスを初期化します。 |
パブリック メソッド
( プロテクト メソッド も参照)
名前 | 説明 | |
---|---|---|
Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 | |
GetHashCode | 特定の型のハッシュ関数として機能します。 GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 | |
GetType | 現在のインスタンスの Type を取得します。 | |
ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 | |
ToString | 現在の Object を表す String を返します。 |
プロテクト メソッド
名前 | 説明 | |
---|---|---|
Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 | |
MemberwiseClone | 現在の Object の簡易コピーを作成します。 |
参照
関連項目
Object クラスSystem 名前空間
英語 object
3次元モデルの作成に必要なすべての形状要素をいう。
線、面、それを構成する自由曲線など。
カーデザインモデリングではコンピユーター内のモデルデータ量も大きくなるため、通常モデリング作業をしやすくするレイヤー機能を使う。
※「大車林」の内容は、発行日である2004年時点の情報となっております。
3次元モデルの作成に必要なすべての形状要素をいう。
線、面、それを構成する自由曲線など。
カーデザインモデリングではコンピユーター内のモデルデータ量も大きくなるため、通常モデリング作業をしやすくするレイヤー機能を使う。
※「大車林」の内容は、発行日である2004年時点の情報となっております。
ウィクショナリーに関連の辞書項目があります。オブジェクト
オブジェクト (Object)
・「物体」のこと。
・転じて、3DCGソフトウェア等で、空間に配置される各物体のこと。
・「対象」のこと。
・「客体」のこと。
・「目的語」のこと。
・オブジェクト (プログラミング) - プログラミングにおいて、プログラム上の手続きの対象を抽象化する概念。
・オブジェクトファイル - ソースコードをコンパイルしたときに、コンパイラが生成するファイル。
・オブジェクト (芸能事務所) - 東京都渋谷区富ヶ谷に所在する声優事務所。
・ヘヴィーオブジェクト - 鎌池和馬原作のライトノベル。
・オブイェークト(Объект) - ソビエト連邦・ロシアの試作型戦車に対する便宜的呼称。
英語のObjectに相当。
このページは曖昧さ回避のためのページです。
一つの語句が複数の意味・職能を有する場合の水先案内のために、異なる用法を一覧にしてあります。
お探しの用語に一番近い記事を選んで下さい。このページへリンクしているページを見つけたら、リンクを適切な項目に張り替えて下さい。
(出典:Wikipedia 2023/06/13 09:23 UTC 版)
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/06/18 17:03 UTC 版)
「HTML要素」の記事における「object」の解説
埋め込みオブジェクト (generic embedded object) であることを示す。
大抵の場合はインライン要素として使用する。
data属性にURI、type属性にMIMEタイプ(image/gif等)を指定することでFLASHや音楽など様々な種類のオブジェクトを出力する事ができる。
※この「object」の解説は、「HTML要素」の解説の一部です。
「object」を含む「HTML要素」の記事については、「HTML要素」の概要を参照ください。
ウィキペディア小見出し辞書の「object 」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。
ご了承くださいませ。
お問い合わせ。
「HTML要素」の記事における「object」の解説
埋め込みオブジェクト (generic embedded object) であることを示す。
大抵の場合はインライン要素として使用する。
data属性にURI、type属性にMIMEタイプ(image/gif等)を指定することでFLASHや音楽など様々な種類のオブジェクトを出力する事ができる。
※この「object」の解説は、「HTML要素」の解説の一部です。
「object」を含む「HTML要素」の記事については、「HTML要素」の概要を参照ください。
ウィキペディア小見出し辞書の「object 」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。
ご了承くださいませ。
お問い合わせ。