JAVA入門⑥ クラスとインスタンス.

Slides:



Advertisements
Similar presentations
アルゴリズムとプログラミン グ (Algorithms and Programming) 第6回:クラスとインスタンス クラスの宣言 アクセス修飾子 インスタンスの生成 (new キーワード) this キーワード フィールドとメソッドの実際の定義と使い 方 クラスの宣言 アクセス修飾子 インスタンスの生成.
Advertisements

1 C++ における OOP を用いた 書き方講座 H 山崎貴英. 2 今回の内容 OOP とは? C++ の超基礎 注釈 書いてあるコードはすべて一部抜粋。 コピペだと動かないよ!
オブジェクト指向 言語 論 第八回 知能情報学部 新田直也. 多相性(最も単純な例) class A { void m() { System.out.println( “ this is class A ” ); } } class A1 extends A { void m() { System.out.println(
独習JAVA Chapter 6 6.6 クラスの修飾子 6.7 変数の修飾子 結城 隆. 6.6 クラスの修飾 abstract インスタンス化できないクラス。1つまたは複数のサブクラスで 実装してはじめてインスタンス化できる。 final 継承されたくないことを明示する。これ以上機能拡張 / 変更でき.
復習ー I (General Review I) クラスとオブジェクトの概念 Concepts of class and object クラスの宣言とオブジェクトの生成 Definition of a class and creation of an object コンストラクタとメソッドのオーバーロー.
プログラミング実習 1 ・ 2 ク ラス 第 2 週目 担当教員 : 渡邊 直樹. 課題 2 ● 2 × 2型行列の固有値, 固有ベクトルを求め る EigMatrix.java というプログラムを作成せ よ。 ● 行列の各要素はコマンド・プロンプトから入力 ● 計算した結果もコマンド・プロンプトに表示.
6.4継承とメソッド 6.5継承とコンストラクタ 11月28日 時田 陽一
プログラミング 平成24年1月11日 森田 彦.
Applet 岡部 祐典 鈴木 敬幸.
~手続き指向からオブジェクト指向へ(Ⅰ)~
プログラミング基礎I(再) 山元進.
Javaのための暗黙的に型定義される構造体
アルゴリズムとデータ構造1 2007年6月12日
アルゴリズムとプログラミング (Algorithms and Programming)
プログラミング基礎I(再) 山元進.
プログラミング基礎I(再) 山元進.
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
プログラミング実習 1・2 クラス 第 1 週目 担当教員:  渡邊 直樹.
アルゴリズムとプログラミング (Algorithms and Programming)
繰り返し プログラミング 第4回 繰り返し プログラミング第4回.
社会人学習講座 「Javaプログラミング概論」
第2章 Eclipseと簡単なオブジェクト 指向プログラミング
オブジェクト指向入門.
計算機プログラミングI 第8回 2002年12月5日(木) メソッドとクラス (教科書6章) クイズ インスタンスメソッド インスタンス変数
第6回独習Javaゼミ 第6章 セクション4~6 発表者 直江 宗紀.
~手続き指向からオブジェクト指向へ[Ⅱ]~
ソフトウェア工学 知能情報学部 新田直也.
プログラミング言語入門 手続き型言語としてのJava
アルゴリズムとプログラミング (Algorithms and Programming)
第9章 例外処理,パッケージ 9.1 例外処理 9.2 ガーベッジコレクション.
オブジェクト指向 プログラミング 第八回 知能情報学部 新田直也.
独習JAVA 6.8 コンストラクタの修飾子 6.9 メソッドの修飾子 6.10 ObjectクラスとClassクラス 11月28日(金)
オブジェクト指向 プログラミング 第十一回 知能情報学部 新田直也.
第7回独習Javaゼミ セクション 1~4 発表者 直江 宗紀.
オブジェクト指向 プログラミング 第十三回 知能情報学部 新田直也.
暗黙的に型付けされる構造体の Java言語への導入
コンパイラの解析 (3) クラスとインスタンスの初期化.
第11週:super/subクラス、継承性、メソッド再定義
Nakano School of Business 経営情報ビジネス科 【 Java概論(Test5)】
7.4 intanceof 演算子 7.5~7.9パッケージ 2003/11/28 紺野憲一
Java8について 2014/03/07.
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
パッケージ,アクセス修飾子 2008年4月27日 海谷 治彦.
オブジェクト指向 プログラミング 第十ニ回 知能情報学部 新田直也.
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
オブジェクト・プログラミング 第8回.
第8回放送授業.
オブジェクト プログラミング 第2回 プログラムの基本.
アルゴリズムとプログラミング (Algorithms and Programming)
オブジェクト指向 プログラミング 第九回 知能情報学部 新田直也.
プログラミング言語論 第十三回 理工学部 情報システム工学科 新田直也.
オブジェクト指向 プログラミング 第八回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第六回 知能情報学部 新田直也.
プログラミング言語論 第十一回 理工学部 情報システム工学科 新田直也.
C#プログラミング実習 第3回.
計算機プログラミングI 木曜日 1時限・5時限 担当: 増原英彦 第1回 2002年10月10日(木)
計算機プログラミングI 第3回 プリミティブ値 クラスメソッド クラス変数 式と演算 変数の利用
Chapter 5 5.5 thisキーワード 5.6 インスタンス変数とインスタンスメソッド 結城 隆
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
cp-2. 属性,アクセサ (C++ オブジェクト指向プログラミング入門)
cp-1. クラスとメソッド (C++ オブジェクト指向プログラミング入門)
オブジェクト指向言語論 第七回 知能情報学部 新田直也.
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
オブジェクト指向言語論 第十回 知能情報学部 新田直也.
オブジェクト・プログラミング 第10回 オブジェクト指向設計のキモ.
計算機プログラミングI 第2回 2002年10月17日(木) 履習登録 複習 ライブラリの利用 (2.6-7) 式・値・代入 (2.6-8)
計算機プログラミングI 第10回 2002年12月19日(木) メソッドの再定義と動的結合 クイズ メソッドの再定義 (オーバーライド)
計算機プログラミングI 第5回 2002年11月7日(木) 配列: 沢山のデータをまとめたデータ どんなものか どうやって使うのか
Presentation transcript:

JAVA入門⑥ クラスとインスタンス

簡単JAVA説明⑮ 前回の復習 1.クラス クラスの生成 2.フィールド 3.メソッド 定義と呼び出し(引数、戻り値) 4.コンストラクタ  クラスの生成 2.フィールド 3.メソッド  定義と呼び出し(引数、戻り値) 4.コンストラクタ  定義と呼び出し

簡単JAVA説明⑮ クラス変数とクラスメソッド 1.インスタンス変数とインスタンスメソッド 次に示す例では、クラスTESTに関するインスタンス(オブジェクト)を作成した 際、それぞれの、no、scoreには値の入出力が可能でした。 各インスタンス毎にフィールドの値を格納可能でした。 この場合、フィールドno、scoreは 「インスタンス(オブジェクト)に関連付けられている」 と言うことがあります。 インスタンス(オブジェクト)に関連付けられているフィールドを 「インスタンス変数」 インスタンス(オブジェクト)に関連付けられているメソッドを 「インスタンスメソッド」 と言います。

簡単JAVA説明⑮ // Testクラスのクラス class Test{ int no; double score; void show(){ System.out.println("Noは" + no); System.out.println("点数は" + score); }

簡単JAVA説明⑮ // Testクラスのインスタンス作成 class Sample1{ public static void main(String args[]){ Test test1 = new Test(); test1.no = 1; test1.score = 85; test1.show(); Test test2 = new Test(); test2.no = 2; test2.score = 75; test2.show(); }

簡単JAVA説明⑮ 2.クラス変数とクラスメソッド クラスではインスタンス(オブジェクト)に関連づ けられていないメンバを持つことができます。 これを 「クラス全体に関連づけられている」 ということがあります。 クラスに関連づけられているフィールドを 「クラス変数」 クラスに関連づけられているメソッドを 「クラスメソッド」 と言います。

簡単JAVA説明⑮ クラス変数の構文 class クラス名 { static 型名 クラス変数名; } クラスメソッドの構文 文;

簡単JAVA説明⑮ 特徴 必ず、宣言のとき、定義のとき staticという修飾子をつけます。

簡単JAVA説明⑮ // Testクラスのクラス class Test{ public static int sum = 0; private int no; private double score; public Test() { no = 0; score = 0.0; sum++; System.out.println("Noは" + no); } void show(){ System.out.println("点数は" + score);

簡単JAVA説明⑮ 5.privateとpubblic メンバへのアクセスの制限 class Test { int no; double score; void show() { System.out.println("Noは" + test.no); System.out.println("点数は" + test.score); } }

簡単JAVA説明⑮ // Testクラスのオブジェクト作成 class Sample1{ public static void main(String args[]){ Test test = new Test(); test.no = 1; test.score = 85; test.show(); } 上記のプログラムではテストNoと点数scoreに値を代入してい ます。

簡単JAVA説明⑮ もし、間違って、 test.score = -85; などとしてしまったら・・・ クラスの外から勝手にアクセスできないようなメンバと しておくことができます。これをprivateメンバと言いま す。以下のようにプログラムを書き換えます

簡単JAVA説明⑮ class Test { private int no; private double score; void show() { System.out.println("Noは" + test.no); System.out.println("点数は" + test.score); } }

簡単JAVA説明⑮ // Testクラスのオブジェクト作成 class Sample1{ public static void main(String args[]){ Test test = new Test(); test.no = 1; test.score = 85; test.show(); }

簡単JAVA説明⑮ コンパイルしてみると C:\Jsample>javac Sample1.java Sample1.java:17: no は Test で private アクセスされます。 test.no = 1; ^ Sample1.java:18: score は Test で private アクセスされます。 test.score = 85; のようなコンパイルエラーが出ます。

簡単JAVA説明⑮ publicメンバの作成 privateメンバですと、クラスの外からアクセスできませ が可能となります。 class Test { public int no; public double score; void show() System.out.println("Noは" + this.no); System.out.println("点数は" + this.score); }

簡単JAVA説明⑮ // Testクラスのオブジェクト作成 class Sample1{ public static void main(String args[]){ Test test = new Test(); test.no = 1; test.score = 85; test.show(); }

簡単JAVA説明⑮ 修飾子( privateとpubblic ) と言う意味合いです。 省略したメンバは「同じパッケージ」内に含まれ 修飾子は省略が可能です。 省略したメンバは「同じパッケージ」内に含まれ るクラス内からアクセスできます。

簡単JAVA説明⑮ 演習1.①~⑥を埋めよ。 class Person { String myName; int myAge; public void SetName(String name) { myName = name; } public String GetName() { return myName; public void SetAge(int age) { myAge = age; public int GetAge() { return myAge;

簡単JAVA説明⑮ class PersonTest { public static void main(String[] args) { ① // 田中さんインスタンスを作る ② // 田中さんの名前を設定する ③ // 田中さんの年齢を設定する ④ // 鈴木さんインスタンスを作る ⑤ // 鈴木さんの名前を設定する ⑥ // 鈴木さんの年齢を設定する System.out.println(tanaka.GetName()); System.out.println(tanaka.GetAge()); System.out.println(suzuki.GetName()); System.out.println(suzuki.GetAge()); }

簡単JAVA説明⑮ 実行結果 Tanaka 26 Suzuki 32

簡単JAVA説明⑮ 演習1 ヒント 作るべき、クラスはPersonです。 System.out.println(tanaka.GetName()); System.out.println(suzuki.GetName()); から、作成するはインスタンス名はtanakaとsuzukiであることがわかります。