封装
面向对象的核心思想: 封装,继承,多态
概念
是一种屏障,作用为保护对象数据不被外界任意访问
步骤
-
属性私有化
private 数据类型 属性名;
含义 作用范围 public 公共的,公开的 任意位置都可访问 private 私有的 本类内部可以访问 可以选择性的对属性进行私有化操作,但是通常情况下所有属性都应该参与私有化
-
提供取值赋值对应的getter和setter方法
-
getter方法-取值
public 数据类型 getXxx(){ return 属性名; } 注:Xxx对应的是属性名,首字母大写
- 有返回值,无参数
- 返回值类型与对应属性类型一致
- 如果获取的属性类型为布尔类型,则方法名为
isXxx
-
setter方法-赋值
public void setXxx(数据类型 属性名){ this.属性名=属性名; } 注:Xxx对应的是属性名,首字母大写
可以选择性的为私有属性添加getter和setter方法,但是通常情况下都应该具备相应方法
-
package com.by.entity;
/**
* 银行卡: 卡号 密码 余额
*/
public class BankCard {
private String cardID;
private String password;
private double balance;
//取值
public String getCardID(){
return cardID;
}
//赋值
public void setCardID(String cardID){
this.cardID = cardID;
}
//密码-取值
public String getPassword(){
return password;
}
//赋值
public void setPassword(String password) {
this.password = password;
}
//余额-取值
public double getBalance() {
return balance;
}
//赋值
public void setBalance(double balance) {
this.balance = balance;
}
public BankCard(){}
public BankCard(String cardID,String password,double balance){
this.cardID = cardID;
this.password = password;
this.balance = balance;
}
}
使用
取值:对象名.getXxx() | 对象名.isXxx()
赋值:对象名.setXxx(实参);
注:Xxx对应的是属性名,首字母大写
package com.by.test;
import com.by.entity.BankCard;
public class TestBankcard {
public static void main(String[] args) {
BankCard bc = new BankCard("6288888888888888", "411381", 100.0);
//赋值
bc.setCardID("6277777777777777");
bc.setPassword("123456");
bc.setBalance(10000.0);
//查看属性值
System.out.println(bc.getCardID());
System.out.println(bc.getPassword());
System.out.println(bc.getBalance());
}
}