計算機プログラミングI 第3回 プリミティブ値 クラスメソッド クラス変数 式と演算 変数の利用

Slides:



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

独習JAVA Chapter 6 6.6 クラスの修飾子 6.7 変数の修飾子 結城 隆. 6.6 クラスの修飾 abstract インスタンス化できないクラス。1つまたは複数のサブクラスで 実装してはじめてインスタンス化できる。 final 継承されたくないことを明示する。これ以上機能拡張 / 変更でき.
プログラミング第5回 1 while ループ 文字列の操作
復習 配列変数の要素 5は配列の要素数 これらの変数をそれぞれ配列の要素と呼ぶ この数字を配列の添え字,またはインデックスと呼ぶ
6.4継承とメソッド 6.5継承とコンストラクタ 11月28日 時田 陽一
ゴールデンウィークの課題 (提出日:2009/05/12) 2009/05/12に小テストがあります!
1.1 C/C++言語 Hello.ccを作りコンパイルしてa.outを作り出し実行する
プログラミング基礎I(再) 山元進.
Applet 岡部 祐典 鈴木 敬幸.
~手続き指向からオブジェクト指向へ(Ⅰ)~
プログラミング基礎I(再) 山元進.
アルゴリズムとデータ構造1 2007年6月12日
アルゴリズムとプログラミング (Algorithms and Programming)
プログラミング基礎I(再) 山元進.
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
プログラミング演習II 2004年10月19日(第1回) 理学部数学科・木村巌.
プログラミング実習 1・2 クラス 第 1 週目 担当教員:  渡邊 直樹.
アルゴリズムとプログラミング (Algorithms and Programming)
計算機プログラミングI 第12回 2003年1月23日(木) インターフェース スレッド 最後に お知らせ クイズ 授業アンケート
プログラミングIII演習 第1回目.
第20章 Flyweight ~同じものを共有して無駄をなくす~
インタフェース プログラミング 第14回 インタフェース プログラミング第14回.
オブジェクト指向入門.
計算機プログラミングI 第8回 2002年12月5日(木) メソッドとクラス (教科書6章) クイズ インスタンスメソッド インスタンス変数
プログラミング 平成24年10月30日 森田 彦.
第6回独習Javaゼミ 第6章 セクション4~6 発表者 直江 宗紀.
プログラミング言語入門 手続き型言語としてのJava
JAVA入門.
Java入門 13.5カラーの使用 13.6テキストの表示                  2003/12/12                   紺野憲一.
アルゴリズムとプログラミング (Algorithms and Programming)
第9章 例外処理,パッケージ 9.1 例外処理 9.2 ガーベッジコレクション.
オブジェクト指向 プログラミング 第八回 知能情報学部 新田直也.
独習JAVA 6.8 コンストラクタの修飾子 6.9 メソッドの修飾子 6.10 ObjectクラスとClassクラス 11月28日(金)
オブジェクト指向 プログラミング 第十一回 知能情報学部 新田直也.
計算機プログラミングI 第10回 データ構造とクラスの設計 例題: 話題: 複素数 図形要素 Morphing 複雑な値を一つにまとめる
オブジェクト指向 プログラミング 第十三回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第二回 知能情報学部 新田直也.
第1回 プログラムの基本 他人が読めるプログラムを書く.
5.9 メソッドのオーバーロード 5.10 変数の引渡し 2003/11/21 紺野憲一
7.4 intanceof 演算子 7.5~7.9パッケージ 2003/11/28 紺野憲一
計算機プログラミングI 第11回 再帰 再帰的なメソッド定義 帰納的定義 再帰的なデータ構造 計算機プログラミングI (増原) 2003年度.
C#言語ソースプログラムの原型 C言語 C#言語 Hello World! Hello Students! オマジナイ! 適当なクラス名
計算機プログラミングI 第5回 配列 文字列(Stringクラス) mainの引数 配列の利用例
計算機プログラミングI 第8回 素数を見つけるアルゴリズム 継承とインスタンスメソッド クラスの設計 オブジェクトに機能を加える
計算機プログラミングI 第12回 スレッド インターフェース 授業アンケート 計算機プログラミングI (増原) 2003年度.
第8回放送授業.
オブジェクト プログラミング 第2回 プログラムの基本.
C言語ファミリー C# 高級言語(抽象的) Java オブジェクト指向 C++ C 機械語(原始的)
アルゴリズムとプログラミング (Algorithms and Programming)
オブジェクト指向 プログラミング 第九回 知能情報学部 新田直也.
オブジェクト指向 プログラミング 第八回 知能情報学部 新田直也.
プログラミング言語論 第十一回 理工学部 情報システム工学科 新田直也.
C#プログラミング実習 第3回.
計算機プログラミングI 木曜日 1時限・5時限 担当: 増原英彦 第1回 2002年10月10日(木)
計算機プログラミングI 第4回 2002年10月31日(木) 問題解決とアルゴリズム クラスメソッドと手続きの抽象化 最大公約数
Chapter 5 5.5 thisキーワード 5.6 インスタンス変数とインスタンスメソッド 結城 隆
プログラミング基礎a 第9回 Java言語による図形処理入門(1) Javaアプレット入門
Nakano School of Business 経営情報ビジネス科 【 Java概論(Test4)】
JAVA入門⑥ クラスとインスタンス.
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
オブジェクト指向言語論 第七回 知能情報学部 新田直也.
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
プログラミング 平成28年10月25日 森田 彦.
プログラミング基礎a 第5回 C言語によるプログラミング入門 配列と文字列
オブジェクト指向言語論 第九回 知能情報学部 新田直也.
オブジェクト指向言語論 第十回 知能情報学部 新田直也.
計算機プログラミングI 第2回 2002年10月17日(木) 履習登録 複習 ライブラリの利用 (2.6-7) 式・値・代入 (2.6-8)
計算機プログラミングI 第10回 2002年12月19日(木) メソッドの再定義と動的結合 クイズ メソッドの再定義 (オーバーライド)
計算機プログラミングI 第5回 2002年11月7日(木) 配列: 沢山のデータをまとめたデータ どんなものか どうやって使うのか
Presentation transcript:

