スライドショー スライドショー

Java入門|初心者が知識ゼロから始められる実践記事まとめ

数あるプログラミング言語の中でも、人気の高い「Java」を習得したい方は多くいます。しかし、プログラミング未経験だと学習手順や方法がわからず、不安が大きいですよね。

そこで本記事では、Java入門者に欠かせない基礎知識や環境構築手順、プログラムの書き方などが学べる記事を一通りご紹介します。Java入門者は、ぜひご一読ください。

Javaの入門知識

まずは、Java入門者に必要な知識をこの章で押さえておきましょう。

  • Javaとは
  • Javaでできること
  • 知っておくべきJava用語

1つずつ順番に参考記事をご紹介します。

Javaとは

「Java」は、25年以上の長い歴史を持つプログラミング言語です。「TIOBE Index」の言語ランキングでは長年トップ3をキープしており、国内外問わず安定した人気があります。

ただし、Javaは人気がありますが習得難易度もかなり高い言語です。「オブジェクト指向」(詳細は後述)をはじめとした覚えづらい文法が多く、正しい手順で根気良く学習する必要があります。

メリット・デメリットや年収など、Javaに関する基礎知識については次の記事をご覧ください。

Javaでできること

Javaの特に大きな魅力は、「パフォーマンス」と「汎用性」です。Javaのプログラムは処理が比較的高速な上に、幅広いコンピューターOSで動作します。

そのため、多岐にわたる開発分野でJavaが使われています。代表例は、下記のとおりです。

  • Webサービス
  • 業務システム
  • 組み込みソフトウェア

Javaでできることについて詳しくは、こちらの記事をお読みください。

知っておくべきJava用語

Javaの環境構築やプログラム開発を行うときに、さまざまな用語が出てきます。Javaに関する主な用語の解説記事をまとめたので、ぜひ参考にしてください。

Javaの入門方法

難易度の高いJavaを習得するためには、どのような入門方法・入門手順を選ぶかが大切です。入門方法の選び方や、挫折しない入門手順を知りたい方は、次の記事をご一読ください。

Javaの主な学習方法は、「本で学習する」「学習サイトを利用する」の2つです。それぞれの学習方法についても参考記事をまとめたので、ぜひお役立てください。

本で学習する

入門書などの本を用いた学習では、1冊で幅広い知識をまとめて得られます。またオフラインでも学べるので、移動時間などに学習することも可能です。

本で学習したい方は、次の記事をお読みください。

学習サイトを利用する

Javaのプログラミングを実践するときは、パソコンを使います。そのためオンラインの学習サイトを利用すると、知識習得しながら効率的に実践学習が可能です。

また、Javaの公式ドキュメントも参考になるので活用をおすすめします。学習サイトなどを利用したい方は、下記から好きな記事をお選びください。

Javaの環境構築方法

Javaの入門方法を把握したら、環境構築しましょう。Javaの環境構築とは、大まかに下記2つです。

  • Javaのインストール
  • 開発環境のインストール

Javaプログラムを動かすだけなら、JavaのインストールだけでOKです。ただし、プログラミングで不便なことも多いので、開発環境も導入することをおすすめします。

Javaのインストール

Javaのインストールは、Javaプログラムの作成や実行のために必須となります。具体的には、Java用語の章の関連記事で紹介されている「JDK(Java Development Kit:Java開発キット)」のインストールが必要です。

Javaのプログラムを動かすためには、インストールに加えて環境変数の設定も行う必要があります。

Javaは、2021年現在でもアップデートが行われ続けています。セキュリティ対策や処理速度向上などのために、定期的にJavaをアップデートしましょう。

Javaのインストールや環境変数の設定、アップデートなどについては、こちらの記事がおすすめです。

開発環境のインストール

快適にJavaを使いたい方は、開発環境もインストールしましょう。Javaの開発環境は、「テキストエディタ」「統合開発環境(IDE)」の2つをおすすめします。

テキストエディタは、Javaのソースコードを効率的に書くためのツールです。文法ごとの色分け機能や記述ミスのチェック機能など、テキストエディタによって機能は変わります。

統合開発環境は、ソースコードの作成に加えてプログラムの実行やファイル管理なども行えるツールです。Javaでは、「Eclipse」と呼ばれる統合開発環境が特に人気があります。

開発環境のインストール手順については、次の記事を参考にしてください。

Javaの実行方法

Javaの開発環境を構築できたら、プログラムの実行方法を把握しましょう。作成したJavaのプログラムを実行するためには、事前に「コンパイル」と呼ばれる作業が欠かせません。

