Excel一般 第2回

第4回 JAVA講習
知的システム構築工房
Linux設定セミナーシリーズ
第4回 Java講習
2011年3月15日(火)
株式会社 アセンディア
-1 -
第4回 JAVA講習
目的
当セミナーを通して、
Java開発環境を構築し、Eclipse(統合開発環境)
の基本操作を習得する
-2 -
第4回 JAVA講習
目標
当セミナーを受講することにより
1.Javaの開発環境を構築できるようになること
2.Javaの基本文法を習得すること
3.Eclipseを使用してJavaの開発を行えるようになること
-3 -
第4回 JAVA講習
セミナー内容
1.Javaについて
プログラムの実行方式
Java インストール
2.Eclipseインストール
IDEによる開発
Eclipseインストール
Eclipseを使用したプロジェクト開発
デバッグ
3.Java基本文法
クラス、型、演算子、配列、条件分岐
4.Eclipseを使用した開発
演習問題をEclipseを利用し、開発を行います
-4 -
第4回 JAVA講習
1 . J a v a に つ い て
-5 -
第4回 JAVA講習
Javaとは
・プログラミング言語の一種(オブジェクト指向プログラミング言語)
・1995年にSun Microsystems社(現在はオラクルの子会社)が発表
・組込システムからスーパーコンピュータまで幅広い用途で使用される
・中間言語方式
スローガン「Write once, run anywhere」
-6 -
第4回 JAVA講習
プログラムの実行方式
・コンパイラ方式
if(value == true){
コンパイラ
print(“こんにちは”)
00100001000010000011
01001100001100111110
11111000111111100000
}
コンパイル
プログラミング言語で書かれた
プログラム[ソースコード]
11010101010101010101
機械語のプログラム
[実行ファイル]
・インタプリタ方式
if(value == true){
インタプリタ
print(“こんにちは”)
}
実行
プログラミング言語で書かれた
プログラム[ソースコード]
コンピュータ
-7 -
実行
コンピュータ
第4回 JAVA講習
・中間言語方式
if(value == true){
コンパイラ
print(“こんにちは”)
00100001000010000011
01001100001100111110
インタプリタ
11111000111111100000
}
コンパイル
プログラミング言語で書かれた
プログラム(ソースコード)
if(value == true){
print(“こんにちは”)
11010101010101010101
実行
仮想の機械語のプログラム
(中間[バイト]コード)
javac
00100001000010000011
01001100001100111110
コンピュータ
java
こんにちは
11111000111111100000
}
11010101010101010101
Javaファイル
classファイル
-8 -
実行画面
第4回 JAVA講習
Java インストール
インストールの流れ
1.ソフトウェアのダウンロード
2.ソフトウェアのインストール
3.環境変数の設定
4.実行確認
-9 -
第4回 JAVA講習
1.ソフトウェアのダウンロード
http://java.sun.com/javase/ja/6/download.html
-10 -
第4回 JAVA講習
2.ソフトウェアのインストール
1.rootユーザに変わります
2.ダウンロードしたファイルを/usr/local/srcへコピーします
⇒コピーコマンド
3.ダウンロードしたファイルに実行権限を付与します
chmodコマンド
4.インストール
./jdk-6u24-linux-i586.bin
5.既存のJavaを使えないようにし、入れ替えます
mv /usr/bin/java /usr/bin/javabkup
ln -s /usr/local/java/bin/java java
-11 -
第4回 JAVA講習
3.環境変数の設定
/etc/profileへ追記(最終行へ追加 )
export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
環境変数の適用
source /etc/profile
※ /etc/profile ファイルについて
Linuxの全てのユーザに対する環境設定ファイル
ユーザ別に設定したい場合は、ユーザのhomeディレクトリの
.bash_profileファイルに設定を行う(bashを利用する場合)
※ sourceコマンドについて
指定されたファイルをシェル環境へ設定する
-12 -
第4回 JAVA講習
4.実行確認
javaのインストールされているバージョンを確認します。
java -version コマンド
[root@user01 etc]# java -version
java version "1.6.0_24"
Java(TM) SE Runtime Environment (build 1.6.0_24-b07)
Java HotSpot(TM) Client VM (build 19.1-b02, mixed mode, sharing)
javaファイルがコンパイルできるかを確認します
javac
[root@user01 etc]# javac
使い方: javac <options> <source files>
使用可能なオプションには次のものがあります。
-g
すべてのデバッグ情報を生成する
-g:none
デバッグ情報を生成しない
-g:{lines,vars,source} いくつかのデバッグ情報だけを生成する
-nowarn
警告を発生させない
-verbose
コンパイラの動作についてメッセージを出力する
-deprecation
推奨されない API が使用されているソースの位置を出力する
:
:
-13 -
第4回 JAVA講習
2.Eclipseインストール
-14 -
第4回 JAVA講習
IDEによる開発
IDEとは、Integrated Development Environmentの略で統合開発環境という意味です。
これまでは、エディタでプログラムコードを入力し、コマンドプロンプトウィンドウでコンパイルし、さらに
別のコマンドを呼び出して実行する・・・という具合に開発中の個々の作業が物理的に分断されていま
した。
小規模なプログラムを作るだけならそれでもよいかもしれませんが、何十、何百ものクラスを集めて大
掛かりなシステムを作るようなときにはこのような手法では効率が上がりません。「プログラム開発に関
連した様々な作業を一元化し、スムーズに作業を進めたい」という要求から生まれたのが統合開発環
境(IDE)です。
統合開発環境とは、1つに統合された開発環境のことです。ソースファイルの作成、コーディング、コ
ンパイル、動作確認などから、複数のパッケージの作成まで、プログラム開発にまつわるありとあらゆ
る作業を一元化し、1つの操作画面上で実行できるような仕組みになっています。IDEをうまく使えば、
複数のツールを個別に呼び出したり、たくさんのプログラム開発を進めることができるようになります。
JavaのIDEとしては、有名なものではSunONEStudio、JBuilderなどがあります。それぞれが固有の特
徴を備え、いずれも利点・欠点を併せ持っているといえるでしょう。どのIDEを使っても「Javaのプログラ
ムを作る」ことはできますが、使い勝手などは微妙に異なります。今回使用するEclipseも、Javaの開発
に使えるIDEの1つです。
IDE使用前
管理が
大変!
IDE導入
IDEを使用
ファイルいっぱい
-15 -
効率
UP!
第4回 JAVA講習
Eclipseとは
Eclipseは、Javaの開発に使える統合開発環境(IDE)の中の1つです。といっても、EclipseはJava専用のIDEというわけではありません。
Eclipseそのものは、いわば開発環境の土台のようなものです。そこに「Java開発用のオプション装備」を組み込むことで、Java用のIDEとし
て使うことができるようになっています。
Eclipseにはいくつかの優れた特徴があります。そのうちの1つが動作が軽いということです。4.1節でも説明した通りJavaの開発に使える
IDEにはいくつかの種類があるのですが、いずれも若干動作が遅く、スペックの低いコンピュータ上ではスイスイと動かないことが多いよう
です。Eclipseでは画面表示にまったく新しい専用の仕組みを用いているため、あらゆる操作をとても軽快に行うことが可能です。
もう1つの特徴は、好みに応じて機能をどんどん追加していけるという点です。インストールした直後のEclipseにはJavaのプログラム開発
に必要な最低限の機能や様々なサポート機能などはあらかじめ組み込まれていますが、Plug-in(プラグイン)と呼ばれるモジュールを組み
込んでいくことで、様々な機能をEclipseに追加していくことができます。
Plug-inは有償・無償で様々なベンダから提供されているので、必要なものを探してきて好きなように組み合わせることができます。また、
必要なPlug-inが見つからない場合は自分で作ることもできます。
このようにモジュール組み込み式になっているおかげで、欲しい機能だけを詰め込んだ「自分好みのIDE」を作り上げていけるのもEclipse
の特徴といえるでしょう。
代表的なPlug-in
◇ Sysdeo Eclipse Tomcat Launcher plug-in (DOWNLOAD URL: http://www.sysdeo.com/eclipse/tomcatPlugin.html)
・・・ eclipse上からTomcat(Application Server)の起動、終了、再起動を行えるようにするプラグイン
◇ Eclipse HTML Editor (DOWNLOAD URL: http://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi?page=EclipseHTMLEditor)
・・・ HTML/JSP/XML/CSS/DTD/JavaScriptの編集時にシンタックスハイライティング(※)するプラグイン
※ シンタックスって?
・・・シンタックスとは構文という意味です。具体的な文字がどのように配列されているかに着目した概念を示す言葉です。
シンタックスハイライティングとは、XMLやJSPファイルの構文をハイライト(強調)して表示するという意味です。
-16 -
第4回 JAVA講習
Eclipseインストール
インストールの流れ
1.ソフトウェアのダウンロード
2.ソフトウェアのインストール
3.日本語化
4.実行確認
5.Eclipse環境設定
-17 -
第4回 JAVA講習
2.ソフトウェアのインストール
http://www.eclipse.org/
-18 -
第4回 JAVA講習
-19 -
第4回 JAVA講習
Eclipse 日本語化
http://mergedoc.sourceforge.jp/index.html#/pleiades_distros3.6.html
:
-20 -
第4回 JAVA講習
2.ソフトウェアのインストール
1.ダウンロードしたファイルを /opt へ移動します
2. eclipse-jee-helios-SR2-linux-gtk.tar.gzを解凍します
3.起動確認
-21 -
第4回 JAVA講習
-22 -
第4回 JAVA講習
3.日本語化
1. workディレクトリを作成します
mkdir /usr/local/src/work
2.ダウンロードしたファイルを /usr/local/src/workへ移動します
3. pleiades.zipを解凍します
4.pluginフォルダの中、featuresフォルダの中を,それぞれ/opt/eclipse/plugin,
/opt/eclipse/features内へ移動します
5.eclipse.ini ファイル修正
最終行に-javaagent:plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar
を記述
-23 -
第4回 JAVA講習
4.実行確認
-24 -
第4回 JAVA講習
5.Eclipse環境設定
メニューバーのウィンドウから設定を選択
JREを変更します
/usr/local/javaになっていることを確認する
-25 -
第4回 JAVA講習
Eclipseの画面構成
ワークベンチ
Eclipseが起動すると図1のようなウィンドウが表示されます。この1つのウィ
ンドウのことを「ワークベンチ」と呼びます。日本語に直すと「作業台」とか「工
作台」というような意味です。ワークベンチ上には、いくつかのパースペク
ティブが含まれます。パースペクティブとは「視野」あるいは「視界」というよう
な意味の言葉です。ワークベンチ(作業台)の上をパースペクティブと呼ばれ
るいくつかの領域に切り分けて、それぞれの領域内でいろいろな作業を行う
ようになっています。
a. ワークベンチとパースペクティブ
図1 ワークベンチ
パースペクティブ
(画面はリソース・パースペクティブ)
パースペクティブ
プログラムの開発には、コーディング、コンパイル、動作確認、デバッグ・・・
といったさまざまな作業が含まれます。そしてそれぞれの作業ごとに固有の
ツールを使用します。コーディングするときにはコードを入力するためのエ
ディタが必要ですし、デバッグ(プログラムのミスを拾い出して修正すること)
を行う際にはプログラムの実行の様子をモニターするツールなどが必要で
す。
こうしたツールはいずれもEclipseのどこかに用意されているので、メニュー
などをたどれば個々に起動することができます。しかし、作業内容が変わる
たびにいちいち必要なツールをひとつひとつ起動したり終了したりするので
はIDEを使用する意義がありません。個々の作業に必要なツールのセットを
あらかじめリストアップしておき、好きなときに一括してすぐに呼び出すことが
できれば随分と手間が省けるでしょう。
パースペクティブというのは、このようなニーズに基づく概念です。開発過
程の個々の作業(「タスク」と言います)ごとに関連するツールを備えたパース
ペクティブを作っておいて、必要に応じて切り替えることで作業の効率化が
はかれます。
Eclipseにはインストール直後の状態で、Java、Javaブラウズ、デバッグ、リ
ソースなどのパースペクティブが組み込まれています。
-26 -
第4回 JAVA講習
b. Eclipseの画面構成と名称
Eclipse のワークベンチ画面
Javaエディタ
メニューバー
ツールバー
ビュー・ツール
バー
マーカー・バー
アウトライン・
ビュー
パッケージ・
エクスプローラー・
ビュー
コンテキスト
メニュー
タスク・ビュー
-27 -
エディタ・ステータス・
エリア
第4回 JAVA講習
●c Java参照 パースペクティブ
●d デバッグ パースペクティブ
●図5
パースペクティブの切り替え方法
パースペクティブの切り替えは非常に簡単に行うことができます。
図5のビューツールバーをクリックするだけで、追加したパースペクティブを
切り替えることができます。
-28 -
第4回 JAVA講習
Eclipseを使用したプロジェクト開発(作成)
Eclipseを使用して簡単なプロジェクトを作成します。右の手順に従って作成してください。
プロジェクト名:JavaProject
新規プロジェクト作成手順
クラス名
1. 新規プロジェクトの作成
(1) Eclipseのメニューバーから、[ファイル] - [新規] - [プロジェクト]を選
択します。
(2) 新規プロジェクトダイアログボックス画面が表示されるので、[Javaプロ
ジェクト] - [次へ]をクリックします。
(3) プロジェクト名:JavaProjectを入力し、[終了]をクリックします。
⇒ 新規プロジェクトJavaProjectの作成完了
1
2
3
4
5
6
7
8
9
10
:MyJavaApp.java
/**
* eclipseサンプルプログラム
* @author hito
*/
public class MyJavaApp {
public static void main(String[] args) {
System.out.println("This is My Java Application !");
}
}
①
プロジェクトのコンパイル(自動で行う場合)
右の説明の「3」は、メニューバーから[プロジェクト]にある「自動的にビル
ド」にチェックが入っていない場合の作業です。[自動的にビルド]にチェック
が入っている場合は、クラスを保存した段階で自動的にビルドされます。
2. MyJavaAppクラスの作成
(1) パッケージ・エクスプローラ・ビュー上でプロジェクトJavaProjectを選択
した状態で、右クリックし、[新規] - [クラス]を選択します。
(2) 名前(クラス名):MyJavaAppを入力し、[終了]をクリックします。
JavaエディタにMyJavaApp.javaが表示されます。
⇒ Eclipse上のJavaエディタを使用し、左図のソースを入力し、
クラスMyJavaApp.javaを作成してください。
(3) 作成が完了したら、左図の①をクリックして保存してください。
3. プロジェクトのコンパイル(手動で行う場合)
(1) プロジェクトJavaProjectを選択します。
(2) Eclipseのメニューバーから [プロジェクト]を選択します。
(3) [プロジェクトのビルド]を選択します。 ⇒ ビルドの完了
-29 -
第4回 JAVA講習
Eclipseを使用したプロジェクト開発(実行)
作成したプロジェクトを実行します。右の手順に従って作成してください。
④
③
⑤
①、②
⑥
JavaProject実行手順
1. JavaProjectの実行
(1) パッケージ・エクスプローラー・ビューからJavaProjectを選択します。
(2) Eclipseのツールバーから、[実行] - [構成および実行]を選択します。
(3) 構成の作成、管理、および実行ダイアログが表示されます。
Javaアプリケーションをダブルクリックします。(①)
新規構成をクリックします。(②)
名前:MyJavaApplicationを入力します。(③)
※新規構成の名前が MyJavaApplication に変更されます。
(4) プロジェクト:JavaProjectを入力します。(④)
(5) メイン・クラス:MyJavaAppを入力(⑤)→ [実行]をクリックします。(⑥)
⇒ ワークベンチのコンソールに実行結果が表示されます。(⑦)
2. プロジェクトの実行方法 その2
(1) パッケージ・エクスプローラー・ビューからJavaProjectを選択します。
(2) Eclipseのツールバーから、[実行] - [Javaアプリケーション]と選択
します。
(3) JavaProjectの実行結果がコンソールに表示されます。(⑦)
※ 1、2のどちらの方法でも同じ結果が得られます。
⑦
-30 -
第4回 JAVA講習
デバッグ
a. デバッグとは?
デバッグとは、コンピュータプログラムの誤り(「バグ」と呼ばれます)を探し、取り除くことです。プログラムは人間が作成するため、どうし
ても誤りが混入してしまいます。このため、デバッグはプログラム開発過程において非常に重要な意味を持ちます。バグを発見したり修正
する作業を支援するソフトウェアのことをデバッガといいます。
デバッグは、プログラマーにとって避けることのできない作業です。デバッグに取り組むには多くの方法がありますが、いずれの場合も最
終的には必ずバグの原因となっているコードを発見することになります。問題となるコードを発見したら、そのエラーが発生する状況や関連
する値、変数、およびメソッドを知ることもデバッグに役立ちます。デバッガを使用すると、このような情報の発見が非常に簡単になります。
◆EclipseデバッガとDebugビュー
Eclipse には、組み込みのJavaデバッガがあります。このデバッガは、ステップ実行(※①)、ブレークポイント(※②)と値の設定、変数と
値の検査、スレッドの中断と再開をはじめとするアプリケーションのデバッグも可能です。Eclipse は主にJava開発環境として使用されます
が、他のプログラミング言語にもそのアーキテクチャを使用することができます。
◆ Javaのデバッグ
プロジェクトのデバッグを開始するには、その前にコードが正常にコンパイルされ、実行できる状態になっていなければなりません。最初
にアプリケーション実行のための設定を作成し、その設定でアプリケーションが正常に開始されることを確認する必要があります。次に、メ
ニューバーから [実行] - [デバッグ]…メニューを使用して、同様の方法でデバッグの設定を行う必要があります。また、デバッガでメイン
のJavaクラスとして使用されるクラスも選択する必要があります。1つのプロジェクトに対して、必要なだけデバッグ設定を作成することがで
きます。デバッガを([実行] - [デバッグ]…から)起動すると、新しいウィンドウにデバッガが表示され、デバッグを開始できます。
4.5節で作成したJavaProjectを使用してeclipse上でデバッガの設定およびデバッグを行ってみましょう。
(※①)ステップ実行・・・プログラムを1行ずつ実行していく実行方法です。
(※②)ブレークポイント・・・プログラムの開発時にプログラムの動作状態を確認するために、プログラムコード中に挿入される
強制実行停止コードです。
-31 -
第4回 JAVA講習
b. デバッガの設定
デバッガの設定手順
デバッグパースペクティブ
①
②
③
1. ブレークポイントの設定
・4.5節で作成したMyJavaApp.javaを使用してブレークポイントを設定します。
ブレークポイントを設定すると、プログラムの実行を該当箇所で一時停止
させて、変数の値などを確認することができます。
(1) MyJavaApp.java をEclipseで開きます。
(2) 疑わしいコードが見つかったら、該当するソースコードの行の左横の
マーカーバー (Javaエディタ領域の左端にあるバー。P7を参照) をダブ
ルクリックします。これでブレークポイントを設定することができます。
※ブレークポイントを解除するには、ブレークポイントをダブルクリックし
ます。
(3) 今回はMyJavaApp.javaの8行目にブレークポイントを設定してください。
2. デバッガの設定
(1) Eclipseのメニューバーから[実行] - [構成およびデバッグ]を選択します。
(2) 構成の作成、管理、および実行画面が表示されるので、
a. 名前:MyJavaApplicationを入力します。
b. プロジェクト:プロジェクト名JavaProjectを入力します。
c. メイン・クラス:MyJavaAppを入力し、[デバッグ]をクリックします。
⇒ プロジェクトMyJavaApplicationのデバッガ設定完了です。
3. デバッグの実行
(1) 2の(2)のcの操作を実行した直後にデバッグが実行されます。
(2) ブレークポイントでプログラムが停止していることを確認します。(①)
(3) 変数の値を確認します。(②)
(4) 再開(③)をクリックしてデバッグを終了してください。
-32 -
第4回 JAVA講習
3 . J a v a 基 本 文 法
-33 -
第4回 JAVA講習
データ型の種類
プログラムで扱うすべてのデータには、データの種類を表すデータ型というものが存在します。Java
によってあらかじめ定義されたデータの型を、基本データ型といいます。基本データ型は、数値を扱
う8つの型と、文字を扱う文字型、そして正しいか正しくないかを示す論理型で構成されます。
<データ型の構成>
データ型
基本型
数値型
整数型
short 型
byte 型
int 型
long 型
浮動小数点型
参照型
float 型
double 型
文字型
char 型
論理型
boolean 型
<基本データの型の種類と特徴>
型の名前
種類
整数型
short, byte, int, long
浮動小数点型
float, double
文字型
char
論理型
boolean
特徴
負を含めた整数を扱う
負を含めた実数を扱う
1文字を扱う
true または false のどちらか
-34 -
第4回 JAVA講習
整数型
256 や -128 など、少数を含まず負の値も含めた(符号付き)整数を扱う型を整数型といいます。この整数型は扱
う値の大きさ(下限から上限までの範囲)によって、Byte, short, int, long の4種類に分類されます。
<整数型>
型名
byte
short
int
long
範囲(下限 ~ 上限)
-128 ~ 127
-32,768 ~ 32,767
-2,147,483,648 ~ 2,147,183,647
-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
浮動小数点型
浮動少数点型は、少数を含む値(実数)を扱う型です。少数を扱う際は、値の規模ではなく精度、つまり小数点
以下何桁まで扱えるかが重要な問題になります。桁の範囲が小さいと、それだけ誤差を含む可能性が出てき
ます。浮動小数点型には、float, double の2種類の型が用意されています。
<浮動小数点型>
型名
float
double
範囲(下限 ~ 上限)
-3.40282347 × 10 38 ~ 3.40282347 × 10 38
-1.79769313486231570 × 10 308 ~ 1.79769313486231570 × 10 308
<浮動小数点型の接尾語>
型
floatt
double
接尾語
f
F
d
D
例
0.0123f
123.45F
0.6789012345d
6789.012345D
1.23E-2f
1.23E+2F
6.789012345E+1d
6.789012345E+3D
-35 -
第4回 JAVA講習
文字型
「A」 や 「あ」 といった文字を1文字扱うのが文字型です。Javaではchar型といいます。
文字であることを示すために、扱う文字を「’」で囲みます。
コンピュータの内部において、文字は1文字1文字につけられた、文字コードと呼ばれる
番号(数値)で処理されています。Javaでは、UNIコードという文字コードを使用します。
従ってchar型で扱うことのできる文字の範囲もまた、このUNIコードが指定する数値の
範囲に準拠します。
UNIコードを指定する場合、「\u」 の後ろに16進数で表記したコード番号を記述します。
この「\u」を、UNIコードエスケープといいます。
「\」 や 「’」 など、文字の表現のために用いられる文字を指定したり、バックスペースやタブ
など、文字で表現できないものを表すために、エスケープ・シーケンスという特別な記号が
用意されています。
<エスケープ・シーケンス>
文字
バックスペース
水平タブ
改行
改ページ
復帰(carriage return)
ダブルクォート
シングルクォート
\マーク(またはバックスラッシュ)
エスケープ・シーケンス
\b
\t
\n
\f
\r
\"
\'
\\
-36 -
U N Iコードエスケープ
\u0008
\u0009
\u000a
\u000c
\u000d
\u0022
\u0027
\u005c
第4回 JAVA講習
予約語
Javaには、文法上使用するなど、あらかじめ指定されている名前があります。これを予約語と
いいます。変数名には、この予約語と同じ名前を使用することはできません。ただし、
privateRoomやnewPackageのように、予約語を組み合わせた名称は使用できます。
<予約語一覧>
abstract
boolean
break
byte
case
catch
char
class
const
continue
default
do
doubl
else
extends
final
finally
float
for
goto
if
implements
import
instanceof
int
interface
long
native
new
package
-37 -
private
protected
public
return
short
static
super
switch
synchronized
this
throw
throws
transient
try
void
volatile
while
第4回 JAVA講習
変数の代入と有効範囲
宣言は変数を使う必要が生じたときに行います。しかし、一度宣言したらいつまでも利用できるわけで
はありません。変数には有効範囲があり、有効範囲の外では、その変数を使用することができないの
です。この有効範囲のことをスコープといいます。
ブロックの中で宣言された変数はそのブロック内でしか使用できない
{
int a;
a = 123;
}
変数aが宣言されたブロックの外でaを使うことはできない
A = 456;
ただし、ブロックの中にブロックがある場合、外側のブロックで宣言した変数は、内側のブロックでも使用することが
できます。内側で宣言した変数は当然、外側のブロックで使用することはできません。また、外側のブロックで宣言
された変数を、スコープ内で使っても支障ありませんが、この変数と同じ名前で変数を宣言するとエラーになります。
ブロックの外側で宣言した変数と同じ名前の変数を宣言することはできない
{
int a
{
int
int
}
a +=
= 12;
a = 34;
b = 56;
b;
外側のブロックで宣言した変数aが有効なので、
同じ変数名で宣言することはできない
内側のブロックで宣言した変数bは使用できない
}
スコープの外であれば、同じ変数を宣言することはできます。しかし、特別な用途以外では、変数を同じ名前でい
くつも宣言することは、プログラムの保守上、好ましくありません。
-38 -
第4回 JAVA講習
配列
配列を使用する事で、複数のデータを一括管理することができます。Javaの場合は生成され
た時に自動的に初期化されます。intなどの型の場合は「0」が初期値として入ります。
<一次元配列>
一次元配列の宣言方法
型[] 配列名 = new 型[配列数];
{
int[]
a[0]
a[1]
a[2]
a
=
=
=
= new int[3];
30;
20;
45;
}
<二次元配列>
二次元配列の宣言方法です。
基本的には[]の数が増えるだけ構文は特に変わりはありません。
二次元配列の宣言方法
型[][] 配列名 = new 型[配列数][配列数];
-39 -
第4回 JAVA講習
演算子
「=」(イコール)や、足し算の「+」(プラス)、引き算の「-」(マイナス)などの総称を、演算子とい
います。演算子は、「値に対してどのような操作(演算)を行うか」を示すものです。
<演算子の優先順位>
優先順位
1
2
3
4
5
6
7
8
9
10
11
12
13
14
演算子
[ ] . ( )
! ~ ++ -- +(正符号) -(負符号) ()(キャスト) new
* / %
+(加算演算子) -(減算演算子)
<< >> >>>
< <= > >= instanceof
== !=
&
^
|
&&
||
?:
= += -= *= /= %= & = ¦= ^= <<= >>= >>>=
-40 -
第4回 JAVA講習
算術演算子
算術演算子は、加算(+)、減算(-)、乗算(×)、除算(÷)の四則演算に剰余(余り)を加えたも
のです。
<算術演算子>
演算子
+
*
/
%
算数の記号
+
-
×
÷
÷
意味
加算
減算
乗算
除算
余り
使用例
150 + 100
150 - 100
150 * 100
150 / 100
150 % 100
結果
250
50
15000
1
50
加減算は算数の記号と同じですが、乗除算の記号はそれぞれ「*」(アスタリスク)と
「/」(スラッシュ)になります。また、「%」で余りを求めることができます。
-41 -
第4回 JAVA講習
比較演算子
比較演算子は、左辺と右辺の関係を、true(正しい・真) かfalse(誤り・偽)のどちらかで表す演
算子です。例えば、式「1<3」(1は3よりも小さい)の結果はtrue、「1>3」の結果はfalseになりま
す。
<比較演算子>
演算子
<
<=
==
!=
>
>=
算数の記号
<
≦
=
=
>
≧
意味
~より小さい(小なり)
~以下(小なりイコール)
等しい(等号)
等しくない(ノットイコール)
~より大きい(大なり)
~以上(大なりイコール)
使用例
1 < 2
1 ≦ 2
1 == 2
1 != 2
1 > 2
1 >= 2
結果
true
true
false
true
false
false
等号「==」はイコールを2つつなげます。1つだけだと代入演算子になってしま
すので、気をつけてください。
-42 -
第4回 JAVA講習
論理演算子
「AであってBでもある」 「CかDである」 というように、複数条件の関係を調べる演算子を、論理演算子といい
ます。論理演算子には、両方が成り立っていなければならない「かつ」、どちらか一方だけでも成り立ってい
なければならない「または」、否定を表す「~でない」の3種類があります。結果は常に論理値(trueかfalse)で
返ります。
<論理演算子>
論理演算子
&&
||
!
意味
かつ (A N D )
または (O R )
~でない (N O T )
<論理演算>
A && B
A || B
!A
<論理演算の結果>
A && B
A の値
false
false
true
true
B の値
(false)
(true)
false
true
結果
false
false
false
true
A || B
A の値
false
false
true
true
B の値
false
true
(false)
(true)
結果
false
true
true
true
!A
A の値
false
tru e
※()で囲まれている値は、短絡評価により調査されない値です。
-43 -
結果
tru e
false
第4回 JAVA講習
演習1
キーボードから2つ数値を入力し、足し算プログラムを作成します。
処理:
数値1を入力してください
2
数値2を入力してください
3
2 + 3 = 5です
-44 -
第4回 JAVA講習
import java.io.*;
public class En0101 {
public static void main(String[] args) {
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
try{
System.out.println("数値1を入力してください");
String strNumber1 = br.readLine();
System.out.println("数値2を入力してください");
String strNumber2 = br.readLine();
int num1 = Integer.parseInt(strNumber1);
int num2 = Integer.parseInt(strNumber2);
int sum = num1 + num2;
System.out.println(strNumber1 + "+" + strNumber2 + "=" + sum + "です");
}catch (Exception e){
e.printStackTrace();
}
}
}
-45 -
第4回 JAVA講習
if文
条件式を与えて、その条件式が真であればブロックAを、偽であればブロックBを実行します。
<基本構文>
if (条件式) {
ブロックA
} else {
ブロックB
}
else 以下は省略可能です。その場合は、条件式が真であればブロックAを実行しますが、偽であれば何もせずに
次の行へ制御が進みます。
<基本構文 その2>
if (条件1) {
ブロックA
} else if (条件2) {
ブロックB
} else if (条件3) {
ブロックC
} else {
ブロックD
}
else if() のブロックは幾つあっても構いません。また、最後の else ブロックは省略可能です。
この構文では、条件2と条件3の両方に合致する場合でも、条件2のブロックしか実行されません。条件式のブロッ
クを記述する順番を間違えると、正しく働きませんので、注意が必要です。
-46 -
第4回 JAVA講習
switch文
switch文を使うと、if文で記述するよりもすっきり表現できる上、多種の判断を行うことができます。
<switch文の書式>
switch (変数) {
case 値1 : 処理1;
case 値2 : 処理2;
・
・
・
・
・
・
case 値n: 処理n;
default: 処理m;
}
<記述例>
switch (counter) {
case 1: System.out.println(“3行表示”);
case 2: System.out.println(“2行表示”);
case 3: System.out.println(“1行表示”);
}
switch文の右側にある()に入る値は整数方(short、byte、int、long)かchar型でなければならず、浮動小数点型
の変数や小数を含む値は指定できません。この値を判定し、個々のcaseに分岐します。
分岐後は、以降の全処理を順番に実行します。例えば記述例の場合、変数counterの値が1なら「3行表示」「2行
表示」「1行表示」すべてを表示します。
式の値がどの定数にも一致しないときは、default部分の処理だけを実行します。何もする必要がない場合など
は、defaultを省略することも可能です。
-47 -
第4回 JAVA講習
for文
ある特定の処理を何度も行う場合、繰り返す条件を示すことで、同じ処理の繰り返しを行うことができます。for文
は、繰り返す回数が決まっているときに使用します。
<for文の基本スタイル>
<データフロー>
for (初期化式; 条件式; 更新式) {
処理;
}
初期化式
基本スタイルには、「初期化式」「条件式」「更新式」
という3種の式が使われます。これらの式では、繰り
返した数をカウントするために、制御子をいう変数
(ここでは i)を使用します。
初期化式
false
true
<記述例>
処
理
継
続
for ( i = 0; i < 5; i++) {
System.out.println(“Hello.”);
}
実行文
初期化式
1回処理を行うたびに i (初期値0)に1を足す。i が5
未満である間にこれを繰り返す
-48 -
処
理
終
了
第4回 JAVA講習
while文
for文が特定回数の繰り返しに使われるのに対し、while文とdo while文ではある特定の条件の間、処理を繰り返
させることもできます。
<基本スタイル>
<データフロー>
while (条件式) {
処理;
}
while文の条件式は、for文の条件式と同じ働きをし
ます。結果が論理型のtrueである限り、処理が繰り
返されます。
条件式
処
理
継
続
<記述例
>
true
実行文
int i = 0;
while (i < 5) {
System.out.println(“Hello.”);
i++;
}
制御変数 i の初期化、計算式 i++ は、それぞれfor
文の初期化式と更新式に相当します。このルール
を覚えておけば、for文とwhile文で処理を書き直す
ことも可能です。
-49 -
false
処
理
終
了
第4回 JAVA講習
do while文
While文では、繰り返し処理を実行する前に条件の判定を行っていました。しかしdo while文では、この判定を最初
の処理の実行後に行います。そのため、条件の合う合わないは別として、最初の1回は必ず実行されます。
<基本スタイル>
<データフロー>
do {
処理;
} while (条件式);
do while文は、条件判断が最後にある以外、while文
と同じです。
実行文
処
理
継
続
<記述例>
条件式
int i = 0;
true
do {
System.out.println(“Hello.”);
i++;
} while (i < 5);
-50 -
false
処
理
終
了
第4回 JAVA講習
クラス
クラスとは、プログラムをある実世界のモノと考え、それに必要なデータと働き(メソッド)をひとまとめにしたものです。
<クラスの定義>
class クラス名{
メソッド (引数){
・・・実行する処理・・・
}
}
メソッドは、クラスに用意する「機能」です。クラスではこの他に「フィールド」というものも用意することができ
ます。これはメソッドに用意する「値」のことです。
<フィールドを持ったクラスの定義>
class クラス名{
フィールドの宣言;
メソッド (引数){
・・・実行する処理・・・
}
}
-51 -
第4回 JAVA講習
MVCコントローラ
Model View Controller(モデル・ビュー・コントローラ; MVC)は、コンピュータ内部のデータをユーザに提示し、そ
れに対してユーザが何らかの指示を出すタイプの、独自のユーザインタフェースをもつアプリケーションソフトウェア
を、Model ・ View ・ Controllerの3つの部分に分割して設計・実装するという技法、又はそのような構造をいう。
Model
そのアプリケーションが扱う領域のデータと手
続きを表現する要素である。また、データの変
更をviewに通知するのもmodelの責任である。
<Model-View-Controller 概念図>
View
modelのデータを取り出してユーザが見るのに
適した形で表示する要素である。
すなわちUIへの出力を担当する。
Controller
ユーザの入力(通常イベントとして通知される)
に対して応答し、それを処理する要素である。
すなわちUIからの入力を担当する。
-52 -
第4回 JAVA講習
4.Eclipseを使用した開発
-53 -
第4回 JAVA講習
問題1
キーボードから四角形の縦と横の長さを入力、面積と周の長さを出力するプログラムを作成
してください。
ファイル名は「Ex0101.java」としてください。
実行例
縦の長さを入力してください
4
横の長さを入力してください
5
四角形の面積は20です
四角形の周の長さは18です
ヒント
キーボードから入力値を取得する場合は、BufferedReaderを利用します。
import java.io.*;を1行目に入力します。
Try catch文が必要です。
-54 -
第4回 JAVA講習
問題2
キーボードからドリンクのサイズ(L、M、S)を入力させ、次のような場合に応じたメッセージを出力する
プログラムをif文「Ex0102_1.java」、case文「Ex0201_2.java」でそれぞれ作成してください。
また、L、M、S以外の文字が入力された場合は、「L、M、Sのいずれかを入力してください」と出力して
ください。
なお、小文字(l、m、s)が入力されても同じ処理をしてください。
サイズ
値段(容量)
L
\280(300cc)
M
\230(200cc)
S
\180(150cc)
実行例
ドリンクのサイズを入力してください
L
\280(300cc)です
ドリンクのサイズを入力してください
m
\230(200cc)です
ドリンクのサイズを入力してください
X
L、M、Sのいずれかを入力してください
-55 -
第4回 JAVA講習
問題3
キーボードから人数と各自の点数を入力させ、次のように平均点と平均点以上の人数を出力する
プログラムを作成してください。
ファイル名は「Ex0103.java」としてください。
実行例
人数を入力してください
5
点数を入力してくだい
76
89
65
98
76
平均点は80.8です
平均点以上は2人です
-56 -