計算機プログラミングI 第3回 プリミティブ値 クラスメソッド クラス変数 式と演算 変数の利用

プリミティブ値 (3.1-2) 値には2種類ある オブジェクト値 ― 亀・ウィンドウ・色・・・ プリミティブ値 (p.23の表) プリミティブ値 (3.1-2) 値には2種類ある オブジェクト値 ― 亀・ウィンドウ・色・・・ プリミティブ値 (p.23の表) primitive = 原始的~はじめから用意されている値 (cf. オブジェクトは「定義」して「作る」値) 用意されているもの: 整数・小数・真偽値・文字 (cf. 文字列はプリミィブでない) 型 (値の種類) も予め決っている: int, double, boolean, char, … 計算機プログラミングI (増原) 2003年度

値と変数 「変数は値をしまう箱」である int x = 100; int y = y; x = 200; このときのxとyの値は? Turtle m = new Turtle(200,200,0); Turtle m1 = m; m.moveTo(100,100,0); このときの m.getY() と m1.getY() の値は? 計算機プログラミングI (増原) 2003年度

値と変数 「変数は値をしまう箱」である 200 100 100 x y x y m m1 angle color int x = 100; int y = y; x = 200; このときのxとyの値は? Turtle m = new Turtle(200,200,0); Turtle m1 = m; m.moveTo(100,100,0); このときの m.getY() と m1.getY() の値は? 200 100 100 x y x y m m1 angle color 計算機プログラミングI (増原) 2003年度

値と変数 「変数は値をしまう箱」である x y m m1 angle color オブジェクト値の 場合、変数に しまわれるのは 「オブジェクトの 居場所」である  「参照」という Turtle m = new Turtle(200,200,0); Turtle m1 = m; m.moveTo(100,100,0); このときの m.getY() と m1.getY() の値は? x y m m1 angle color 計算機プログラミングI (増原) 2003年度

クラスメソッド (3.3) メソッドは「オブジェクトに対する指令」 であった。では、指令を出す対象がいない 場合は? 例: 2の平方根 xとyの大きい方  クラスメソッド ― 誰に対するでもない指令 計算機プログラミングI (増原) 2003年度