コンパイルとは、プログラム全体をコンピューターが理解できる「機械語」(0と1のデータ)に変換する作業です。Javaのようなプログラミング言語は、英単語などに似た表現を用いて人間だけが理解できる形で記述します。

よって、コンパイルをしていないJavaのプログラムは、コンピューターが理解できないため実行不可能です。Javaプログラムのコンパイルや実行を行う方法については、こちらの記事をご覧ください。

変数・データ型

Javaプログラムの実行方法がわかったら、文法を学んでいきましょう。まず学習すべきは、「変数」や「データ型」です。

変数とは

プログラミングでは、数字や文字列などのデータを扱うための「容器」が欠かせません。この容器が「変数」です。変数はプログラミングに必要不可欠なので、しっかり理解しておきましょう。

データ型とは

Javaで新しい変数を定義するときには、中に入れるデータの形式を決める必要があります。このデータ形式が、「データ型」です。

たとえば「侍」などの文字列を扱う変数には、「String」というデータ型を指定します。他にも整数や小数など多くのデータ型が存在するので、それぞれの基本を押さえましょう。

データ型の変換

Javaのプログラミングでは、「数字を文字列に変換したい」などのケースも少なくありません。このような処理を実現するためには、データ型の変換方法を理解する必要があります。

まずは、データ型の種類によらず使える「キャスト」を覚えましょう。ただし、キャストは正しく使わないとプログラムの誤作動につながる恐れもあるので、注意が必要です。

キャスト以外の変換方法は、データ型の種類によって変わります。次の記事を読んで、データ型の変換方法について幅広く知識を身につけましょう。

演算

「演算」は、変数や定数(固定データ)を2つ以上組み合わせた計算や制御のことです。「演算子」と呼ばれる記号が必要で、演算したい変数や定数の間に記述します。

単純な四則演算だけでなく、変数にデータをセットする「代入演算子」など、演算子の種類はさまざまです。また、演算子ごとに処理の優先順位も決められています。

基本的な演算子や演算方法について、一通り学習しましょう。

入出力処理

「入力処理」「出力処理」も、プログラムで頻繁に使われる文法なので覚えましょう。

入力処理は、キーボードなどからユーザーの入力内容をプログラムに取り込むことを指します。出力処理は、プログラム内のデータをウィンドウに表示する処理です。

Javaで入出力処理を行うための主な方法を学ぶときには、次の記事をご活用ください。

コメント

「コメント」は、プログラム実行時には処理されない「メモ書き」です。プログラムの処理内容をコメントで説明することで、別のプログラマーが理解しやすくなります。

チーム開発では1つのプログラムを複数メンバーで共有することが多いので、わかりやすいコメントを入れることが大切です。Javaでコメントを入れる方法は、こちらの記事を読んで学習してください。

条件分岐

プログラムには、さまざまなシチュエーションが発生します。たとえば前述の入力処理では、ユーザーが想定した文字を入力してくれないことも考えられます。

このような多くの状況に応じて行う処理を切り替える文法が、「条件分岐」です。自由度の高いプログラムを正しく動作させるためには、条件分岐が欠かせません。

Javaで条件分岐させる主な方法は、「if文」「switch文」「三項演算子」の3種類です。それぞれについて詳しくは、次の記事をご覧ください。

反復処理

反復処理は、パターンが決まった処理を繰り返し行う文法です。反復処理によって同様の処理を何行も記述する必要がなくなり、プログラミングの負担を軽減できます。

Java入門者が必ず覚えておきたい反復処理の構文は、「for文」「while文」の2つです。繰り返す回数が決まっている場合はfor文、決まっていない場合はwhile文、と使い分けます。

またJavaでは、「forEach」という反復処理の手段も存在します。それぞれの反復処理について学べる記事を下記にまとめたので、ぜひご活用ください。

オブジェクト指向

冒頭でも少し触れた「オブジェクト指向」は、Javaプログラミングで理解が欠かせない概念です。オブジェクト指向で覚えるべきことは多いので、下記の7つに分けてご紹介します。

  • クラスの基本
  • メソッドの基本
  • インスタンス
  • コンストラクタ
  • オーバーロード・オーバーライド
  • インタフェース
  • その他知っておくべき知識

クラスの基本

前述したように、オブジェクト指向ではプログラムの登場人物を「オブジェクト」という単位で扱います。オブジェクトを作る「ひな形」となるのが、「クラス」です。

