目次
カプセル化
すべての OOP 言語には 3 つの特徴があります。
この記事では、梱包に関する知識を紹介します。
私たちの日常生活では、テレビにはいくつかのボタン (スイッチ、メニューなど) といくつかのインターフェイスしかなく、その構造を深く掘り下げることなく、これらのものを通じてニーズを実現できることがわかります。そして、その内部構造の一部 (CPU など) メーカーは、内部の内容が直接見えないように、シェルを使用してパッケージ化します。
OOP 言語のカプセル化とは、データとデータを操作するメソッドを有機的に組み合わせ、オブジェクトのプロパティと実装の詳細を隠し、オブジェクトと対話するインターフェイスとメソッドのみを公開することです。
クラスの外部で '.' 演算子を使用して内部プロパティにアクセスできることはわかっていますが、プロパティと実装の詳細をどのように非表示にすればよいでしょうか?
Java では、カプセル化は主にクラスとアクセス権によって実現されます。クラスはデータとデータをカプセル化するメソッドを組み合わせることができ、これは人間の物事の認識により一致し、アクセス権はメソッドまたはフィールドを直接外部に配置できるかどうかを制御するために使用されます。クラスの使用。
範囲 | プライベート | デフォルト (何も書かない) |
保護された | 公共 |
---|---|---|---|---|
同じパッケージ内の同じクラス | できる | できる | できる | できる |
同じパッケージ内の異なるクラス | できる | できる | できる | |
異なるパッケージ内のサブクラス | できる | できる | ||
異なるパッケージ内の非サブクラス | できる |
- public: 誰にでも見られる、人の外見的特徴として理解できます。
- プライベート:あなただけが知っており、他の人は知りません
この時点で、アクセス修飾子を使用して、クラスのメンバーが外部からアクセスできないように制限できます。
表から、そのスコープがパッケージとクラスの両方であることがわかります。したがって、クラスとは何か、パッケージとは何かがわかります。当分の間、記事後半の紹介は無視していただいてかまいません。
同じパッケージ内:
通常、学習段階では同じパッケージ内でコードを作成するため、この時点ではパッケージが何であるかを心配する必要はありません。
この時点で、クラス内に name 属性がありますが、その権限はプライベートであるため、クラス外でそれにアクセスするとシステムがエラーを報告することがわかります。age の権限はデフォルトであり、同じパッケージ内の異なるクラスからアクセスできます。
では、名前を変更したい場合はどうすればよいでしょうか? これはプライベートによって変更され、クラスのメンバーのみがアクセスできるため、現時点では、名前を変更するメソッド、またはプライベートを直接変更する最も単純で失礼なメソッドを作成できます。
class Student{
private String name;
int age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class Main {
public static void main(String[] args) {
Student a = new Student();
a.setName("zhangsan");
System.out.println(a.getName());
System.out.println(a.age);
}
}
バッグ
パッケージのコンセプト:
クラスをより適切に管理するために、複数のクラスがパッケージと呼ばれるグループにまとめられます。
注:同じ名前のクラスは、異なるパッケージ内にある限り、同じプロジェクト内で許可されます。
実際、パッケージは単純にフォルダーとして理解できます。
Java では、import ステートメントを使用してパッケージ内のクラスをインポートできます。
そう、普段入出力する際のコードの1行目に書かれているC言語のヘッダファイルのような文が、実はインポートパッケージ内のクラスなのです。例えば:
java.util.Scannerをインポートします。
カスタムパッケージ
カスタム パッケージの基本ルール:
- ファイルの先頭に package ステートメントを追加して、コードがどのパッケージに含まれるかを指定します。
- パッケージ名はできる限り一意の名前で指定する必要があります。通常は会社のドメイン名を逆にした形式です (例: com.baidu.www)。
- パッケージ名はコード パスと一致する必要があります。たとえば、com.baidu.www パッケージを作成した場合、コードを保存するための対応するパス com/baidu/www が存在します。
- クラスに package ステートメントがない場合、クラスはデフォルトのパッケージに配置されます。
まずパッケージを作成する方法:
IDEA でパッケージを作成するプロセスは次のとおりです。まず src を右クリックし、次にマウスを new に置き、次に package をクリックします。
次に、作成したパッケージを右クリックしてクラスを作成します。
この時点で、IDEA が次のパスにファイルを作成したことがわかります。
この時点で、作成されたクラスに追加のステートメントがあることがわかります。
以前はシステムのデフォルトのパッケージだったので、それはありません。
さまざまなパッケージ:
このとき、両クラスは親子関係を形成していないため、性別のみエラーは報告されません。
以下のように、異なるパッケージのサブクラスでは、protected 修飾子と public 修飾子のみにアクセスできます。