Java-1 ?>

Java-1

Javaプログラミングの基本

ここではJavaプログラミングの主要な概念 (プロジェクト作成、パッケージ、クラス、メソッド、データ型、変数など)を学習していきます。基本から解説していますので、難しく考えずに手を動かしながら進めていきましょう。

サンプルプログラムの作成

Eclipseでは、プログラムに必要なファイルの作成から、プログラムコードの入力、プログラムの実行までのすべての操作を行うことが出来ます。Eclipseの操作をして、Javaプログラムの作成から実行までを通して、Javaプログラム開発の一通りの流れを体験してみましょう。以下の説明を一通り読み、課題の指示に従って作業を進めて下さい。

1.プロジェクトの作成

プロジェクトには、任意の名前をつけることができます。プロジェクトを作成すると、同じ名前のフォルダがワークスペース用フォルダー内に作成され、プログラムに必要なファイルやフォルダーが格納されるようになります。作成は以下のよう進めていきます。

Javaプロジェクトの作り方


左上にあるアイコンをクリックします。 スクリーンショット 2017-02-12 17.16.01 「Javaプロジェクト」を選択。 スクリーンショット 2017-02-12 17.17.40
%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-11-18-21-39-11

任意の名前でプロジェクトを作成後、以下のように表示されていれば問題ありません。

スクリーンショット 2017-03-09 午後4.56.23

 

2.パッケージの作成

パッケージは、クラスを識別するための名前です。「sample」というパッケージを作成して、クラス「MyClass」を作成すれば、このクラスは「sample.MyClass」と記述することで識別できるようになります。もし、exampleというパッケージにMyClassが存在しても、両者はパッケージ名によって全く別のクラスとして扱われます。

それでは、パッケージを作成してみましょう。

プロジェクト配下にあるsrcを右クリックして、新規パッケージを選択します。

スクリーンショット 2017-03-09 午後5.07.01

任意のパッケージ名をつけて完了します。

スクリーンショット 2017-03-09 午後5.09.47

完了後、以下のよう配置されていれば問題ありません。

スクリーンショット 2017-03-09 午後5.20.25

 

3.クラスファイル(Javaファイル)の作成

プログラムコードを記述するためのファイルを作成します。クラスには任意の名前をつけることができます。

Javaファイルの作り方

Javaファイルを作成したいプロジェクトを選択し、右クリックで[新規]→[クラス]を選択します。
スクリーンショット 2017-02-12 17.28.00 名前に作成したいファイル名を入力し、チェックボックスにチェックをしたら完了をクリックします。
スクリーンショット 2017-03-10 午前10.37.35
以下のようにクラスが作成されていれば問題ありません。 スクリーンショット 2017-03-10 午前10.40.13

 

4.プログラムコードの記述

クラスファイルにプログラムコードを記述します。Eclipseでは、専用のテキストエディタを使って作業します。

以下のサンプルコードを参考に、Javaプログラムの構造を見ていきましょう。

スクリーンショット 2017-03-09 午後3.35.35

package sample; ・・・パッケージ文

Javaでは、プログラムコードをパッケージと呼ばれる単位で管理します。プログラムコードをまとめてあるクラス「Hello」は、「sample」パッケージに所属することになります。パッケージを使用するのは、名前の重複を避けるためです。他のプログラムファイルから「Hello」クラスを呼び出したい場合は、「sample.Hello」と記述すれば、sampleパッケージのHelloクラスであることがはっきりわかります。

Onepoint

パッケージ名を指定することで、たとえ同名のクラスが存在しても、「sample.MyClass」と「example.MyClass」は全く別のクラスとして扱われます。

class Hello ・・・クラスであることを示すコード

上記のコードは、ここから先に記述してあるコードは、「Helloという名前のクラスに属するプログラムコードです」という意味を持ちます。プログラムは、1つの機能だけをもつプログラムから、複数の機能を持つプログラムがあります。そこで、プログラムコードの意味をわかりやすくするために、プログラムコードを機能別に分ける必要があります。Javaでは、プログラムコードを機能別に分ける仕組みとしてクラスを使います。クラスに所属するコードは、「{」と「}」の間に記述します。

