検索

キーワード


【Java】 クラスの基礎知識とクラスを構成する要素や機能まとめ

  • 公開日:2020-08-25 11:56:54
  • 最終更新日:2021-01-25 19:12:17
【Java】 クラスの基礎知識とクラスを構成する要素や機能まとめ

こんにちは、駆け出しプログラマーの若江です!

ここでは初学者として学習を終えた私が、アウトプットの意味も込めてクラスの基本について紹介させていただきます。

できる限り初学者が理解しやすい内容として紹介させていただくので、参考となれば幸いです!


クラスの基礎とクラスを構成する要素まとめ

Java でクラスはプログラムの核となる部分です。

プログラムの機能を一つ一つ紐解いていくと、ほとんどのものはクラスに行きつくほどです。

ここでは他の記事の紹介も交えてクラスの概要からクラスの構成、クラスにまつわる概念などを紹介します。


クラスの概要

クラスは「設計図」と表現されるほど、プログラムの構成が部分的に書かれたものです。

クラスは class宣言をすることでクラスと判断されます。


これらクラスから、実際にプログラムを動かす「モノ」を生成することを「インスタンス化」と呼び、

インスタンス化で生成されたモノを「インスタンス」と呼びます。

クラスはインスタンス化して初めてその機能を有効活用できるということですね。



クラスの構成

基本的なクラスの構成は、

 ①クラスの在処を表す「パッケージ

 ②状態を表す「フィールド

 ③動作を表す「メソッド

 ④インスタンス生成時にフィールドの初期化などを行う「コンストラクタ

からできています。

実際のクラスを例にインスタンスの生成までをサンプルコードで見てみましょう。


◆クラスの作成例

package sample;

public class TestClass {

	// フィールド
	public int number;

	// コンストラクタ
	public TestClass(int number) {
		this.number = number;
	}

	// メソッド
	public void test(int num) {
		number += num;
	}
}

【TestClass の動作】

・コンストラクタの TestClass(int number) :インスタンス生成時に整数の引数をフィールドへ渡します。

・フィールドの int number :コンストラクタから引数をもらい初期値を保持します。

・メソッドの test:呼び出された際に、フィールドの変数 number の値にメソッドが引数で受け取った値 num を足します。


public class TestClass2 {

	public static void main(String[] args) {
		TestClass sample = new TestClass(10);
		sample.test(5);
		System.out.println(sample.number);
	}
}

【TestClass2 の動作】

・new 演算子で、初期値 10 を設定したコンストラクタ TestClass() から変数名 sample のインスタンスを生成。

・sample インスタンスの test メソッドの引数に 5 を渡す。

・sample インスタンスの number フィールドの値を表示。


基本的なクラスの作成からインスタンスの生成までを紹介しました。



クラスにまつわる記事まとめ

クラスはフィールドやメソッドなど様々な要素から構成されています。

また要素自体にも様々な機能が用意されており、

その組み合わせ方によってそれぞれのクラスが個性を持ち始めます。

基本的なクラスにまつわる要素の紹介を、初学者がわかりやすいようにまとめていますので、

ぜひチェックしてみてください。



class宣言の紹介 ~クラスの作成方法~
パッケージとは? ~パッケージの仕組みから宣言まで~
import宣言の紹介 ~外部パッケージのクラス利用方法~
メソッドの紹介 ~メソッドの基礎と引数の種類~
アクセス修飾子とは? ~アクセス修飾子の役割と種類~
命名規約とは? ~様々な要素の名づけ方ルール~
インスタンスの紹介 ~インスタンスの特徴と生成〜
コンストラクターの紹介 〜基本的なインスタンスの初期化方法〜
イニシャライザの紹介 〜インスタンスの初期化方法〜
変数と定数 〜変数と定数の種類〜
継承とオーバーライドの紹介 〜継承・super・@Override の使い方〜
インターフェースの紹介 〜implementsの方法・インターフェースでのinstanceofの使い方〜
インターフェースのdefaultメソッドとstaticメソッドの紹介(Java8より機能実装)
抽象クラスの紹介 〜抽象クラスの使い方・インターフェースとの違い〜
final修飾子の紹介 〜変数・メソッド・クラス・配列・フィールド・コレクションでのfinal修飾子〜
thisとsuperの紹介 〜this・superそれぞれの使い方と併用〜
static修飾子の紹介 〜static修飾子の概要・使い方〜
アノテーションの紹介 〜標準アノテーション:@Override,@Deprecated,@SuppressWarnings〜
アノテーションの紹介 〜独自アノテーションの定義〜
ネストクラスの紹介 〜インナークラス・ローカルクラス・匿名クラス・staticクラス〜
シリアライズの紹介 〜シリアライズとでシリアライズの概要と使い方〜
ジェネリクスの紹介 〜ジェネリクスの概要・ワイルドカードの使い方〜
ジェネリクスの紹介 〜自作クラス・メソッドへの付与〜
equals メソッドと hashCode メソッドの紹介

