【Java】JSPでタグライブラリを使う(JSTL)
こんにちは。エンジニアの新田です!ここでは、システムエンジニアとして働いている私が、システム開発手法や開発言語について紹介していこうと思います。今回は、JSPの標準タグライブラリ「JSTL」について紹介します。Javaについて勉強している方、Webアプリケーションを構築したいと思っている方の参考になれば幸いです!関連記事リンク: 【Java】JSPの基本的な構文/【Java】JSPのアクションタグ
Workteria(ワークテリア)では難易度の高いものから低いものまで、スキルや経験に合わせた案件を多数揃えています。会員登録は無料ですので、ぜひ会員登録してご希望の案件を探してみてください!
フリーランス/正社員のエンジニアとして活躍するには、ご自身のスキルや経験に合わせた仕事を選ぶことが大切です。ご希望の案件がみつからない場合はお気軽にお問い合わせください!ユーザ満足度の高いキャリアコンサルタントが在籍していますので、希望条件や悩み事などなんでもご相談ください。ご希望にピッタリの案件をご紹介させていただきます。
こんにちは、駆け出しプログラマーの若江です!
ここでは初学者として学習を終えた私が、アウトプットの意味も込めてアクセス修飾子について紹介させていただきます。
できる限り初学者が理解しやすい内容として紹介させていただくので、参考となれば幸いです!
関連記事リンク:パッケージの役割 / メソッドの使い方紹介 / 変数と定数の違いとは? / コンストラクターとは? / カプセル化をする理由
プロジェクトを開発する際は様々なクラスやメソッドなどが組み合わせることになります。
組み合わさったクラスやメソッドはお互いに影響を与え合いますが、
その範囲が制限なく許可されてしまうと、どこでどのような影響があるか予想さえできなくなります。
このような事態に陥らないようにするため、また効率的に汎用性の高い機能を共有して使うために、
アクセス修飾子を活用します。
ここでは共有範囲をコントロールするためのアクセス修飾子について紹介させていただきます。
アクセス修飾子はクラスやメソッド、フィールド、コンストラクタなど様々なもので宣言され、
アクセスの有効範囲を詳しく設定することができます。
例えば広範囲でアクセス可能なセッター・ゲッターといったメソッドは、
同じクラス内のフィールドへアクセスしますが、そのフィールドは同クラス外からのアクセスを許可しません。
◆同じクラスの中でメソッドとフィールドの公開範囲を区別
// 「private のフィールド」と「public のメソッド」を作成
public class AccessTest {
private int num;
public int setNum(int number) {
return num = number;
}
}
このようにフィールドの値の直接的な変更を阻止することをカプセル化で実現します。
※カプセル化については別記事で紹介させていただきます。
アクセス修飾子には4種類あり、
メソッドやフィールドなどをどのように扱いたいかによってアクセスの有効範囲を選びます。
ではそれぞれの違いを見ていきましょう。
アクセス修飾子の中で最も公開範囲が広く、全てのクラスからアクセスが可能です。
外部からのアクセスがあっても問題がない、
もしくは外部で利用することを目的に作成されたものに対して public の宣言を行います。
実際にサンプルコードで書き方の確認をしましょう。
◆ public の宣言例
// public クラス
public class AccessTest {
// public フィールド
public int num;
// public メソッド
public int setNum(int number) {
return num = number;
}
}
全てがオープンされたクラスです。
クラスのアクセス修飾子は「public」と「デフォルト」のみ宣言可能です。
また1つのファイルが複数のクラスを持つことは可能ですが、
public クラスはファイル名と同名のクラスでなくてはならないため、1ファイルにつき1クラスしか保持できません。
public と相対的に、アクセス修飾子の中で最も公開範囲が狭いアクセス修飾子が private です。
private が宣言されたクラス内でのみアクセスが有効となり外部のアクセスを一切受け付けないため、
最も変更に強いアクセス修飾子ということになります。
宣言の方法は public と同様です。
◆ private の宣言例
public class AccessTest {
// private のフィールド
private int num;
// private のメソッド
private int setNum(int number) {
return num = number;
}
}
これでは何も生み出さないクラスになってしまいますが、全てを公開しないクラスです。
private はこのクラスのみでアクセスが可能であることから、
private のメソッドやフィールドが変数や引数を持つ場合は、同じクラス内で使うことを前提とします。
公開範囲が「同じクラス内」「同じパッケージ内」「継承したサブクラス」となります。
public が外部パッケージでもアクセスできることに対して、protected は外部パッケージのアクセスを許可しません。
ただし「継承したサブクラス」が外部パッケージにある場合はそのクラスのみアクセスを許可します。
※継承については別記事で紹介させていただきますが、簡単に紹介すると元となるクラスの機能を引き継ぐことです。
クラスを継承してできた新たなクラスをサブクラスと呼びます。
◆ protected の宣言例
package test;
public class AccessTest {
// protected のフィールド
protected int num;
// protected のメソッド
protected int setNum(int number) {
return num = number;
}
}
上記例ではAccsessTestクラス内、testパッケージにある他のクラス、AccessTestを継承したサブクラスの3つが
アクセスの有効範囲となります。
アクセス修飾子の宣言を付けないことをデフォルトと呼びます。
デフォルトでは同じパッケージ内のクラス間でアクセスが許可され、
外部パッケージのアクセスを一切受け付けません。
先ほど紹介した protected と private の間のアクセスレベルにあたります。
◆宣言なし(デフォルト)の例
package test;
class AccessTest {
// デフォルトのフィールド
int num;
// デフォルトのメソッド
int setNum(int number) {
return num = number;
}
}
testパッケージ内にあるクラスがアクセス可能なクラスです。
まとめるとアクセスの有効な範囲は以下の順に狭くなっていきます。
protected :同クラス、同パッケージ、継承したサブクラスが対象
デフォルト :同クラス、同パッケージが対象
private :同クラスのみが対象
クラスは少し特殊ですが、アクセス修飾子が使える場所であれば基本的に紹介した全てのアクセス修飾子が宣言できます。
宣言の方法を紹介したので、どこでアクセス修飾子が使えるのかも併せて紹介しておきます。
・ クラス : public, デフォルト
・インターフェース: public, デフォルト
・ メソッド : public, private, protected, デフォルト
・ コンストラクタ : public, private, protected, デフォルト
・ フィールド : public, private, protected, デフォルト
宣言できるのは5つのみのため、覚えやすいのではないでしょうか。
クラスととインターフェース以外は全てのアクセス修飾子を宣言することができます。
4つのアクセス宣言方法を使い分けることで、メソッドやフィールドなどのアクセス範囲を調整することができます。
アクセス修飾子は Java の特徴となるオブジェクト指向にも関りを持ってきますので、
使い方をしっかりと押さえておきましょう。
パッケージの役割 / メソッドの使い方紹介 / 変数と定数の違いとは? / コンストラクターとは? / カプセル化をする理由
【著者】
30代で異業種となるIT業界へ転職した駆け出しのプログラマです。これまで主に Java や Ruby、HTML/CSS を使って学習を目的としたショップサイトや掲示板サイトの作成を行いました。プログラマとしての経験が浅いからこそ、未経験者の目線に近い形で基礎の紹介をしていきたいと思います。
そのような方はぜひ、Workteriaサイトをご利用ください!
定期的にご本人に合う高額案件を紹介
リモートワークなど自由な働き方ができる案件多数
専属エージェントが契約や請求をトータルサポート
こんにちは。エンジニアの新田です!ここでは、システムエンジニアとして働いている私が、システム開発手法や開発言語について紹介していこうと思います。今回は、JSPの標準タグライブラリ「JSTL」について紹介します。Javaについて勉強している方、Webアプリケーションを構築したいと思っている方の参考になれば幸いです!関連記事リンク: 【Java】JSPの基本的な構文/【Java】JSPのアクションタグ
こんにちは。新人エンジニアのサトウです。システムエンジニアとして駆け出したばかりですが、初心者なりの視点でわかりやすい記事を心がけていますので参考になればうれしいです。プログラム初心者✅にも、プログラムに興味がある人✨も、短い時間で簡単にできますのでぜひこの記事を読んで試してみてください!そもそもStringとは何?『 String 』... Java言語において文字列のデータ型を指します。基本デ
こんにちは。新人エンジニアのサトウです。システムエンジニアとして駆け出したばかりですが、初心者なりの視点でわかりやすい記事を心がけていますので参考になればうれしいです。プログラム初心者✅にも、プログラムに興味がある人✨も、短い時間で簡単にできますのでぜひこの記事を読んで試してみてください!Stringクラスformatメソッドの文字列整形【java.utilパッケージ】Formatterクラスfo
こんにちは。新人エンジニアのサトウです。システムエンジニアとして駆け出したばかりですが、初心者なりの視点でわかりやすい記事を心がけていますので参考になればうれしいです。プログラム初心者にも✅、プログラムに興味がある人✨も、短い時間で簡単にできますのでぜひこの記事を読んで試してみてください!文字列を扱う3つのクラス【java.langパッケージ】java.langパッケージの文字列を扱うクラスにはS
こんにちは。新人エンジニアのサトウです。システムエンジニアとして駆け出したばかりですが、初心者なりの視点でわかりやすい記事を心がけていますので参考になればうれしいです。プログラム初心者✅にも、プログラムに興味がある人✨も、短い時間で簡単にできますのでぜひこの記事を読んで試してみてください!プリミティブ型と参照型プログラム開発では型を持った変数を使ってデータのやり取りをしますが、データ型によって仕様