第2回:何はなくともまずクラス (1/3)

はじめてのJava
はじめてのJava入門

第2回:何はなくともまずクラス

著者:サイオステクノロジー  片桐 一宗   2007/8/20
1   2  3  次のページ
プログラムを作成する

   「第1回:Javaを味わってみませんか?」では、Javaの特長とJavaプログラム開発の流れについて説明しました。今回から簡単なJavaプログラムを作成しながらオブジェクト指向について説明していきます。

何はなくともまずクラス

   前回はJavaプログラムは「オブジェクト」に対して操作することで処理を行う、と説明しました。オブジェクトを構成する上で欠かせないものは「クラス」です。クラスはオブジェクトの振る舞いを記述した設計書のことです。まずクラスの構造から解説していきます。

   通常、1つのJavaソースファイルに対して1つのクラスを定義します。Javaソースファイル内に複数のクラスを定義することもできます。クラスはフィールドとメソッドを有しています(図1)。

クラス構造
図1:クラス構造

   「フィールド」はクラス内にて共有で使用する変数を定義する場所です。ここには複数の変数を定義することができます。変数は「型 フィールド変数名」の形式で定義します。

   フィールドに定義できる変数はインスタンス変数とstatic変数の2種類になります。変数を宣言する箇所において、staticキーワードを付与することでstatic変数になり、付けない場合はインスタンス変数となります。この2つの変数の違いは後で説明します。

   「メソッド」はプログラムコードを記述する箇所です。Javaプログラムは同じクラスあるいは他のクラスのメソッドを呼び出すことができます。メソッドの宣言は「返り値の型 メソッド名 引数」の形式で定義し、定義できるメソッドはインスタンスメソッドと静的メソッドの2種類になります。

   メソッドを宣言する箇所において、staticキーワードを付与することで「staticメソッド」になります。もし付けない場合は「インスタンスメソッド」となります。メソッドの中でローカル変数を定義することもできますが、他メソッドから直接アクセスすることはできません。


アクセス制御の修飾子

   フィールドとメソッドの定義において、アクセス制御に関する修飾子を付与することができます(表1)。

キーワード意味
public他のクラスからアクセスできるフィールド/メソッド
protectedサブクラスまたは同じパッケージのクラスのみアクセスできるフィールド/メソッド
なし同じパッケージのクラスからアクセスできるフィールド/メソッド
private同じクラスからのみアクセスできるフィールド/メソッド

表1:アクセス制御の修飾子と意味

   このアクセス制御によって、オブジェクト指向における基本概念の1つである「カプセル化」を実現できます(オブジェクト指向の基本概念は次回説明する予定です)。

   またクラスの定義においても、アクセス制御に関する修飾子を付与することができます。publicキーワードを指定した場合は他のクラスから参照することができ、指定しない場合は同じパッケージのクラスからのみ参照できます。

1   2  3  次のページ


株式会社システムインテグレータ 安治
著者プロフィール
サイオステクノロジー株式会社  片桐 一宗
ソフトハウスでC、C++、Javaでの開発経験を積み、テンアートニ(現サイオステクノロジー)入社。Webシステムの設計・開発・保守からプロジェクトリーダーまでこなした後、現在、品質管理チームの一員を担当。サイオステクノロジーのシステム構築サービス品質向上に向け、日々奮闘中。


INDEX
第2回:何はなくともまずクラス
プログラムを作成する
 staticとインスタンス
 インスタンスを生成してみよう
はじめてのJava入門
第1回Javaを味わってみませんか?
第2回何はなくともまずクラス
第3回オブジェクト指向への第一歩を踏み出そう

人気記事トップ10

人気記事ランキングをもっと見る

企画広告も役立つ情報バッチリ! Sponsored

ClickHouse Cloudが実現した広告運用SaaS「ATOM」のデータ基盤革新、パフォーマンスを向上しながら、運用負荷とコストを削減 11月11日 6:20 AIで開発が加速する時代、品質保証はどう変わる? Tricentisが示すAIエージェント活用の実像 11月9日 6:45 悪用までの猶予が「1分」に迫るフロンティアAI時代に開発と本番を貫く脆弱性管理が必要 10月29日 8:30 欧州CRA対応とSBOM運用。AI生成コードのOSS混入問題の対策とは ――スニペット単位で検出する「FossID」「Insignary Clarity」によるSBOM運用 9月16日 6:40 PostgreSQLからTiDBへ、稼働中SaaSで進める段階的DB移行の実践と再設計への展望 9月7日 6:30 機能安全開発におけるGoogleTestの活用を支援!「Parasoft C/C++test CT」で実現する効率化&AI連携 4月14日 6:30 【CNDW2025】Grafanaが明かす「オブザーバビリティの哲学」ー最小限の労力で実用的なインサイトを得るには 1月23日 6:30 【CNDW2025】プロダクト急増に備える基盤刷新 ーウェルスナビがECSからEKSへの移行で得た知見とは 1月15日 6:30 【CNDW2025】250環境を5人で運用、構築時間は30分に ーKINTOテクノロジーズが語るインフラ基盤組織の作り方 2025年12月18日 6:30 新たな自動化で熱視線! AIエージェントの「推論能力」を支える2つのコンポーネントとは? 2025年11月28日 6:30