クラスには、オブジェクトの内部状態を管理するデータ(変数)、オブジェクトの行動を決めるメソッドを定義します。たとえば「犬クラス」なら、「体力」などのデータ、「吠える」などのメソッドを作成可能です。

犬クラスというひな形を作ることで、犬種が異なる複数の犬でも容易にオブジェクトを生成できます。また、犬クラスの機能を「継承」させて、「チワワクラス」などを作ることも可能です。

クラスについて詳しくは、こちらの記事を参考にしてください。

メソッドの基本

「メソッド」は前述のとおり、オブジェクトの行動を定義するものです。クラスをデータ管理の目的だけで使う場合などを除き、大抵のクラスには1つ以上のメソッドを記述します。

メソッドを呼び出すときには、「引数」と呼ばれる入力データを渡すことが可能です。また「return文」を使うことで、メソッドの処理結果を「戻り値」として呼び出し元に出力できます。

なお、Javaのプログラムを実行すると、必ず「main」という名称のメソッド(エントリーポイント)が最初に呼ばれます。メソッドの使い方やmainメソッドについては、次の記事をお読みください。

インスタンス

「インスタンス」はクラスをもとに生成した実体のことで、「オブジェクト」とほぼ同義です。クラス内に定義した通常のメソッドは、インスタンスを作ることで初めて呼び出せるようになります。

インスタンスを生成するときには、文字列型などと同様、1つの変数に実体をセットします。こちらの記事を読んで、インスタンスの基礎を押さえましょう。

コンストラクタ

「コンストラクタ」は、インスタンスの生成時に呼び出されるメソッドです。多くの場合、インスタンスの変数を初期化する目的で使われます。

コンストラクタは、クラス名と同じ名称のメソッドとして定義するのが基本です。コンストラクタの基礎学習には、次の記事をご活用ください。

オーバーロード・オーバーライド

オブジェクト指向には、「オーバーロード」「オーバーライド」という概念が存在します。言葉は似ていますが、意味は全く異なります。しっかり違いを理解しましょう。

オーバーロードは、1つのクラス内に同じ名称で引数が異なるメソッドを複数作成できる概念です。メソッドの役割は同じでも、入力データ(引数)の型が変わりうるケースなどで役立ちます。

オーバーライドは、親クラスのメソッドの処理内容を子クラスで書き換えることです。たとえば、「犬クラス」という親クラスを継承させて「チワワクラス」という子クラスを作るケースを考えましょう。

「ワン」と出力する犬クラスの「吠えるメソッド」を、チワワクラスでは「ワンワン」と出力させたいとします。オーバーライドを使うことで、犬クラスの変数など使える部分は流用しつつ、最小限の記述量でチワワクラスの「吠えるメソッド」だけを変更可能です。

オーバーロード・オーバーライドについて詳しくは、こちらの記事を参考にしてください。

インタフェース

「インタフェース」は、クラスに必要となるメソッドを漏れなく記述するための文法です。インタフェースの定義方法は、通常のクラスと下記の2点が大きく異なります。

  • 変数はすべて定数扱いとなる(初期値の変更不可)
  • メソッドの処理内容は記述しない

インタフェースは、子クラスに親クラスの機能を継承させるのと同様に、任意のクラスに付加します。そのクラスでは、インタフェースに定義されたメソッドの処理をすべて記述しないとコンパイルエラーになります。

必要なメソッドをインタフェースとして事前に取り決めておくことで、クラスメソッドの記述漏れを防止できるのです。インタフェースについても、次の記事でしっかり学習しましょう。

その他知っておくべき知識

Javaのオブジェクト指向には、まだまだ覚えるべき文法や概念が存在します。Javaを使いこなすために、下記に挙げた記事もぜひご一読ください。

修飾子

「修飾子」は、変数やメソッドに何らかの性質を付け加える文法です。たとえば変数の定義時に「public」と頭に記述すると、その変数はプログラム内のどこからでも参照できるようになります。

修飾子は種類が多いものの、頻繁に使う文法のひとつです。それぞれの性質や使い方について、次の記事を読んで理解しましょう。

配列

「配列」は、同じデータ型の変数を複数個まとめて扱える文法です。たとえば、生徒100人のテストの点数をプログラムで扱う場合、変数を100個も定義するのは大変ですよね。

このとき「score[100]」という配列にすることで、100人分の変数をたった1行だけで定義可能です。score[0]、score[1]、score[2]……のように、同じ名称の変数に番号を付けて区別します。

