
そもそもプログラミング言語にはどのようなものがあるのか、そしてJavaはどのようなプログラミング言語かということについて説明します。
Java言語は、JavaVMと言う特殊なヴァーチャルマシン上で動作するプログラミング言語です。
そのため、WindowsやLinux、MacOSといった違うOSの上でも同一のアプリを実行することが可能です。
Java言語について更に詳しく説明します。
Java言語は1996年にSun Microsystems社によって発表された言語で、現在はOracle社によって開発されています。
主な使用用途はWebベースの業務用アプリケーション、そしてAndroidスマートフォンのアプリです。
Java言語の開発環境について説明します。
Java言語でプログラムを開発するにはJDK(Java Development Kit)というパッケージが必要です。
ただ、本格的なアプリケーションを開発するためにはeclipseのようなIDE(統合開発環境)があると便利です。
この講座全体の構成と受講方法について説明します。
基本編・応用編でJavaプログラミングの概略をマスターし、「様々なクラス」でJavaに標準的に用意されている様々なクラスの利用方法を紹介します。また、Androidでのアプリケーション開発が目標の方は、Java8の知識を身につけることをお勧めします。
Windowsを前提として、JDKをダウンロード・インストールして使用可能にするまでの説明をします。
同じ方法は添付している資料のPDFにも掲載されているのでこちらも参考にしてください。
手始めにHelloWorld.javaというプログラムのコンパイルと実行にチャレンジします。
作業用のディレクトリを作成し、そこにテキストエディタを利用してHelloWorld.javaというプログラムを入力し、保存します。
その語、javacコマンドを用いてコンパイル、javaコマンドを用いてプログラムの実行を行います。
Windows(64bit)を前提として統合開発環境(IDE)をダウンロードし、起動するまでの流れを説明します。
eclipseはWindowsのほかにもMacOSでも利用可能です。
【注意】
2026年1月時点では、Eclipse2025までがリリースされていますが、安定性やインストールの容易さなどを考えると、少し古めのEclipse2023をダウンロードすることをお勧めします。
eclipseを用いてHelloWorldを表示する方法を説明します。
Javaプロジェクトを作成し、コンソールで作成したのと同じようにHelloWorldクラスを作成します。
Sample101.javaの内容を解説します。
ソースコードの入力から実行までは一貫してeclipseを使って行います。
HelloWorldを応用して、もう少しいろいろな情報を表示するプログラムを紹介します。
System.out.print()では改行なしで、System.out.println()で改行ありで文字列や数値を表示します。
プログラムに文法的な間違いがあるとエラーメッセージが発生します。
ここではエラーの発生した場合の対処方法について説明します。
パッケージの概念について説明します。
再びコンソールに戻り、パッケージに入ったプログラムのコンパイルと実行の方法について説明します。
コマンドラインとパッケージの関連性について説明します。パッケージにある.javaファイルのコンパイルと実行について学習します。
基本編1日目の内容のまとめです。
Javaで扱う演算子(えんざんし)について説明します。
演算とはコンピュータが行う様々な計算処理のようなものです。
数値や文字列などと言ったデータを格納するっデータの入れ物である変数(へんすう)の概念について説明します。
変数には「数」という名前がついていますが、数値ばかりではなく文字列の場合でも変数という名前が付けられています。
演算処理を効率的に行える代入演算子(だいにゅうえんざんし)という演算子について説明します。
「整数→実数」「実数→整数」のように、型の異なるデータ間のデータ変換のことを型変換(かたへんかん)と言います。
型変換にはしばしばキャストが必要になります。ここでは型変換とキャストの方法について説明します。
数値とは異なる文字列での演算の方法について説明します。
finalを頭につけた変数は、値を一度代入したら二度と変えることができません。
ここではfinalを使ったサンプルとその注意点について説明します。
基本編2日目の内容についてのまとめ(前半)です。
基本編2日目の内容のまとめ(後半)です。
基本編2日目の補足としてリテラルについて説明します。
条件によってプログラムの流れが変わることを条件分岐(じょうけんぶんき)と言います。
また、このような処理のことを分岐処理(ぶんきしょり)と言います。ここではその基本となるif文を紹介します。
if文の応用としてif~else文について説明します。
elseは「…でなければ」という意味で、if~else文は「もし〇〇ならば××するが、そうでなければ△△する」といった処理を記述する際に用いられます。
if~elseだけでは記述できないような処理の場合、if~else if~elseを用います。
ifおよびelseは一つの条件式の中に一つしかつけることはできませんが、else ifはいくつでもつけることが可能です。
そのため、選択しが3つ、4つなど多岐に当たる分岐処理が必要な場合はelse ifを用いるとことになります。
if文のネストや複数の条件などといった複雑なif文を紹介します。
if文以外のもう一つの条件分岐の方法であるswitch(スイッチ)文について説明します。
switch()の()内の値によって処理を複数に分岐させる命令です。
基本編3日目のまとめの前半です。
基本編まとめの後半です。
(ORの図に誤りがあります。正しくはPDFファイルを参考にして下さい。)
基本編3日目からは繰り返し処理について説明します。
繰り返し処理はループとも呼ばれ、順次処理・分岐処理と並んでプログラミングにおけるもっとも基本的な処理の三要素の一つです。
まずは手始めに、for(フォー)文について説明します。
繰り返し処理をネストにしたものを、多重ループと言います。
ネストした回数により、二重ループ、三重ループという言い方をします。
一般に多重ループで最もよく用いられるのが二重ループです。
ここでは、forの二重ループのサンプルを紹介します。
while(ホワイル)文による繰り返しについて説明します。
whileは「~の間」という意味の言葉で、ある条件が成り立っている間繰り返し処理を行います。
do~while文は、処理としてはほぼwhile文と一緒ですが、違いはループを継続するための条件処理が後ろについている点にあります。
実際のサンプルを通して、while文とdo~while文の違いを説明します。
while文は条件式が成立しなければ、そもそも処理を一回も実行しないのに対し、do~while文は一度処理を実行してから繰り返すかどうかの判断を行います。
無限ループとは文字通り無限に繰り返されるループのことです。
ここではwhileループを用いて無限ループについて説明しています。
無限ループはプログラムのバグによっても発生しますが、テクニックとしてもよく用いられます。
無限ループから出るにはbreak(ブレイク)文を用います。
基本編4日目のまとめです。
基本編4日目の補足として、インクリメント・デクリメントの前置と後置の違いについて説明します。
大量のデータを扱うのに必要となる配列変数(はいれつへんすう)の仕組みと使い方について説明します。
配列は、初期化処理によって宣言と値の代入を同時に行うことができます。ここではその方法と利点について説明します。
添え字が複数存在する配列を多次元配列(たじげんはいれつ)と言います。
二次元のものを、二次元配列、三次元のものを三次元配列と言います。
Java言語では二次元は配列の各行の要素数がばらばらになったような不揃いな配列を作ることができます。
ここではその作成と利用方法について説明します。
基本編5日目のまとめです。
オブジェクト指向の概念と、クラス(class)とオブジェクト(Object)の関係性について説明します。
インスタンスの生成と削除について学びます。
実際のサンプルを通して複数のインスタンスを生成してみましょう。
一種類のクラスから複数のインスタンスを生成することができます。
同じクラスから作られたインスタンスはみな同一の名前のメソッド・フィールドを持ちますが、それらのふるまいや中身はインスタンスごとに異なります。
実際に複数のインスタンスを生成してみます。
メソッドについての学習を深めます。
実際に様々なメソッドを作り操作してみます。
アクセス指定子とは、クラス及びメンバのアクセス範囲を指定するもので様々な種類があります。ここではその種類と使い方について説明します。
同時にコンストラクタ(constructor)についても説明します。
通常、Java言語をはじめとする多くのオブジェクト指向言語は、フィールドを外部からアクセスできないようにします。
しかし、フィールドに外部からアクセスしなくてはならない場合、そのための専用のメソッドを用意します。
これをカプセル化と言います。ここではカプセル化の方法について説明します。
コンストラクタについて学習します。
コンストラクタは、インスタンス生成時に一度だけ実行されるメソッドで、インスタンスの初期化等に利用されます。
コンストラクタは1つのクラスに複数定義することが出来ます。
これをコンストラクタのオーバーロードと言います。
基本編7日目のまとめの前半です。
アクセス修飾子について復習します。
基本編7日目のまとめの前半です。
カプセル化とコンストラクタについて復習します。
参照とnullの関係性について説明します。
インスタンスを生成せずに呼び出すことが可能な静的メンバについて説明します。
静的メンバで自分自身のメソッドを呼び出す方法を紹介します。
応用編1日目のまとめです。
オブジェクト指向の大事な概念の一つである継承(けいしょう)をJavaについて説明します。
Java言語の仕様では全てのクラスは暗黙的にObjectクラスを継承しているものとされています。
ここではObjectクラスの性質について説明します。
応用編2日目のまとめです。
応用編2日目の補足1です。
ポリモーフィズムの概念について説明します。
応用編2日目の補足2です。
アノテーションの概念とその一つである@Overrideについて説明します。
① コースの概要
JavaはWebアプリの開発やAndroidスマートフォン・タブレットのアプリケーションを開発できるだけでなく、
近年ではIoTやクラウドコンピューティングの分野で大変注目を浴びています。
Javaを学ぶメリットは、スマートフォンアプリやWebアプリなどが開発できることばかりではありません。
スタンダードな言語仕様と汎用性の高い文法を持つことから、Java言語さえしっかりマスターすれば、
ここから更にC#やRubyなど他の言語を学ぶのが大変楽になります。
そのため、多くのシステム開発会社では新入社員にまずJava言語を学ばせてから他の言語の学習をさせます。
それぐらい、Java言語とは重要な言語なのです。
このコースを学ぶと、単なるJava言語の文法のみならずサンプルや練習問題を通して、
応用範囲の広いプログラミングの基礎体力も身につけることが出来ます。
そのため実用目的だけではなくプログラミング教育の参考資料としても最適です。
② 目標
最初に説明したように、このコースは初心者プログラマーを対象としたコースです。具体的には以下のような方が対象です。
プログラミング学習を始めた大学生および大学院生
ゲーム・情報系の専門学校の学生
他の様々な学校の学生
プログラミング教育に備える必要がある小学校から高校までの教員
今からプログラミングを始める新しい新入社員
Oracleの資格試験を受験するためにJavaプログラミングの基礎を学びたい方
Androidプログラミングを始めるためJava言語を学びたいと思っているプログラマー
SpringといったWebフレームワークでの開発をするためにJava言語を学びたいと思っているプログラマー
かつてJava言語を学んだこともありますが、挫折した経験のある人
③ 内容
コンテンツは、以下の内容で構成されています。
講義映像
ソースコード
練習問題と回答
開発環境として統合開発環境であるeclipseをWindows上で使用すると想定されています。
eclipseはインターネットで無料で入手できます。
ただし、このコースで導入されたJava言語のソースコードはLinxu/Mac OSなどの異なる開発環境、OSでも使用できます。
他の環境で勉強している人は、各自自分の環境に対応させて学習を進めてください。