面向对象编程
  1. 初识面向对象

    面向过程&面向对象

    • 面向过程思想

      • 步骤清晰简单,第一步骤做什么,第二步做什么.....

      • 面对过程适合处理一些较为简单的问题

    • 面向对象思想

      • 物以类聚,分类的思想模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思索

      • 面向对象适合处理复杂的问题,适合处理需要多人协作的问题

    • 对于描述复杂的事物,为了从宏观上把握,从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。但是,具体到微观操作,仍然需要面向过程的思路去处理。

    什么是面向对象

    • 面向对象编程(object-Oriented Programming,OOP)

    • 面向对象编程的本质就是:以类的方式组织代码,以对象的组织(封装)数据

    • 抽象

    • 三大特性:

      • 封装

      • 继承

      • 多态

    • 从认识论角度考虑是先有对象后有类。对象:是具体的事物。类:是抽象的,是对对象的抽象

    • 从代码的运行角度考虑是先有类后有对象。类是对象的模板。

  2. 方法回顾和加深

    • 方法的定义

      • 修饰符

      • 返回类型

      • break (跳出循环)和 return(方法结束,返回一个结果) 的区别

      • 方法名:注意规范就OK,见名知意

      • 参数列表:(参数类型,参数名)

      • 异常抛出:

    • 方法的调用:递归

      • 静态方法

      • 非静态方法

      • 形参和实参

      • 值传递和引用传递

      • this关键字

 

类与对象的关系

  1. 类是一种抽象的数据类型,它是对某一类事物整体描述/定义,但是并不能代表某一个具体的事物。

    • 动物、植物、手机、电脑........

    • Person类、Pet类、Car类等,这些类都是用来描述/定义某一类具体的事物应该具备的特点和行为

  2. 对象是抽象概念的具体实例

    • 张三就是人的一个具体实例,张三家里的旺财就是狗的一个具体实例。

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

     

创建初始化对象

  1. 使用new关键字创建对象

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

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

      1. 必须和类的名字相同

      1. 必须没有返回类型,也不能写void

  4. 构造器必须要掌握

构造器

作用:构造器最大的用处就是在创建对象时执行初始化,当创建一个对象时,系统会为这个对象的实例进行默认的初始化。如果想改变这种默认的初始化,就可以通过自定义构造器来实现。

注意点:

  1. 一个类什么都不写,它也会存在一个方法

     //java文件:
     public class Person {
     ​
     }
     ​
     //对应class文件:
     public class Person {
         public Person() {
         }
     }
    

      

  2. 构造器的作用是:

    • 使用new关键字,本质在调用构造器

    • 用来初始化值

     public class Application02 {
         public static void main(String[] args) {
             //使用new关键字实例化一个对象
             Person person = new Person("xiao liu zui shuai");//通过new关键字调用构造方法
     ​
             System.out.println(person.name);//null,因为没有赋值,默认为空。
         }
      */
    

      

     

  3. 当有有参构造时,先默认定义一个无参构造

     public class Person {
        
         String name;
     ​
     //有参构造:一旦定义了有参构造,无参必须显示定义
     ​
         //alt+insert会生成构造器
         public Person(String name) {
             this.name = name;
         }
     ​
         public Person(int age) {
             this.age = age;
         }
     ​
         public Person(String name, int age) {
             this.name = name;
             this.age = age;
         }
     ​
         public Person() {
         }
     }
    

      

构造器总结:

  1. 和类名相同

  2. 没有返回值

作用: 1.new 本质在调用构造器,也就是构造方法 2.初始化一些对象的值

注意点:

  1. 定义有参构造之后,如果想使用无参构造,显示的定义一个无参构造

Alt+Insert

this. name()代表当前类的name= name (代表传进来的)

 

创建对象内存分析

类与对象_初始化

小结:

  1. 类与对象

    类是一个模板:抽象,对象是一个具体的实例

  2. 方法:

    定义、调用

  3. 对应的引用

    引用类型:基本类型(8)

    对象是通过引用来操作的:栈--->堆(地址)

  4. 属性:字段、成员变量

    默认初始化;

    数字默认为:0 0.0

    char默认为:u0000

    boolean:false

    引用:null

    修饰符:属性类型 属性名 = 属性值;

  5. 方法:

  6. 对象的创建与使用:

    必须使用new关键字创造对象,构造器 Person yanxin = new Person();

    对象的属性 yanxin.name;

    对象的方法 kuangshen.sleep()

  7. 类:

    静态的属性 属性

    动态的方法 方法