プログラムの記述量を減らせる上に、変数どうしの関連性もわかりやすくなります。配列はさまざまな操作が行えるので、こちらの記事を読んで使いこなせるように学習しましょう。

コレクション

「コレクション」はデータ型の1種で、配列と同様に複数の要素をまとめて扱えます。ただし配列は定義時の要素数を変更できないのに対し、コレクションは後から要素を追加・削除できるのが大きな違いです。

おもなコレクションは、下記の3種類です。

  • リスト(List型)
  • セット(Set型)
  • マップ(Map型)

1つずつ、順番に記事をご紹介します。なおコレクションの基礎知識をまとめて身につけたい方は、次の記事をご覧ください。

Javaのコレクションクラスまとめ(ListとArrayListの違いも解説)
更新日 : 2021年9月8日

リスト(List型)

「リスト」は、コレクションの中でも特にポピュラーなデータ型です。要素のソートや検索などのさまざまなメソッドが用意されており、使い勝手の良さが魅力といえます。

データ構造は配列と似ており、配列への変換も容易に行えます。リストの使い方については多くの記事で紹介していますので、好きな記事をお選びください。

セット(Set型)

「セット」はリストと似ていますが、下記の2点で大きく異なります。

  • 重複した値は排除される
  • 要素に順序の概念がない

たとえば、セットに「1」というデータを2回追加したとしても、登録されるのは1要素のみです。また、「1」「2」「3」をこの順序で追加しても、プログラム内部では「3」「2」「1」という順序で格納される場合もあります。

セットは、要素の有無だけを管理したい場合に適しています。こちらの記事を読んで、セットの使い方を把握しましょう。

マップ(Map型)

「マップ」は前述の2つと違い、1要素に「キー」と「値」の2データを持ちます。例えるならマップは「辞書」のようなもので、「キー」を手掛かりに必要な「値」を探すことが可能です。

キーには、任意の文字列を指定できます。わかりやすいキーを設定することで、必要なデータを探しやすくなるのがメリットです。

マップにも多くのメソッドが存在するので、次の記事を読んで操作の幅を広げましょう。

列挙型(Enumクラス)

「列挙型」は、2つ以上の定数をまとめて扱えるデータ型です。たとえば、「春」「夏」「秋」「冬」の4定数を1つの列挙型にすると関連性が明確になり、読みやすいプログラムが書けます。

Javaの列挙型は1種のクラスなので、便利な操作を行えるメソッドが存在します。こちらの記事で、列挙型を使いこなせるように学習しましょう。

文字列操作(Stringクラス・StringBuilderクラス・StringBufferクラス)

数あるデータ型の中でも、文字列型は非常に良く使われます。Javaで文字列を操作する方法についても一通り習得しましょう。

ここでは下記の5つに分けて、それぞれの記事をご紹介します。

  • 文字列操作系クラスの基本
  • 文字列の置換
  • 文字列の結合・分割
  • 文字列の整形
  • 文字列チェック

文字列操作系クラスの基本

Javaでの文字列操作には、便利なクラスが複数用意されています。「String」「StringBuilder」「StringBuffer」の3つが代表例です。

それぞれ使える機能が異なるので、次の記事で基本的な使い方を押さえておきましょう。

文字列の置換

文字列の中で一部分だけを変更したい場合、文字列置換の知識が必要です。こちらの記事を読んで、使い方を覚えましょう。

文字列の結合・分割

「ファイル名に拡張子を付けたい」「苗字と名前を分けたい」など、文字列の結合や分割が必要なケースも良くあります。それぞれの記述方法を知りたい方には、次の記事がおすすめです。

文字列の整形

「一部分だけを切り出したい」「余計なスペースを取り除きたい」などの場合は、文字列整形の知識が必要です。文字列の整形方法を知っておくことで、文字列操作の自由度が高まります

文字列チェック

たとえばユーザーにキーボード入力してもらう場合、想定した文字列が入力されるとは限りません。このようなケースでは、文字列の状態をチェックするテクニックも必要です。

文字列チェックを条件分岐と組み合わせることで、さまざまな状況に対応しやすくなります。文字列チェックは多くの記事で紹介しているので、気になる記事をお選びください。

正規表現(Patternクラス)

「正規表現」は、文字列をパターン化して扱いやすくする概念です。正規表現を活用することで、より柔軟な文字列操作が可能となります。

たとえば、郵便番号をJavaで正規表現すると「[0-9]{3}-[0-9]{4}」となります。暗号のようにも見えますが、パターン化することで文字数が増えてもシンプルに表現できるのです。

正規表現の基礎固めには、こちらの記事をおすすめします。

