カプセル化
- 露の露、露の露
私たちのプログラム設計は、「高凝集度、低結合度」を追求する必要があります。
1.高い凝集度とは、クラスの内部データ操作の詳細がそれ自体で完了し、外部干渉が許可されないことを意味します。
2.低結合:外部使用のために公開されているメソッドはごくわずかです。(たとえば、コンピューターは一部のインターフェイスなどのみを公開し、詳細なものはマシンにカプセル化されます)
-
カプセル化(データの非表示)
-
一般に、直接アクセス-オブジェクト内のデータの実際の表現は禁止する必要がありますが、情報隠蔽と呼ばれる操作インターフェイスを介してアクセスする必要があります。
この文を覚えておくだけで十分です:属性private、get / set
import com.oop.Demo04.Studen;
/*
1.提高程序的安全性
2.隐藏代码的实现细节
3.统一接口
4.系统可维护增加
*/
//一个项目应该只有一个main方法
public class Application {
public static void main(String[] args) {
Studen x = new Studen();
x.setName("小明");
System.out.println(x.getName());
x.setNumber(12);
//快捷键 x.getNumber().sout
System.out.println(x.getNumber());
x.setSex('男');
System.out.println(x.getSex());
//不合法的
x.setNumber(371293712);
System.out.println(x.getNumber());
}
}
package com.oop.Demo04;
//类
public class Studen {
//private 属性私有,不能正常调用
//性别
private char sex;
//名字
private String name;
//学号
private int number;
//学习()
private void study(){
}
//提供一些可以操作这个属性的方法。
// 提供一些public的get/set方法
//只有get就代表只读不写反之就是只写不读
//get获得这个数据
public char getSex (){
return this.sex;
}
public String getName(){
return this.name;
}
//set 给这个数据设置值;
public void setName(String name){
this.name = name;
}
public void setSex(char sex){
this.sex = sex;
} //也可以设置一样的名字重载
public void setSex(char sex,int a){
this.sex = sex;
}
//alt +回车 选getter,setter 或者两个一起
public int getNumber() {
return number;
}
public void setNumber(int number) {
//因为封装可以做安全性的检测
if(number > 99999 || number< 0 ){
this.number = 0;
}else{
this.number = number;
}
}
}
Javaで2つのクラスが同じであるかどうかを判断するために、実際には主に2つのことを調べます。
//メソッド名パラメータリストメソッドのオーバーロード