Java でカプセル化が必要なのはなぜですか?
出典: Use My Notes この投稿では、オブジェクト指向プログラミングでカプセル化が必要な理由を学びます。この記事では、その操作の概念と Java 言語での実装方法について説明します。Javaのカプセル化とは何ですか
カプセル化は、データとそれを操作するメソッドを単一のパッケージまたはラッパーに結合する Java 言語の概念です。簡単に言うと、カプセル化では、変数とメソッドが 1 つのクラスに結合されます。なぜ Java でカプセル化が必要なのでしょうか?
- コードをクリーンで整理された状態に保つため。
- カプセル化されたメンバーへのアクセス制御を改善するため。
- コードをより深く理解するため。
class MyBankAccount {
private int acc_number;
private int acc_balance;
public MyBankAccount(int acc_number, int acc_balance) {
this.acc_number = acc_number;
this.acc_balance = acc_balance;
}
public int printAccountBalance() {
System.out.println("Balance: " + acc_balance);
}
public int printAccountNumber() {
System.out.println("Account Number: " + acc_number);
}
public void depositMoney(int money) {
acc_balance = acc_balance + money;
}
}
ここには、コンストラクター、2 つの変数、および 3 つのメソッドを備えたMyBankAccountクラス があります。これらのクラス メンバーは相互に関連しているため、同じクラスに属します。MyBankAccountクラスはクラスの内容をカプセル化または結合し、このコードはすべて 1 つのユニットとして機能します。ここで、クラス名、つまり「MyBankAccount」を見るだけで、口座残高と口座番号 (変数として持っている) があると推測できます。銀行口座は、お金の預け入れ、口座残高の一覧表示などの金銭取引に関連付けられています。これらのトランザクションは、上記のクラスに対応するメソッドを使用して実行されます。ご覧のとおり、これによりコードの可読性と保守性が向上しました。100 個のクラスがあり、各クラスに 5 ~ 10 個のメソッドとほぼ同数の変数があるとします。カプセル化を使用すると、特定のメソッドや変数がどのクラスに属しているかを推測するだけで、それらを見つけることがはるかに簡単になります。
カプセル化の概念は仕事にどのように役立ちますか?
プログラミングにおけるカプセル化にはいくつかの利点がありますが、実際に動作するのを見るまではその利点に気づきません。現代の世界では、あらゆるものが何らかの形でデジタル化され、ソフトウェア化されています。ソフトウェアやプログラミング ライブラリを開発する際に、膨大な量のコードが生成されるプログラミング言語は数多くあります。これらはすべて何らかの方法でカプセル化されています。カプセル化がなければ、プログラミングは混乱してしまうでしょう (特にソフトウェア業界では)。 Java でのカプセル化:- コードをより適切かつ明確に整理するのに役立ちます。
- 大量のコードを保守する際に費やす労力を軽減できます。
- コード管理の複雑さを軽減します。
- コードを部分に分割します。
- 可読性が向上します。
カプセル化がなかったらどうなるでしょうか?
カプセル化の概念を持たないプログラミング言語もあります。その 1 つである C プログラミング言語には、カプセル化の概念がありません。コードはファイル全体に分散することができ、各ファイルには、相互に関連する場合も関係ない場合もある任意の変数または関数を含めることができます。これにより、コード管理が混乱し、複雑さが増します。 カプセル化なし:- コードが整理されていなかったり、乱雑になったりする可能性があります。
- コードのメンテナンスが複雑になります。
- コードのデバッグはさらに困難になります。
- 可読性が低下します。
Java で Print 関数を使用する 3 つの方法
出典: FreeCodeCamp すべての開発者が Java の 3 つの異なる Print 関数/演算子について知っているわけではありません。この記事の著者はそれらについて説明し、それらがどのように機能するかを例とともに示します。Javaでprintln()関数を使用する方法
println()関数は、その中の値/データを出力した後に新しい行を追加します。ここで、ln接尾辞は改行文字\nのように機能します。サンプルコードを見てみましょう。public class Main{
public static void main(String[] args) {
System.out.println("Hello World!");
}
}
正確に何が起こっているのかがまだよくわからない場合は、次のように簡単に説明できます。1 行だけを出力すると、次のような出力が得られます。
「こんにちは世界」
ここで、 println() を使用していくつかの異なる式を出力してみると、違いがはっきりとわかります。
public class Main{
public static void main(String[] args) {
System.out.println("Hello World!");
System.out.println("Welcome to freeCodeCamp");
}
}
ご覧のとおり、最初の print ステートメントが実行された後、改行文字 ( \n ) が 1 つ追加されます。したがって、次の行に 2 番目の print ステートメント「Welcome to freeCodeCamp」が表示されます。全体の出力は以下のようになります。
「こんにちは世界」freeCodeCamp へようこそ
しかし、 print関数 で自動生成された改行をエスケープする方法はないのでしょうか? 食べる!この場合、print()ステートメントを使用する必要があります。
Javaでprint()関数を使用する方法
この機能を実証するために、違いがすぐに分かる例を使用してみましょう。public class Main{
public static void main(String[] args) {
System.out.print("Hello World!");
System.out.print("Welcome to freeCodeCamp");
}
}
ご覧のとおり、以前のようにprintln を使用する代わりにprintを使用しました。printステートメントは、その中でタスクを実行した後、改行文字として余分な\nを追加しません。つまり、出力には新たな行は表示されませんが、次のような内容になります。
「こんにちは世界」freeCodeCamp へようこそ
必要に応じて、 \n次のように問題 を解決できます。
public class Main{
public static void main(String[] args) {
System.out.print("Hello World!\n");
System.out.print("Welcome to freeCodeCamp");
}
}
今回は\n が改行文字として機能し、2 行目が取得されます。結果は次のとおりです。
「こんにちは世界」freeCodeCamp へようこそ
以下に示すように、1 つのprintステートメント だけを使用して 2 行を印刷することもできます。
public class Main{
public static void main(String[] args) {
System.out.print("Hello World!\nWelcome to freeCodeCamp");
}
}
出力は同じになります。
「こんにちは世界」freeCodeCamp へようこそ
Javaでprintf()関数を使用する方法
printf()関数は、フォーマットされた印刷関数と同様に機能します。よりよく理解するために、ここに 2 つのシナリオがあります。 シナリオ 1。友人のトミーは、PDF ファイルを電子メールで送ってほしいと言っています。選択した件名を付けて電子メールを作成するだけです (例: こんにちは、トミー、ジムです)。メールの本文を省略して、PDF を添付した空のメールを送信することもできます。 シナリオ 2。あなたは昨日授業に来られませんでした。教師はあなたに、証拠を添えて欠席理由を提示し、書類を電子メールで送信するように求めました。ここでは、友人のトミーに送ったように教授に手紙を送ることはできません。ある程度の形式と適切なエチケットを守る必要があります。つまり、手紙では正式なトピックを示し、本文に必要な情報を書く必要があります。最後に重要なことですが、適切な命名規則に従ってドキュメントの名前を変更した後、電子メールにドキュメントを添付する必要があります。重要なのは、必要な方法で電子メールの形式を整える必要があるということです。printf()関数は、2 番目のシナリオの実装に役立ちます。特定の印刷形式/スタイルを指定したい場合は、printf()関数を使用します。これがどのように機能するかを示す簡単な例を次に示します。public class Main{
public static void main(String[] args) {
double value = 2.3897;
System.out.println(value);
System.out.printf("%.2f" , value);
}
}
ここでは、 value という double 変数を宣言し、値2.3897をそれに割り当てます。ここでprintln()関数を使用すると、小数点以降の 4 桁の値全体が出力されます。結果は次のとおりです。
2.3897 2.39
その後、printf()関数を使用すると、関数が値を出力するように出力ストリームを変更できます。ここで、小数点の後にちょうど 2 桁を出力するように関数に指示します。したがって、関数は小数点以下の 2 桁に四捨五入した値を出力します。これは、printf()関数の使用方法の 1 つにすぎません。Java 言語では多くの用途があることに注意してください。
GO TO FULL VERSION