+ All Categories
Home > Software > javaオブジェクトシステム

javaオブジェクトシステム

Date post: 26-Jun-2015
Category:
Upload: di-ai
View: 202 times
Download: 0 times
Share this document with a friend
Description:
This slide give a brief look at the java object system, as well as the relationship between class, class object and instance which is uneasy to understand. Maybe I will add an English version later if needed. javaのクラスシステムにおけるポインタの配置、クラス、インスタンス、オブジェクトの関係を定義から洗い直してみました。
Popular Tags:
14
Java オオオオオオオ オオオ オオオ 2014/10/21 2013 LINE CORPORATION
Transcript
Page 1: javaオブジェクトシステム

Java オブジェクトシステム艾 迪

開発室

2014/10/21

ⓒ 2013 LINE CORPORATION

Page 2: javaオブジェクトシステム

2

1. Java のオブジェクトシステムのインスタンス、

クラス、スーパークラス、それぞれがなにへのポ

インタを保持しているか

2. Class クラス、 Object クラス、 Object イン

スタンスの関係

宿題内容

Page 3: javaオブジェクトシステム

3

発表の流れ

• キーワードの定義

• 宿題の答え

• プログラムによる検証

Page 4: javaオブジェクトシステム

4

クラス

オブジェクト

クラスオブジェクト

インスタンス

キーワード

Page 5: javaオブジェクトシステム

5

〇〇クラス

クラス、オブジェクトについて

オブジェクト

クラス(型)を定義しているもの(概念)。

メモリ上存在する対象、プログラムが参照できるもの。クラスオブジェクトとインスタンスオブジェクトの総称

Page 6: javaオブジェクトシステム

6

クラスオブジェクト、インスタンスについて

クラスがメモリ上存在する実体( entity )。クラスオブジェクト自体の型は java.lang.-Class 。

Class<T> は T クラスオブジェクトと言える。 .class

インスタンス(オブジェクト)

new X() する時、生成した X 型の実例、必ずメモリ上にも生成されるので、直接インスタンスと言いって誤解はない。

〇〇クラスオブジェクト

クラスからオブジェクトに変換( .class )するClass<ClassA> clzobj = ClassA.class;

Page 7: javaオブジェクトシステム

7

public class ClassA(){}Class<ClassA> clzobj = ClassA.class;ClassA newclassA = new ClassA();

例で言うと

• ClassA はクラス。

• clzobj は ClassA のクラスオブジェクト、それ自体はClass 型のオブジェクト、名前は ClassA 。

• newclassA は ClassA のインスタンス。

Page 8: javaオブジェクトシステム

8

Java のオブジェクトシステムのインスタンス、

クラス、スーパークラス、それぞれがなにへの

ポインタを保持しているか

宿題1

Page 9: javaオブジェクトシステム

9

int

reference

int

double

Java stack Java heap

Method Area

Instance(entit

y)

class object

pointer

class object

(entity)

オブジェクトへのアクセス

static 変数は Permanent Area で管理されます

Page 10: javaオブジェクトシステム

10

Object インスタンス中のポインター

(java.lang.Object)

entity(superclass)

Object の場合は NULL

Page 11: javaオブジェクトシステム

11

クラス

クラスオブジェクト インスタンス

宿題2

Class クラス、 Object

クラス、 Object イン

スタンスの関係

Page 12: javaオブジェクトシステム

12

java.lang.Class

java.lang.Object

Class クラスと Object クラス

クラスを表現するためのクラスであり、クラスの情報にアクセスしたり、操作したりするためのクラスです。いわゆるメタクラスです。

すべての Java オブジェクトのルートクラスです。

Page 13: javaオブジェクトシステム

13

java.lang.-Class

オブジェクト

My-Class

.class

getClass()

.class

MyClassオブジェク

.class

java.lang.-Class

new

new

java.lang.Ob-ject

オブジェクトgetClass()

Meta-Class

getClass()

newInstance

getClass()

クラス、クラスオブジェクト、インスタン

スの関係

オブジェクト

java.lang.Ob-ject

my-classin-

stance

my-classin-

stance

my-classin-

stance

Page 14: javaオブジェクトシステム

14

まとめ

対応 new

newInstance()

getClass()


Recommended