Day20 - 面向对象编程OOP 01

1. 初识面向对象

面向过程 & 面向对象

面向过程思想

  • 步骤清晰简单,一步接一步

面向对象思想

  • 物以类聚,分类的思维模式,属性+方法
  • 具体方法实现还是依靠面向过程,两者不可分割

什么是面向对象

面向对象编程(Object-Oriented Programming, OOP)本质就是:

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

  • 抽象

  • 三大特性:

    • 封装:
    • 继承
    • 多态:同一个事物有多种形态

2. 方法回顾和加深

2.1 方法的定义

  • 修饰符
  • 返回值
  • break: 跳出switch,结束循环return:结束方法的区别
  • 方法名:注意规范 驼峰原则 见名知意
  • 参数列表:(参数类型,参数名)...
  • 异常抛出

2.2 方法的调用:递归

  • 静态方法 static

  • 非静态方法 无static,需要对类进行实例化才能对其方法进行调用

  • 形参和实参

    public static void main(String[] args) {
            //实际参数和形式参数的类型要对应!
            int add = Demo03.add(1,2);
            System.out.println(add);
        }
    
        //此处的a,b只是占位符,并不实际存在,只有在被调用时传入实际参数才存在
        public static int add(int a, int b){
            return a+b;
        }
    
  • 值传递和引用传递

    public static void main(String[] args) {
        Person person = new Person();
        //未赋值前String默认是null
        System.out.println("Name before change:" + person.name);
    
        Demo05.change(person);
        System.out.println("Name after change:" + person.name);
    }
    
    public static void change(Person person){
        //person是一个对象,指向的是具体的person -->Person person = new Person();
        //是一个具体的人,可以改变属性
        person.name = "Chiara";
    }
    
  • this关键字(待后续)

3. 类与对象的创建

3.1 类与对象的关系

  • 类是一种抽象的数据类型,是对某一类事物整体进行描述/定义,但不能代表某一个具体的事物

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

    能够体现出特点,展现出功能的是具体的实例,而不是一个抽象的概念

3.2 创建与初始化对象

  • 使用new关键字创建对象

  • 使用new关键字创建的时候,除了分配内存空间之外,还会给创建好的对象进行默认的初始化以及对类中构造器的调用

  • 类中的构造器也成为构造方法,是在进行创建对象的时候必须要调用的。并且构造器有以下两个特点:

      1. 必须和类的名字相同
      1. 必须没有返回类型,也不能写void

作用:

  1. new 本质在调用构造方法
  2. 初始化对象的值
  3. 注意点:定义有参构造之后,如果想使用无参构造,必须显示地定义一个无参的构造

​ 快捷键:Alt + Insert 快速创建Constructor

​ this. (当前类) = 传入的值

上一篇:Java 快排算法 实现


下一篇:EOJ Monthly 2021.2 Sponsored by TuSimple A题题解