クラスメソッド (3.3) クラスメソッドの呼び出しの例 (普通は)大文字で始まる名前 オブジェクトに対するメソッド呼び出しとの区別 文法: Turtle.speedAll(1); // 全ての亀の速度を1にする System.exit(0); // プログラムを終了させる オブジェクトに対するメソッド呼び出しとの区別 m1.fd(10); //オブジェクトのメソッド呼び出し Turtle.speedAll(1); //クラスメソッドの呼び出し 文法: 【式】.【メソッド名】(【式】,…) 【クラス名】. 【メソッド名】(【式】,…) (普通は)大文字で始まる名前 計算機プログラミングI (増原) 2003年度

クラスメソッド (3.3) どうやってクラスメソッドを見つけるか?  仕様書を見る “static” と先頭に書かれているものが クラスメソッド 例 教科書p.12 Java言語標準ライブラリの仕様書 計算機プログラミングI (増原) 2003年度

クラス変数 クラスに1つずつしかない変数 インスタンス変数との区別 文法: 【変数名】 【式】.【変数名】 【クラス名】. 【変数名】 d = d / 2; //(ローカル)変数 m1.kameScale=1; //インスタンス変数 Turtle.withKameAll = false; //クラス変数 文法: 【変数名】 【式】.【変数名】 【クラス名】. 【変数名】 計算機プログラミングI (増原) 2003年度

クラス変数の使い途 数学定数の利用: Math.PI ―― 円周率 画面への出力 System.out.println(“x=” + x); インスタンスメソッドの呼び出し 数学定数の利用: Math.PI ―― 円周率 画面への出力 System.out.println(“x=” + x); 「“x=3”と 表示せよ」 ターミナルウィンドウを 表わすオブジェクトを しまうクラス変数 “x=”という文字列と x の値をつなげる (xが3のときは “x=3” になる等) System.out 計算機プログラミングI (増原) 2003年度

クラス変数の使い途 プログラムの意味に 関する誤りを見つける 代入した前後で 変数の値を表示する 式の値を表示することもできる import java.awt.Color; public class T23withPrint { public static void main(String[] args){ int d = 100, x, y, a; TurtleFrame f = new TurtleFrame(); Turtle m = new Turtle(200,300,0); f.add(m); m.fd(d); x = m.getX() y = m.getY(); a = m.getAngle() - 45; System.out.println(“a= “ + a); Turtle m1 = new Turtle(x, y, a); f.add(m1); m.kameColor = new Color(0,255,255); m.kameScale = m.kameScale * 2; m.rt(45); System.out.println(“d= “ + d); d = d / 2; m1.fd(d); System.out.println(“m1.getX()= “ + m1.getX()); } プログラムの意味に 関する誤りを見つける 代入した前後で 変数の値を表示する 式の値を表示することもできる 計算機プログラミングI (増原) 2003年度

式 (3.7) 式の例 180 x d / 2 x*x + y*y (x*x + y*y) / 2 Math.PI Math.random() m.getX() m.getX() / 2 new Turtle() (new Turtle()).getX() m.fd(10) “x =” true “x=” + x “m=” + m “x=” + x + “ m =” + m 計算機プログラミングI (増原) 2003年度

式 (3.8.1) 演算の例 i=i+1 i++ x=10 y = 3 + (x=10) (int)3.14 3 / 2 (double) 3 / 2 ((double) 3) / 2 (double) (3 / 2) Math.random()*100 int x; x = Math.random()*100; x = (int)(Math.random() * 100); m.fd(100) m.fd(3.14) m.fd((int)(3.14 * 100)) 計算機プログラミングI (増原) 2003年度

式 (3.8.3) true false 1==0 2 < 3 2 <= 2 1 != x !(1 == x) y % 4 == 0 y % 3 == 0 || y % 4 == 0 (y > 0 && y % 3 == 0) || y % 4 == 0 計算機プログラミングI (増原) 2003年度

変数の使い方 (例) コピー int 長さ = 100, 角度 = 30; ・・・長さと角度を使って図形を描く・・・ 長さ = 80; 角度 = 40; 長さ = 30; 角度 = 50; コピー 計算機プログラミングI (増原) 2003年度