public static void main(String[] args) {  ・・・命令文をまとめる

プログラミングの世界では、何かの処理を行うためのコードを命令文と呼びます。Javaでは、命令文をメソッドと呼ばれる単位で管理します。このようにすれば、別の箇所で同じ命令文を使いたい場合に、メソッド名を記述すればすぐに呼び出して使うことが出来ます。ここでは、以下のコードが「main」という名前のメソッドに属することを示しています。メソッドに属する命令文は「{」と「}」の間に記述します。

Onepoint

staticは「このメソッドは何の前置きもなしにすぐに使うことができる」ことを意味し、voidは「このメソッドは処理を行うだけで処理の結果が何であったかは通知しない」ことを意味します。String[] argsは、このメソッドが実行されたときの状況を調べるための記述です。具体的には、このメソッドを実行したコマンド(命令)の名前を文字列で受け取る事ができますが、普段はあまり使用しません。

System.out.println("Hello world");  ・・・命令文(ステートメント)

これが命令文の本体です。ここでは、文字列の「Hello world」をコンソール(プログラムの実行結果を表示するためのEclipseのビュー)に表示するようにしています。

Onepoint

System.outはコンソールに出力する文字列を格納しているオブジェクト(特定のデータを読み込んでいるメモリー領域のこと)です。println()は、このオブジェクトに()内の文字列を送り込むためのメソッドです。なお、println()はJavaのクラスライブラリに登録されているメソッドですが、基本的なメソッドなのでパッケージ名やクラス名を指定しなくてもすぐに使うことができます。

課題:プロジェクト作成からクラス作成まで行ってください

プロジェクト名:IbcJava
パッケージ名:jp.ibc
クラス名:Hello

Eclipse上で以下のような表示が確認できれば問題ありません。

スクリーンショット 2017-03-17 午後2.50.35

Hello worldプログラムの作成と実行

作成したHelloクラスにはまだなにも処理が実装されていないので、プログラムを実行しても何も起こりません。
まずは簡単なプログラムの実行を試してみたいので、画面に「Hello world」という文字列を表示するプログラムを作ります。
以下のコードを先程作成したHelloクラスに記述していき、処理を実装してみます。

コードはmainメソッドの中に記述していきます。

スクリーンショット 2017-03-17 午後2.55.09

 

コードが実装できたらプログラムを実行していきます。プログラムの実行は、「実行」ボタンを押下するだけです。実行すると以下のようにコンソールに文字が表示されます。

スクリーンショット 2017-03-17 午後2.56.00

 

課題:画面に「Hello world」と表示するプログラムを実装して下さい

実装したプログラムは実行して動きを確かめてください。

ここまでの解説動画

ここまでのまとめ

基本的なJavaプログラムの作成から実行までを行ってきました。Javaでは、プログラムを作成する前に、プロジェクトの作成、パッケージの作成、クラスの作成という準備をおこなう必要がありました。この流れはJavaプログラミングの基本的な部分になりますので、きちんとマスターしておきましょう。事項から、具体的なプログラミングの構文を説明していきます。

 

Javaのデータ型

Javaでプログラミングを始める為に、まず最初に理解していくことがプログラムの型という概念になります。基本的なデータ型を紹介していきますので、まずは紹介されている基本的な型を覚えていきましょう。

文字列 – String

「あいうえお」「アイウエオ」のひらがな・カタカナだけでなく、「1234」の数字や漢字もこの型で扱えます。

数値 – int long など

「1234」や「-1234」の数値を扱うデータ型です。特にint型とlong型は現場で多く使われるデータ型です。

int型は-2147483648~2147483647
整数を扱う場合はほとんどint型を使用します。4バイト(32ビット)で扱える範囲は±21億ですので、明らかにこの範囲を超える場合以外は、基本的にはint型を使用します。

long型は-9223372036854775808~9223372036854775807
long型は、intでは表現しきれないような値(売り上げとかの金額関係が多いです)を表現する際に使用します。8バイト(64ビット)で扱える範囲は±900京です。

浮動小数 – float double

「12.34」や「-0.1234」の小数の数値を扱うデータ型です。int型やlong型では小数を扱えないので、このデータ型を使用します。
これらの型は浮動小数点型とも言われ、その名の通り小数点が前後に移動することを指します。よって、誤差が生じますので正確な金額計算には向きません。あくまで概算の計算をする場合などに使用します。

float型は±3.40282347E+38 ~ ±1.40239846E-45
有効桁数は約6~7桁の精度です。小数を扱う場合、末尾に「F」か「f」を付けるとfloat型になりますが、これを付けないとdouble型と解釈されてしまいます。

double型は±1.79769313486231570E+308 ~ ±4.94065645841246544E-324
通常、小数を扱う場合はこのdouble型を使用します。有効桁数は15桁の精度です。double型を明示的に表す場合は、末尾に「D」か「d」を付けます。

真偽値 – boolean

「true(真)」と「false(偽)」の2つのデータしか持たないデータ型です。2つしかデータは持ちませんが、よく使うデータ型です。

日付・時間型 – Date, LocalDate

日付や時間のデータを扱うデータ型です。曜日情報や日付や時間の足し算・引き算もこの型を使用します。

変数とは

データを入れる箱(入れ物)を変数と言います。
変数は何度でも利用でき、上書きもできます。
=(イコール)は代入を意味します。

変数を使うメリット

データに名前をつけることで、例えば中身が数値であっても、何を指しているかがわかるようになります。
また、値を変更しても、修正なく使い回すことができます。

変数名は、できるだけ他の開発者が見てもわかるように付けておくと良いでしょう。

例:String型

java1-5
この処理はString型のnameという変数にITブートキャンプを代入した処理になります。

例:int型


この処理はint型のnenreiという変数に20を代入した処理になります。

例:float型、double型


この処理は
float型のfという変数に12.34を、double型のdという変数に12.34を代入した処理になります。
float型、double型に代入したい場合、数字の後ろにfまたはdを記載します。

紹介した型を使って簡単なプログラムを作成しよう

練習問題プロジェクトダウンロード
http://i-b-c.jp/java/wp-content/uploads/2017/03/java1.zip

プロジェクトのインポート

Java1では予めプロジェクトを用意しています。まずはこのファイルにコードを書き足す流れで学習していきましょう。以下の手順に従い、プロジェクトのインポートを行って下さい。

ファイルからインポートを選択。
java1-1
一般にある既存プロジェクトをワークスペースへを選択

アーカイブ・ファイルの選択からダウンロードしたファイルを選択し完了を選択

EclipseにJava1プロジェクトが追加されたら準備完了です。

プロジェクトのインポートが上手くいかない場合の対処法

プロジェクトの削除方法

課題:練習問題に対応するクラス(Renshu1.java ~ Renshu3.java)に処理を付け足して、プログラムを完成させましょう。

 

練習問題1 – Renshu1.java

String、int、float型の変数に値を代入してプログラムを実行してみましょう。変数に代入した値がコンソールに出力されることを確認してください。

練習問題2 – Renshu2.java

int型を使って四則演算を実行するプログラムです。
java1-8
Javaの四則演算

足し算 半角の+を使います。
引き算 半角の-を使います。
掛け算 半角の*を使います。
割り算(商) 半角の/を使います。
割り算(余) 半角の%を使います。

Renshu2.javaには、変数の定義とコンソールへの出力処理を記述しています。ここに追記する形でそれぞれの計算処理を実装していきましょう。

赤の下線はコンパイルエラー

※EclipseでJavaプログラムをコーディングしていると、コンパイルエラー(プログラムが正常に実行できない状態)のあるコードを自動で発見してくれます。変数にまだ何も値が代入されていない状態でこのプログラムを実行すると、この変数の呼び出しでエラーが発生します。しかし、練習コードを追加すると変数に値が代入された状態になり、コンパイルエラーが解消されます。

Java四則演算

応用問題では、四則演算で求めた値をSystem.out.println()メソッドで出力してください。

応用問題

応用問題の解答例

 

練習問題3 – Renshu3.java

メソッドを使って文字列の操作を実行するプログラムの動作を確かめましょう。

メソッドとは

オブジェクトを扱う命令(データ操作)をメソッドといいます。
Javaに限らず、プログラミング言語は多くのメソッドが用意されており、その操作によって成り立っています。
練習問題3ではString型のメソッドを使って文字列を操作します。

大文字 ⇔ 小文字 変換
大文字 → 小文字 メソッドtoUpperCase()を使います。
小文字 → 大文字 メソッドtoLowerCase()を使います。
メソッドの実行方法

eclipseは使用可能なメソッドをリスト表示してくれます。
String型の変数odai1の後ろに.(ドット)を入力すると自動的に画像のように表示されます。
%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-18-21-47-20
使いたいメソッドを入力または「↑」「↓」キーで選択可能です。

使いたいメソッドを選択したら、「Enter」キーでメソッドを決定すると自動にメソッドがコーディングされます。
%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2016-10-18-21-53-00

その他よく利用される文字列操作メソッド

両端の半角スペースを削除

メソッドtrim()で先頭と末尾の半角スペースは削除されます。ただし、全角スペースは削除されません。

文字数を数える

メソッドlength()で文字数を数える事ができます。

文字を置換する

メソッドreplace("検索する文字","置換する文字")で文字を置換することができます。カッコの中には引数といってメソッドに渡すパラメータを設定します。

文字を検索する

メソッドindexOf("検索する文字")で検索したい文字が何番目にあるか調べる事ができます。見つからない場合は-1を返します。

他のメソッドも実装してみましょう

上記で紹介したメソッドを使用して、残りの問題も実装してください。実装後は以下のようになります。

スクリーンショット 2017-03-14 午後5.05.11

演習問題

問題1

以下のクラスを作成してBMIを計測するプログラムを実装してください。

それぞれの値をいれる変数名は、以下のようにしてください。

※データ型は()部分を参考に

・名前: name(文字列)
・年齢: age(整数)
・身長: height(小数)
・体重: weight(小数)
・BMI: bmi(小数)

※注意点

・変数に代入する値は自由です。好きな値を代入しましょう。
・BMIは、「体重 ÷ 身長 ÷ 身長」で算出できます。下記のようになるよう、計5種類の文字列を出力してください。

  • 名前は◯◯です
  • 年齢は◯◯歳です
  • 身長は◯◯mです
  • 体重は◯◯kgです
  • BMIは◯◯です

問題2

以下のクラスを作成してメソッドを利用したプログラムを実装してください。

ヒント

substring(int beginIndex)
このメソッドは部分文字列である文字列を返します。部分文字列は指定されたインデックスで始まり、この文字列の最後までになります。

“Harbison”.substring(3) returns “bison”
“emptiness”.substring(9) returns “” (an empty string)

パラメータ:
beginIndex – 開始インデックス(この値を含む)。
戻り値:
指定された部分文字列。

 

解答:a-1