オブジェクト指向
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
* ''オブジェクト指向'' [#bf98c062]
#contents
* 用語 [#nd9efde2]
- カプセル化(中身の隠蔽)
データ構造の中身を隠蔽し、データ操作に必要な情報のみを外...
#highlighter(java,number){{
// 操作、データを一つにまとめたクラス
// ⇒ カプセル化
class Sample {
// private を設定することで、Sampleクラス以外からの
// アクセスを禁止する
// ⇒ データの隠蔽
private int ans = 0;
//-- ans 変数にアクセスするためのメソッドのみ外部に公開...
// ⇒ データの隠蔽
//属性に対して、アクセスするためのメソッド(操作)
public void setQ(int i){
ans = this.calc(i);
}
//属性に対して、アクセスするためのメソッド(操作)
public int getA(){
return ans;
}
//-- ここまで
//
private int calc(int i) {
return i+i;
}
}
// 実行クラス
public class DataPlay {
public static void main(String[] args) {
// 具象クラスのインスタンス化
Sample obj = new Sample();
// obj.ans=5
// int x = obj.ans は出来ない為、
// setQメソッドとgetAメソッドを使って操作する
obj.setQ(5);
System.out.println(obj.getA());
}
}
}}
-- DataPlayクラスは、Sampleクラスの中に、~
ansという変数があり、Calcというメソッドを使って計算してい...
知らなくても、setQで値を設定し、getAで値を取得出来る~
ということを知っていれば、Sampleクラスを利用できる。
- インヘリタンス(継承)
あるクラス(オブジェクト)があるクラス(オブジェクト)の特...
#highlighter(java,number){{
// Parent クラスの特性をChildクラスが引き継ぐ
public class Child extends Parent {
public Child() {
oyaMethod();
}
}
}}
--Parentクラスにメソッド oyaMethodが定義されている場合~
継承したChildクラスはoyaMethodを定義しなくても、~
メソッドを使用することが出来る。
- ポリモーフィズム(多様性)
メッセージの送信側(メソッドの呼出側)とメッセージの受信側...
#highlighter(java,number){{
class SuperClass {
String str = "Super";
public void thisName() {
System.out.println("SuperClass");
}
}
class SubClass extends SuperClass {
String str = "Sub";
// オーバーライド
public void thisName() {
System.out.println("SubClass");
}
// 引数違いのオーバロード
public void thisName(String name) {
System.out.println("SubClass" + name);
}
}
class ExeClass extends SubClass {
String str = "exe";
// オーバーライド
public void thisName() {
System.out.println("exeClass");
}
}
// 実行クラス
public class JavaPo {
public static void main(String[] args) {
// exeクラスのインスタンスを生成
ExeClass exe = new ExeClass();
// exeクラスのメソッド実行
exe.thisName();
// Subクラスから継承したexeクラスのメソッドw実行
exe.thisName("main");
// exeクラスの変数を出力
System.out.println(exe.str);
// Subクラスのインスタンスを生成
SuperClass oya = new SubClass();
//exeクラスのメソッドを実行
oya.thisName();
// SuperClassの変数を出力
System.out.println(oya.str);
}
}
}}
--生成するオブジュクトによって、どのthisNameメソッドを使...
※継承したクラスと同名のメソッドをサブクラスに定義すること...
--thisNameメソッドは引数違いで、用意されておりどのthisNam...
※同名で、異なる引数を持つメソッドをオーバーロードの関係に...
* 主なプログラミング言語 [#jdc4607d]
- smalltalk
- [[Java]]
- C++
- C#
- Objective-C
終了行:
* ''オブジェクト指向'' [#bf98c062]
#contents
* 用語 [#nd9efde2]
- カプセル化(中身の隠蔽)
データ構造の中身を隠蔽し、データ操作に必要な情報のみを外...
#highlighter(java,number){{
// 操作、データを一つにまとめたクラス
// ⇒ カプセル化
class Sample {
// private を設定することで、Sampleクラス以外からの
// アクセスを禁止する
// ⇒ データの隠蔽
private int ans = 0;
//-- ans 変数にアクセスするためのメソッドのみ外部に公開...
// ⇒ データの隠蔽
//属性に対して、アクセスするためのメソッド(操作)
public void setQ(int i){
ans = this.calc(i);
}
//属性に対して、アクセスするためのメソッド(操作)
public int getA(){
return ans;
}
//-- ここまで
//
private int calc(int i) {
return i+i;
}
}
// 実行クラス
public class DataPlay {
public static void main(String[] args) {
// 具象クラスのインスタンス化
Sample obj = new Sample();
// obj.ans=5
// int x = obj.ans は出来ない為、
// setQメソッドとgetAメソッドを使って操作する
obj.setQ(5);
System.out.println(obj.getA());
}
}
}}
-- DataPlayクラスは、Sampleクラスの中に、~
ansという変数があり、Calcというメソッドを使って計算してい...
知らなくても、setQで値を設定し、getAで値を取得出来る~
ということを知っていれば、Sampleクラスを利用できる。
- インヘリタンス(継承)
あるクラス(オブジェクト)があるクラス(オブジェクト)の特...
#highlighter(java,number){{
// Parent クラスの特性をChildクラスが引き継ぐ
public class Child extends Parent {
public Child() {
oyaMethod();
}
}
}}
--Parentクラスにメソッド oyaMethodが定義されている場合~
継承したChildクラスはoyaMethodを定義しなくても、~
メソッドを使用することが出来る。
- ポリモーフィズム(多様性)
メッセージの送信側(メソッドの呼出側)とメッセージの受信側...
#highlighter(java,number){{
class SuperClass {
String str = "Super";
public void thisName() {
System.out.println("SuperClass");
}
}
class SubClass extends SuperClass {
String str = "Sub";
// オーバーライド
public void thisName() {
System.out.println("SubClass");
}
// 引数違いのオーバロード
public void thisName(String name) {
System.out.println("SubClass" + name);
}
}
class ExeClass extends SubClass {
String str = "exe";
// オーバーライド
public void thisName() {
System.out.println("exeClass");
}
}
// 実行クラス
public class JavaPo {
public static void main(String[] args) {
// exeクラスのインスタンスを生成
ExeClass exe = new ExeClass();
// exeクラスのメソッド実行
exe.thisName();
// Subクラスから継承したexeクラスのメソッドw実行
exe.thisName("main");
// exeクラスの変数を出力
System.out.println(exe.str);
// Subクラスのインスタンスを生成
SuperClass oya = new SubClass();
//exeクラスのメソッドを実行
oya.thisName();
// SuperClassの変数を出力
System.out.println(oya.str);
}
}
}}
--生成するオブジュクトによって、どのthisNameメソッドを使...
※継承したクラスと同名のメソッドをサブクラスに定義すること...
--thisNameメソッドは引数違いで、用意されておりどのthisNam...
※同名で、異なる引数を持つメソッドをオーバーロードの関係に...
* 主なプログラミング言語 [#jdc4607d]
- smalltalk
- [[Java]]
- C++
- C#
- Objective-C
ページ名: