目录
面向对象三大核心思想:封装、继承、多态
概念
是一层屏障,用来防止对象属性被外界任意访问,确保对象数据的安全性
步骤
-
属性私有化
private 数据类型 属性名;
含义 范围 public 公共的,公开的 任意位置都可访问 private 私有的 只有本类内部可以访问 -
可以选择性的对属性进行私有化操作,但是建议所有属性都进行私有化
-
-
getter(取值)/setter(赋值)方法
-
一个方法操作一个属性
-
getter-取值方法
-
特点:有返回值,无参数
访问修饰符 返回值类型 getXxx(){ return 属性名; } 注:Xxx对应的为属性名,首字母大写 如果属性为布尔类型,则命名为`isXxx`
-
返回值类型与对应属性保持一致
-
-
setter-赋值方法
-
特点:没有返回值,有参数
访问修饰符 void setXxx(数据类型 属性名){ this.属性名=属性名; } 注:Xxx对应的为属性名,首字母大写
-
形参类型与对应属性保持一致
-
可以选择性为私有化属性添加getter|setter,但是建议所有私有化属性都拥有配套的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(实参);
package com.by.test; import com.by.entity.BankCard; public class Test_BankCard { public static void main(String[] args) { BankCard bc = new BankCard("6200000000000000", "123456", 100.0);\ //访问卡号属性 //赋值 bc.setCardID("6211111111111111"); //取值 System.out.println(bc.getCardID()); //访问密码 bc.setPassword("654321"); System.out.println(bc.getPassword()); //访问余额 bc.setBalance(10000.0); System.out.println(bc.getBalance()); } }