面向对象变成:oop(object  oriented  programing)

object  对象 

oriented  朝向;适应;使适应;面对;熟悉;确定方向;确定方位;认识方向

programing 程式设计,程序编排

1.封装

AI:封装是对象的行为和状态的结合,使得对象的使用者只能通过接口(即公共方法)访问对象的数据和行为,而不能直接访问对象的内部细节。封装通过访问修饰符(如privateprotectedpublic等)来实现。

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");
    }

}

注意:

  1. 子类无法继承父类私有的属性和方法
  2. new对象时,子类默认优先调用父类的构造方法,子类构造方法中省略了 super();
  3. alter+insert 快捷键盘,可以快速生成重写方法
  4. 重写,必须保证子类的方法名与父类的方法名一致,且参数保持一致
  5. 父类的静态方法无法被子类继承

3.多态

AI:多态性是指同一个接口可以使用多个不同的实例对象来实现。在Java中,这通常通过方法重写(Override)和接口实现(Implement)来实现。多态性允许程序在执行时决定调用哪个类的方法。

  1. 父类引用指向子类,但子类引用无法指向父类
  2. 子类可以调用自己与父类的方法,父类只能调用自己的方法
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