日付・時刻(Dateクラス・DateTimeクラス・Calendarクラス)

Javaには、日付や時刻を扱うための便利なクラスも存在します。覚えておきたいのは、「Date」「DateTime」「Calendar」の3つです。

それぞれを使いこなすために必要な記事をまとめたので、ぜひお役立てください。

ファイル・ディレクトリ操作(Fileクラス・Filesクラス・Pathクラス)

手作業では面倒なファイルやディレクトリの操作は、プログラム化することで効率化が可能です。ファイル・ディレクトリ操作については多くの記事があるので、下記の4つに分けてご紹介します。

  • ファイル・ディレクトリ操作の基本
  • ファイル・ディレクトリの作成/コピー/削除
  • ファイル・ディレクトリの情報取得
  • ファイルの読み書き

ファイル・ディレクトリ操作の基本

ファイル・ディレクトリ操作の基本的な使い方が学べる記事や、欠かせないパスの扱い方に関する記事をまとめました。ぜひご活用ください。

ファイル・ディレクトリの作成/コピー/削除

システム間の連携や、大量データの入出力先としてファイルが使われます。次の記事を読んで、基本的な操作方法を把握しましょう。

ファイル・ディレクトリの情報取得

特定のファイルやディレクトリ(フォルダ)を探したい場合なども多いので、情報取得の方法も理解しておく必要があります。ファイル・ディレクトリの情報を取得する詳しい方法は、次の記事を参考にしてください。

プロパティファイルの基本

「プロパティファイル」とは、Javaのプログラムが読み書きできる設定ファイルのことです。コレクションのマップと同様に、「キー」と「値」のワンセットでデータを扱えます。

たとえばファイルパスをプログラム内に直接記述する場合、ファイルパスを変更するたびにコンパイルし直さなければなりません。このような場合は、ファイルパスをプロパティファイルに保存しておくと便利です。

プログラム実行時に最新のプロパティファイルから必要な情報を取得できるため、ファイルパスを変更しても再コンパイルが不要となります。プロパティファイルの基本的な使い方は、こちらの記事を読むと把握できます。

ファイルの読み書き

Javaでは、ファイルの読み書きに使えるクラスも多数存在します。ファイルの種類ごとの使い分けも必要です。次の記事を読んで、それぞれ基本的な使い方を学びましょう。

例外処理

コンパイル時にエラーが発生しなくても、実行時に「例外」が発生することもあります。

たとえば、ある数を0で割ることはできませんよね。プログラムの世界でも同様に、変数を0で割ろうとすると「ゼロ除算」という例外が発生します。

「例外処理」を使うことで、こうした実行時の思わぬトラブルに対応できます

Javaの例外処理では、「try-catch文」を使うのが基本です。詳しくは、次の記事をお読みください。

パッケージ・ライブラリ・フレームワーク

Javaの開発では、「パッケージ」「ライブラリ」「フレームワーク」の3概念の理解も大切です。

パッケージは、クラスやインターフェースをグループ化してまとめたものです。グループ化することで管理が容易になり、効率的な開発が可能となります。

ライブラリは、複数のパッケージをまとめて使いやすくしたものです。フレームワークは、プログラムに必要な「機能」や「構造」を少ない労力で実現するための「骨組み」を提供してくれます。

一般公開されているライブラリやフレームワークを利用することで、Javaの開発効率を高めることが可能です。ライブラリは、「jarファイル」という圧縮ファイル形式で提供されます。

こうした基礎知識を身につけるときには、こちらの記事をご覧ください。

まとめ

今回はJava入門者向けに、参考となる記事を一通りご紹介しました。

Javaには安定した人気がありますが、習得難易度も高い言語です。複雑な文法も多いので、1つひとつ正確に理解していく必要があります。

今回ご紹介した記事を参考にして、ぜひJavaの習得を成功させてください。

侍エンジニアは「人生を変えるプログラミング学習」をコンセンプトに、過去多くのフリーランスエンジニアを輩出したプログラミングスクールです。プログラミングに役立つ情報や有用な情報を発信していきます。
サービスページはこちら

あなたの目的に合わせた
SAMURAI ENGINEERの運営サービス

SAMURAI ENGINEER Pro

未経験でも挫折しないプログラミングスクール

詳細はこちら

SAMURAI ENGINEER Plus

日本最大級のサブスク型オンラインITスクール

詳細はこちら

SAMURAI ENGINEER Freelance

「一人で稼げる」スキルを身につける

詳細はこちら
Close