面向对象基础

262 阅读4分钟

基础

  • 重载(overlord) 其他方法要素,如返回值等均无要求;

  • 直接打印引用類型的時候,就是在調用tostring();

  • Pojo 序列化 有属性 传输数据 持久层

  • Bean 代表类

  • 多态方法看右面,属性看左面

  • this 代表当前类里面的

  • set属性不外露,get方法随便用

  • static 静态方法先行,共享且唯一。

  • 变量类型 变量名 = new 构造器();

  • .之前是谁里面。

  • . 之后是谁里面的谁

  • 继承是一种 is a 的关系,如"鸟is a动物","赵四is a人"等。

  • 继承在java中是单方向的(单继承),且final修饰的类不能被继承。

  • 一大两小俩不变

  • 访问修饰符 返回值类型 方法名(参数列表){

  • 方法体

  • }

    • 方法名: 方法的名字,命名规范同变量名,首字母小写驼峰,尽量使用动词。 比如这样。
      • private int addNum()
    • 返回类型: 方法要返回给调用者一个什么类型的数据如果没返回任何数据则类型为void。 如果想返回一个int可以这么写。
      • private int
    • 形参列表: 方法要接收哪些类型的数据,多个数据用逗号隔开如果不需要传入数据,则该方法叫做-无参方法。
      • private int addNum(int numA, int numB)
    • 方法体: 方法的逻辑代码,注意最好一个方法只做一件事。
      • private int addNum(int numA, int numB){...}
  • final class A{}: 最终类:不能被继承,且final类中的所有属性也都是final的。

  • static class A{}:静态类:只能写在其他类内部。

  • abstract class A{}:抽象类:可以包含抽象方法的类。

抽象封装

  • OOP四大特征:
    • OOP的四大特征是:抽象、封装、继承、多态。
    • OOP的三大特征是:封装、继承、多态。(因为抽象不涉及代码)

伪代码: 狼类.java

狼类{
    属性:
        眼神 = 凶恶;
        尾巴 = 向下;
        生活习性 = 群居;
        性格 = [责任心重,团结]
    方法:
        捕猎方法();
        嗷嗷叫方法();
} 

类的实例

  • 实例: 在软件系统运行时,通过类来创建实例 instance,这一过程叫做实例化,创建出来的对象被称为该类的实例。

  • 声明赋值过程: 实例化的过程就是通过new关键字来在堆内存中开辟一块空间a,然后再调用该类的构造器将该类构造出来并放到空间a里面的过程。

    • 在我们设计模板的时候必须设计一个构造器。
    • 如果没有设计构造器则默认使用模板自带的一个构造器。
    • 在实例化的过程中,必须调用构造器才可以。
  • 成员属性的调用: Java中的调用使用分量符"."

    • 非静态的成员属性属于某个实例,是互相独立的,使用所属的实例名调用。
    • 静态的成员属性属于类(也成为类属性),是共享且唯一的,使用类名直接调用。

方法参数的传递

  • 概念: 方法的参数在传递的时候有一个特性:
    • 当传递的参数是基本数据类型的时候,代表传递副本。
    • 当传递的参数是引用数据类型的时候,代表传递引用。

静态块

概念:

  • 静态块的格式就是 static{...},常用于一些初始化数据的工作。
  • 静态块和动态块不一样,它就只执行一次,而且执行顺序在动态块之前。
  • 静态块和静态方法一样,里面只能访问到静态的属性和方法。
  • 静态块必须全部执行,无法指定执行哪一个。

抽象类

  • abstrac
  • abstract关键字可以修改类或方法。
  • abstract类可以扩展(增加子类),但不能直接实例化。
  • abstract方法不在声明它的类中实现,但必须在某个子类中重写。

-示例-

  • public abstract class MyClass{}
  • public abstract String myMethod();

-注释-

  • 采用abstract方法的类本来就是抽象类,并且必须声明为abstract。
  • abstract类不能实例化。
  • 仅当abstract类的子类实现其超类的所有abstract方法时,才能实例化abstract类的子类。这种类称为具体类,以区别于abstract类。
  • 如果abstract类的子类没有实现其超类的所有abstract方法,该子类也是abstract类。
  • abstract关键字不能应用于staticprivatefinal方法,因为这些方法不能被重写,因此,不能在子类中实现。
  • final类的方法都不能是abstract,因为final类不能有子类。

工厂模式

  • OCP开闭原则
  • 对添加拓展开放,对修改重构关闭

内部类

内部类