Day07_面向对象

面向对象(OOP)

本质

以类的方法组织代码,以对象的组织(封装)数据

三大特性

  1. 封装

  2. 继承

  3. 多态

方法定义

静态方法:public static

非静态方法:public

类与对象的关系

类时一种抽象的数据类型,对某一类事物整体描述,但不代表某一个具体的事物。

对象是抽象概念的具体实例。

创建与初始化对象

使用new关键字创建对象

封装

//类 private:私有的

public class Student{
   private String name;
   private int id;
   private char sex;
   
   public String getName(){
       return this.name;
  }//get 获得这个数据
   public void setName(String name){
       this.name = name;
  }//set 给这个数据设置值
}

继承

extends 扩展 子类是父类的扩展

private无法继承

public class Person{
   
}
public class Student extends Person{
   
}//子类继承父类全部方法

super();

调用父类的方法(必须放在子类第一行)

方法重写

都是方法的重写,与属性无关

前提: 有继承关系,子类重写父类的方法

  1. 方法名相同

  2. 参数列表相同

  3. 修饰符:范围可以扩大,但不能缩小

  4. 抛出的异常:范围可以缩小,但不能扩大

重写的原因:

  1. 父类方法子类不一定需要,或不一定满足

    Alt + Insert : override;

多态

  1. 多态是方法的多态,属性没有多态

  2. 父类和子类有联系,出现类型转换异常

  3. 存在条件:继承关系,方法需要重写,父类引用指向子类对象

static final private 不能多态

instance of

X instanceof Y 是否包含

A和B比较之前会先判断A能不能转换成B类型,能则通过,不能则编译报错

static

静态的变量

非静态可调用静态,静态不能调用非静态

和类一起加载的

不加static,在类实例化后才存在,不能方法调用

abstract

抽象类

public abtract class Action{
   
}

只有方法名字,没有方法的实现

接口

只有规范,无法自己写方法

约束和实现分离

interface 定义的关键字 接口都需要有实现类

内部类

public class Outer{
   //外部类方法
   class Inner{
       //内部类方法
}
}
public class Application{
   public static void main(String[] args){
       Outer outer = new Outer();
       Outer.Inner inner = outer.new Inner();
  }
}



posted @ 2022-01-09 19:30  lzn的博客站  阅读(20)  评论(0编辑  收藏  举报