SlideShare a Scribd company logo
Javaオブジェクト 
システム 
艾迪 
開発室 
2014/10/21 
ⓒ 2013 LINE CORPORATION
1 
宿題内容 
1. Javaのオブジェクトシステムのインスタンス、クラス、 
スーパークラス、それぞれがなにへのポインタを保持 
しているか 
2. Classクラス、Objectクラス、Object インスタンスの関 
係 
?
2 
発表の流れ 
• キーワードの定義 
• 宿題の答え 
• プログラムによる検証
3 
キーワード 
クラス 
オブジェクト 
クラスオブジェクト 
インスタンス
4 
クラス、オブジェクトについて 
〇〇クラス 
クラス(型)を定義しているもの(概念)。 
オブジェクト 
メモリ上存在する対象、プログラムが参照できるもの。 
クラスオブジェクトとインスタンスオブジェクトの総称
5 
クラスオブジェクト、インスタンスについて 
クラスがメモリ上存在する実体(entity)。 
クラスオブジェクト自体の型はjava.lang.Class。 
 Class<T>はTクラスオブジェクトと言える。 
.class 
インスタンス 
(オブジェクト) 
〇〇クラス 
オブジェクト 
クラスからオブジェクトに変換(.class)する 
Class<ClassA> clzobj = ClassA.class; 
new X()する時、生成したX型の実例、必ずメモリ上 
にも生成されるので、直接インスタンスと言いって 
誤解はない。
6 
例で言うと 
public class ClassA(){ 
} 
Class<ClassA> clzobj = ClassA.class; 
ClassA newclassA = new ClassA(); 
• ClassAはクラス。 
• clzobjはClassAのクラスオブジェクト、それ自体は 
Class型のオブジェクト、名前はClassA。 
• newclassAはClassAのインスタンス。
Javaのオブジェクトシステムのインスタンス、クラス、 
スーパークラス、それぞれがなにへのポインタを保 
持しているか 
7 
宿題1 
?
8 
Java stack Java heap 
int 
reference 
int 
double 
class object pointer 
Instance(entity) 
Method Area 
class object 
(entity) 
オブジェクトへのアクセス 
static変数はPermanent Areaで管理されます
9 
Objectインスタンス中のポインター 
(java.lang.Object) 
entity(superclass) 
Objectの場合は 
NULL
10 
クラス 
宿題2 
Classクラス、Objectクラス、 
Object インスタンスの関係 
クラスオブジェクトインスタンス
11 
java.lang.Class 
java.lang.Object 
ClassクラスとObjectクラス 
クラスを表現するためのクラスであり、クラスの情報にアクセスし 
たり、操作したりするためのクラスです。いわゆるメタクラスです。 
すべてのJavaオブジェクトのルートクラスです。
12 
Meta-Class 
java.lang.Class 
オブジェクト 
MyClass 
.class 
getClass() 
java.lang.Object 
.class 
MyClass 
オブジェク 
ト 
.class 
java.lang.Class 
new 
new 
java.lang.Object 
オブジェク 
ト 
getClass() getClass() 
オブジェクト 
newInstance 
getClass() 
クラス、クラスオブジェクト、インスタンスの関係 
myclass 
instance 
myclass 
instance 
myclass 
instance
13 
まとめ 
対応new 
newInstance() 
getClass()

More Related Content

PDF
Objc04
PDF
(Pythonで作って学ぶ) Youtube の動画リストを作るアプリの開発 
第2回
PPTX
第七回 渋谷Java - Apache Shiroを使ってみた
PPTX
Java hotspot vmに おけるGCの振る舞い
PPTX
第九回渋谷Java RaspberryPi+Javaを試してみる
PDF
Antifragile Clojure
PDF
なぜデータモデリングが重要なのか?
PPTX
Javascript3
Objc04
(Pythonで作って学ぶ) Youtube の動画リストを作るアプリの開発 
第2回
第七回 渋谷Java - Apache Shiroを使ってみた
Java hotspot vmに おけるGCの振る舞い
第九回渋谷Java RaspberryPi+Javaを試してみる
Antifragile Clojure
なぜデータモデリングが重要なのか?
Javascript3

Similar to javaオブジェクトシステム (8)

PDF
Webの勉強会#9
PDF
早稲田大学授業 - Java Programing上級
PDF
第7回 Linked Data 勉強会 @yayamamo
PDF
2019年度 若手技術者向け講座 オブジェクト指向
PDF
~PHPで学ぶ~ オブジェクト指向プログラミング
PDF
関西CVPRML 2011.8.27
PPT
"Problem Frame Patterns" 紹介
Webの勉強会#9
早稲田大学授業 - Java Programing上級
第7回 Linked Data 勉強会 @yayamamo
2019年度 若手技術者向け講座 オブジェクト指向
~PHPで学ぶ~ オブジェクト指向プログラミング
関西CVPRML 2011.8.27
"Problem Frame Patterns" 紹介
Ad

javaオブジェクトシステム

Editor's Notes

  • #4: まずはいくつかの概念をキーワードで定義する。混乱しないよう
  • #7: 一つのクラス(型)は唯一のクラスオブジェクトと対応しています Javaで引数を渡す時、オブジェクトしか受け取れないので、 型の引き渡しをする時に、 インスタンスオブジェクトはメモリ上しか存在しないものだから、オブジェクト省略して、インスタンスとして呼べます。
  • #11: vtableは
  • #14: 自分なりにクラス、クラスオブジェクトそしてインスタンスとの関係をまとめてみました。 まずはjava.lang.*、この2つはメタクラスの層の属します、我々が新しいクラスを定義した時、例えば、MyClassを定義した時、実はjava.lang.Classのインスタンスを作っています。 すべてのクラスから、クラスオブジェクトを得られます。クラスオブジェクトを得る時点で、暗黙的にjava.lang.Objectを継承しています。 そしてインスタンスを得るには、クラスから直接newしたり、クラスオブジェクトからnewinstanceしたりすることができます。 インスタンスからgetClass()メソッドを呼び出すと、型のクラスのオブジェクトを得られます、 クラスのオブジェクトから更にgetClass()メソッドを呼び出すと、メタクラスのこのjava.lang.Classのクラスオブジェクトを得られます。 ----- 会議メモ (2014/10/21 18:07) ----- new X()シンタックスシュガー