1. パッケージングについて理解する
簡単な文は、シェル シールドの詳細です。
たとえば、携帯電話には、バッテリー、チップ、マザーボード、カメラ、画面、その他の電子部品が含まれています。
ユーザーにとっては、電話機の電源のオン/オフ、音量調整、発着信ができれば十分です。
内部配線や電子機器を考慮する必要はありません。コンポーネント。モデルは関係ありません。
そこで、携帯電話メーカーはシェルを使用して内部の電子デバイスをカプセル化し、ユーザーがより使いやすくするのです。これはこの種の考え方です。
そしてオブジェクトにおける当社の中核機能の 1 つです。パッケージングも同様です。
より正式に言うと、データとデータを操作するメソッドを有機的に組み合わせ、オブジェクトのプロパティと実装の詳細を非表示にし、オブジェクトと対話するインターフェイスのみを公開します
私の一般的な理解によれば、次のようになります。たとえば、誰かとのコミュニケーション、具体的にはその人がどのように音を出すかなど、この一連のプロセスには注意を払いません。ただ彼の言うことを聞くだけで十分です。
2. アクセス権の制御 - アクセス修飾子
##Java のカプセル化では、オブジェクトと対話するためのインターフェースのみが残るため、このインターフェースを実装し、内部の詳細を制御および非表示にする方法については、ここでアクセス修飾子について説明します
役割アクセス修飾子の数: カプセル化は、コントロール クラスとアクセス許可によって実現されます。
クラスは、データとデータをカプセル化するメソッドを組み合わせることができます。
アクセス許可は、メソッドやフィールドを外部で直接使用できるかどうかを制御するために使用されます。クラス
##スコープ
##プライベート | ##プライベート
defaultDefault |
protected継承 |
publicPublic |
同じパッケージ内の同じクラス |
✓
✓
✓ |
✓ |
| ##同じパッケージ内の異なるクラス | | ✓
✓ | ##✓ |
| 異なるパッケージ内のサブクラス | |
✓ | ✓ |
| 非サブクラス別のパッケージで |
|
| #✓ |
|
?????? (パブリック) public: 変更するメンバー、メソッド、またはクラスにはどこからでもアクセスできます。
??????(継承) 保護: 裏面を参照、
#??????(デフォルト) デフォルト: 同じパッケージ内のアクセス ???? ( Private) private: 現在のクラスでのみアクセスできます public class TestDemo01 {
int year;
//默认权限,可以省略default
private int month;
//私有权限,只能在同一个类中访问
public int day;
//公有权限,那里都能访问
}
ログイン後にコピー
以下にデモを示します最初のクラス TestDemo01 #2 つのクラスクラス TestDemo02 月が見つからないことがわかりました。これは、アクセス許可を private と書いて非公開にしたためです。クラスにアクセスできません。これはカプセル化の実装であり、月は TestDemo01 でのみ使用できます。 インターフェイスのみを残し、詳細を表示しないためにカプセル化を実装します。 カプセル化されたインターフェイスをデモしましょう If Itプライベートなメンバーが多いと言われていますが、この 2 つのインターフェースを 1 つずつ書く必要はなく、idea の機能を使えばすぐに書くことができます。カプセル化の要件を理解する 知っておくべきこと - パッケージ3.1 パッケージの概念を理解するパッケージの存在は、クラスをより適切に管理したり、複数のクラスを 1 つのグループにまとめたり、それらをグループ化したりするためです。ディレクトリ
パッケージは、クラス、インターフェイスなどのカプセル化メカニズムを具体化したものです。これは、クラスやインターフェイスなどを編成する良い方法です。
パッケージは、次の点でも非常に重要な役割を果たします。同じプロジェクト内で使用できます。 異なるパッケージ内にある限り、同じ名前のクラスが で許可されます。
#3.2 パッケージ内のクラスをインポートする
#エラーが報告される理由を見てみましょう
この問題を解決するには、特定のパッケージを指定する必要があります
package com.toabao.www;
import java.util.*;
import java.sql.*;
public class TestDemo03 {
public static void main(String[] args) {
int[] array = {1,2,3,4,5};
System.out.println(Arrays.toString(array));
java.util.Date date = new java.util.Date();
java.sql.Date date1 = new java.sql.Date(12);
}
}
ログイン後にコピー
import staticを使用してパッケージ内の静的メソッドとフィールドをインポートしますimport static java.lang.Math.*;
public class TestDemo01 {
public static void main(String[] args) {
double x = 13;
double y = 14;
double result = sqrt(pow(x,2)+pow(y,2));
}
}
ログイン後にコピー
3.3パッケージ 最初に手順を確認してください。方法がわからない場合は、自分でパッケージを作成してみてください
注:1. パッケージが作成された後、ファイルの先頭に、そのファイルがどのパッケージに含まれているかを示す package ステートメントが必要です (アイデアにより自動的に追加されます)
2. パッケージの名前は通常、たとえば、ドメイン名の逆名です 3. コードが保存されている場所を見てみましょう。作成済み #3.4 アクセス許可制御
同じパッケージ内の同じクラス
package Demo01;
public class Test01 {
int count = 10;
public void func(){
System.out.println(count);
}
}
ログイン後にコピー
同じパッケージ内の異なるクラスのアクセス
異なるパッケージ内のサブクラスのアクセス権限
前の数はデフォルト、つまりデフォルトです。異なるパッケージ内のサブクラスおよび非サブクラスにはアクセスできません
アクセスする必要がある場合は、アクセス権限をパブリックに変更できます。
#3.5 java の共通パッケージ
1. java.lang: システムでよく使用される基本クラス (String、Object)、JDK1.1 以降では作成する必要はなく、インポートされます。自動的に、
#2. java.lang.reflflect:java リフレクション プログラミング パッケージ3. java.net: ネットワーク プログラミング開発パッケージ
4. java.sql: サポート パッケージデータベース開発用
#5. java.util: java6. java.io:I/O プログラミング開発パッケージ が提供するツールパッケージです。
以上がJava でオブジェクト指向のカプセル化を実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。