JAVA三大核心(封装 继承 多态)
A、B、C 三个用户去银行存款,用户标记姓名,银行卡号,账户余额等属性,当用户取款时,A、B、C 用户都不能看到彼此银行账号信息,取款时可对用户A、B、C分别校验,把用户信息私有不对外公开即可理解为对A、B、C用户的封装。AI:继承允许我们定义一个类(称为子类或派生类)继承另一个类(称为父类或基类)的字段和方法。这样,子类就可以重用父类的代码,并可以在此基础上添加新的功能。AI:封装是对象的行为和
面向对象变成:oop(object oriented programing)
object 对象
oriented 朝向;适应;使适应;面对;熟悉;确定方向;确定方位;认识方向
programing 程式设计,程序编排
1.封装
AI:封装是对象的行为和状态的结合,使得对象的使用者只能通过接口(即公共方法)访问对象的数据和行为,而不能直接访问对象的内部细节。封装通过访问修饰符(如private
、protected
、public
等)来实现。
A、B、C 三个用户去银行存款,用户标记姓名,银行卡号,账户余额等属性,当用户取款时,A、B、C 用户都不能看到彼此银行账号信息,取款时可对用户A、B、C分别校验,把用户信息私有不对外公开即可理解为对A、B、C用户的封装。
package cht.oop;
import java.math.BigDecimal;
/*
java 三大特性-封装
*/
public class Demo04 {
// 银行卡号
private int bankId;
// 持有用户名
private String name;
// 持有用户余额
private BigDecimal money;
public int getBankId() {
return bankId;
}
public void setBankId(int bankId) {
this.bankId = bankId;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public BigDecimal getMoney() {
return money;
}
public void setMoney(BigDecimal money) {
this.money = money;
}
/*
封装校验
*/
public BigDecimal getMoney(int bankId, String name, BigDecimal money) {
// 假设小帅账户余额
BigDecimal maxMoney = new BigDecimal(1_0000_0000_0000L);
// 可取出钱
BigDecimal initMoney = new BigDecimal(0);
// compareTo方法 >返回1 <返回-1 等于放回0
if (bankId != 1001 || !"小帅".equals(name) || money.compareTo(maxMoney) > 0) {
System.out.println("校验失败");
} else {
initMoney = money;
}
return initMoney;
}
}
2.继承 关键字extends
AI:继承允许我们定义一个类(称为子类或派生类)继承另一个类(称为父类或基类)的字段和方法。这样,子类就可以重用父类的代码,并可以在此基础上添加新的功能。
package cht.oop;
public class Dog extends Pet{
public Dog() {
}
public void eat(){
System.out.println("Dog eat");
}
}
注意:
- 子类无法继承父类私有的属性和方法
- new对象时,子类默认优先调用父类的构造方法,子类构造方法中省略了 super();
- alter+insert 快捷键盘,可以快速生成重写方法
- 重写,必须保证子类的方法名与父类的方法名一致,且参数保持一致
- 父类的静态方法无法被子类继承
3.多态
AI:多态性是指同一个接口可以使用多个不同的实例对象来实现。在Java中,这通常通过方法重写(Override)和接口实现(Implement)来实现。多态性允许程序在执行时决定调用哪个类的方法。
- 父类引用指向子类,但子类引用无法指向父类
- 子类可以调用自己与父类的方法,父类只能调用自己的方法
更多推荐
所有评论(0)