ホームページ  >  記事  >  Java  >  Javaオブジェクト指向 - カプセル化

Javaオブジェクト指向 - カプセル化

王林
王林転載
2019-11-28 14:12:502223ブラウズ

Javaオブジェクト指向 - カプセル化

#概要

オブジェクト指向プログラミング言語は、オブジェクトの世界のシミュレーションです。オブジェクトの世界では、メンバー変数はオブジェクトの内部に隠されています。 . 直接操作したり変更したりすることはできません。カプセル化は、クラスのコードとデータが他のクラスから自由にアクセスされるのを防ぐ保護バリアと考えることができます。このクラスのデータにアクセスするには、指定されたメソッドを使用する必要があります。

適切なカプセル化により、コードの理解と保守が容易になり、コードのセキュリティも強化されます。

原則

プロパティを非表示にする プロパティにアクセスする必要がある場合は、それにアクセスするためのパブリック メソッドを提供します。

カプセル化の手順

プライベート キーワードを使用してメンバー変数を変更します。

アクセスする必要があるメンバー変数には、対応する getXxx メソッドと setXxx メソッドのペアが提供されます。

Java 学習ビデオの推奨事項:

Java オンライン チュートリアル

カプセル化された操作 - プライベート キーワード

プライベートの意味:

Private は、最小限の権限を表す権限修飾子です。メンバ変数とメンバ メソッドを変更できます。private で変更されたメンバ変数とメンバ メソッドは、このクラス内でのみアクセスできます。

#private の使用形式

private 数据类型 变量名 ;

private を使用してメンバー変数を変更します。コードは次のとおりです。

Javaオブジェクト指向 - カプセル化

getXxx メソッド / setXxx メソッドを提供すると、メンバー変数にアクセスできます。コードは次のとおりです。

Javaオブジェクト指向 - カプセル化

カプセル化の最適化 1—このキーワード

setXxx メソッドの仮パラメータの名前が、名前を見て意味がわかるという規定に準拠していないことが判明しましたので、変更がメンバーの名前と一致する場合は、変数、名前でわかるでしょうか?コードは次のとおりです。

Javaオブジェクト指向 - カプセル化

#修正とテストの後、メンバー変数の割り当てが失敗するという新たな問題が見つかりました。つまり、setXxx() の仮パラメーター変数名を変更した後、メソッドはメンバー変数に値を割り当てません。これは、仮パラメータ変数名がメンバ変数名と同じ名前であるため、メンバ変数名が非表示となり、メソッド内の変数名がメンバ変数にアクセスできないため、代入が失敗します。したがって、この重複名の問題を解決するには、 this キーワードを使用するしかありません。

これの意味

これは、そのクラスの現在のオブジェクトの参照(アドレス値)、つまりオブジェクト自体の参照を表します。

覚えておいてください: メソッドが呼び出されるオブジェクトは、メソッド内の this がそのオブジェクトを表します。つまり、誰が電話をかけてきたとしても、これはそれを表します。

この使用形式:

this.成员变量名;
public class Student {  
	private String name;  
	private int age;
	public void setName(String name) {
		//name = name;  
		this.name = name;
	}
	public String getName() {  
		return name;
	}
	public void setAge(int age) {
		//age = age; 
		this.age = age;
	}
	public int getAge() {  
		return age;
	}
}

ヒント: メソッド内に変数名が 1 つだけある場合、これもデフォルトで変更されます。省略可能です。

カプセル化の最適化 2 - 構築メソッド

オブジェクトが作成されると、構築メソッドを使用してオブジェクトが初期化され、初期値がオブジェクトに割り当てられます。オブジェクトのメンバー変数。value。

ヒント: コンストラクターをカスタマイズするかどうかに関係なく、Java はパラメーターなしのコンストラクターを自動的に提供するため、すべてのクラスにはコンストラクターがあります。コンストラクターを定義すると、Java は自動的に提供します。デフォルトのパラメーターなしコンストラクターは、失敗。

コンストラクタメソッドの定義形式:

Javaオブジェクト指向 - カプセル化

コンストラクタメソッドの書き方としては、メソッド名とその場所 クラス名は同じです。戻り値がないため、戻り値の型は必要なく、void さえも必要ありません。コンストラクターを使用した後のコードは次のようになります。

Javaオブジェクト指向 - カプセル化

注:

コンストラクターを提供しない場合、システムはパラメータ構築メソッドを与えます。

コンストラクターを指定すると、システムはパラメーターなしのコンストラクターを提供しなくなります。

コンストラクター メソッドはオーバーロードでき、パラメーターは定義することも定義しないこともできます。

标准代码——JavaBean

JavaBean 是 Java语言编写类的一种标准规范。符合 JavaBean 的类,要求类必须是具体的和公共的,并且具有无 参数的构造方法,提供用来操作成员变量的 set 和 get 方法。

Javaオブジェクト指向 - カプセル化

编写符合 JavaBean 规范的类,以学生类为例,标准代码如下:

Javaオブジェクト指向 - カプセル化

测试类,代码如下:

public class TestStudent {
	public static void main(String[] args) {
		//无参构造使用
		Student s= new Student();  
		s.setName(" 柳 岩 "); 
		s.setAge(18);
		System.out.println(s.getName()+"‐‐‐"+s.getAge());
		//带参构造使用
		Student s2= new Student(" 赵 丽 颖 ",18);  
		System.out.println(s2.getName()+"‐‐‐"+s2.getAge());
	}
}

推荐相关文章教程:java语言入门

以上がJavaオブジェクト指向 - カプセル化の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。