【著者】

若江

30代で異業種となるIT業界へ転職した駆け出しのプログラマです。これまで主に Java や Ruby、HTML/CSS を使って学習を目的としたショップサイトや掲示板サイトの作成を行いました。プログラマとしての経験が浅いからこそ、未経験者の目線に近い形で基礎の紹介をしていきたいと思います。

よく読まれている記事
【Java】JSPでタグライブラリを使う(JSTL)

【Java】JSPでタグライブラリを使う(JSTL)

こんにちは。エンジニアの新田です!ここでは、システムエンジニアとして働いている私が、システム開発手法や開発言語について紹介していこうと思います。今回は、JSPの標準タグライブラリ「JSTL」について紹介します。Javaについて勉強している方、Webアプリケーションを構築したいと思っている方の参考になれば幸いです!関連記事リンク: 【Java】JSPの基本的な構文/【Java】JSPのアクションタグ

【Java】Stringクラス文字列を操作するメソッドの使い方まとめ!実例も紹介!

【Java】Stringクラス文字列を操作するメソッドの使い方まとめ!実例も紹介!

こんにちは。新人エンジニアのサトウです。システムエンジニアとして駆け出したばかりですが、初心者なりの視点でわかりやすい記事を心がけていますので参考になればうれしいです。プログラム初心者✅にも、プログラムに興味がある人✨も、短い時間で簡単にできますのでぜひこの記事を読んで試してみてください!そもそもStringとは何?『 String 』... Java言語において文字列のデータ型を指します。基本デ

【Java】文字列の置き換え(String#format)!エスケープシーケンスのまとめも!!

【Java】文字列の置き換え(String#format)!エスケープシーケンスのまとめも!!

こんにちは。新人エンジニアのサトウです。システムエンジニアとして駆け出したばかりですが、初心者なりの視点でわかりやすい記事を心がけていますので参考になればうれしいです。プログラム初心者✅にも、プログラムに興味がある人✨も、短い時間で簡単にできますのでぜひこの記事を読んで試してみてください!Stringクラスformatメソッドの文字列整形【java.utilパッケージ】Formatterクラスfo

【Java】文字列格納後に変更可能!?StringBufferクラスとStringBuilderクラス!

【Java】文字列格納後に変更可能!?StringBufferクラスとStringBuilderクラス!

こんにちは。新人エンジニアのサトウです。システムエンジニアとして駆け出したばかりですが、初心者なりの視点でわかりやすい記事を心がけていますので参考になればうれしいです。プログラム初心者にも✅、プログラムに興味がある人✨も、短い時間で簡単にできますのでぜひこの記事を読んで試してみてください!文字列を扱う3つのクラス【java.langパッケージ】java.langパッケージの文字列を扱うクラスにはS

【Java】値?変数?型??しっかり解説!『データ型(プリミティブ型と参照型)』

【Java】値?変数?型??しっかり解説!『データ型(プリミティブ型と参照型)』

こんにちは。新人エンジニアのサトウです。システムエンジニアとして駆け出したばかりですが、初心者なりの視点でわかりやすい記事を心がけていますので参考になればうれしいです。プログラム初心者✅にも、プログラムに興味がある人✨も、短い時間で簡単にできますのでぜひこの記事を読んで試してみてください!プリミティブ型と参照型プログラム開発では型を持った変数を使ってデータのやり取りをしますが、データ型によって仕様