13-Java-类与对象

文章目录

  • Java-类与对象
    • 1 面向对象(OOP)
      • 1.1 概述
        • 1.2.1 面向过程
        • 1.2.2 面向对象
        • 1.2.3 区别
    • 2 类和对象
      • 2.1 概念
      • 2.2 使用
    • 3 对象使用和特征
      • 3.1 JVM特征
      • 3.2 面向对象特征
      • 3.3 对象的使用
      • 3.4 常见异常
    • 4 JavaBean
    • 5 传引用
    • 5 构造方法
      • 5.1 作用
      • 5.2 语法
      • 5.3 构造方法重载
      • 5.4 构造方法与成员方法
    • 6 This关键字
      • 6.1 功能

Java-类与对象

1 面向对象(OOP)

1.1 概述

13-Java-类与对象_第1张图片

### 1.2 面向过程和面向对象的区别

1.2.1 面向过程

分步骤,类似于公司的扁平化管理

1.2.2 面向对象

侧重分模块,类似于公司的层级管理

面向对象是以功能划分的,而不是步骤划分

优点: 维护简单,可扩展性强,可重用性强

1.2.3 区别

面向对象的耦合度较低,而面向过程的耦合度相对较高

2 类和对象

image-20210529111916117

2.1 概念

13-Java-类与对象_第2张图片

对象:

​ 代码角度: new的实例化某一个类的实例,封装特有的数据

​ 数据角度: 封装数据和逻辑的一种方式

​ 人类认知角度: 对象就是具体的个体,一切皆对象

​ 设计角度: 从一个实际的实体抽象出某些属性的一种表示

概念/定义:

​ 就是在我们的思想上对某种事物的唯一性标志,它描述了这一类事物的特性,是我们对客观事物描述的一个标准或者一个模板

​ 类定义标准和模板,而对象就是符合这些标准的个体

​ 我们在抽离某个概念,就能建立相关事物的类,一定通过这些类的属性来形成这个概念,然后通过这些属性就形成类,通过不同的属性值区分不同的对象,通过不同的属性区分不同的类

​ 从类到对象的过程就可以理解为对成员变量赋值的过程

如何选择什么时候使用成员变量或者静态变量:

​ 静态变量属于类级别的,对象无关,静态变量的属性和值所有对象都一致

​ 成员变量是对象级别的,他们拥有相同的属性,但值可以不同也可以相同

2.2 使用

堆内存

​ 每个对象的内存空间分为3块

​ 1 数据区域: 成员变量

​ 2 头部: hash值

​ 3 类型: 静态区类文件的空间引用

实例化过程/创建对象过程:

​ 1 对应类载入静态区

​ 2 new 堆内存创建内存空间,把类中的成员属性放入内存空间中

​ 3 执行构造方法,对堆内存中的属性初始化,执行完弹栈

​ 4 把堆内存的内存地址,返回调用处

13-Java-类与对象_第3张图片

13-Java-类与对象_第4张图片

3 对象使用和特征

3.1 JVM特征

跨平台,多线程,自动垃圾回收,面向对象

垃圾:没有更多引用指向该对象,该对象被视为垃圾对象,等待被回收

3.2 面向对象特征

继承性,封装性,多态性

3.3 对象的使用

13-Java-类与对象_第5张图片

3.4 常见异常

空指针是运行时异常,编译时不报错,一般因为程序员粗心导致

13-Java-类与对象_第6张图片

4 JavaBean

公共类

私有属性

getter和setter方法

构造方法

5 传引用

传值: 传递基本数据类型

传引用: 传递引用数据类型

13-Java-类与对象_第7张图片

5 构造方法

编译器功能:

把Java文件编译成class文件

检查语法结构是否合法

帮我们把不规范的代码补齐,例如调用静态变量的时候我们一般不加类名访问,但是编译器会帮我们自动加上,如果我们在类中没有写构造方法,编译器自动补全构造方法

5.1 作用

创建当前类的实例化对象,并初始化成员属性

5.2 语法

[权限修饰] 类名(参数列表){方法体}

权限修饰: public private等等

如果我们不定义构造方法,则默认有一个公共的无参构造方法(public 类名(){})

一旦我们指定了构造方法,则默认的无参构造就没有了

所以一般我们需要指定构造方法时,要考虑再写一个无参构造

5.3 构造方法重载

可以根据需求,编写多个构造方法,方法名相同,参数列表不同(参数个数和数据类型)

5.4 构造方法与成员方法

构造方法可以和成员方法重名.就根据返回值判断即可,因为构造方法没有返回值,连void都没有

6 This关键字

this是每个对象中,保存自身内存地址的一个引用类型的成员变量

this就表示这个对象,this的类型就是当前类的类型

只能出现在成员方法和构造方法中,不能出现在静态方法中

6.1 功能

区分同名的成员变量和局部变量 this.xxx = xxx;

用在构造方法中,重载调用当前类的其他构造方法(this(参数),必须写在构造方法第一行)

return this:返回当前对象的内存地址,做到链式调用

知识回顾:

​ 用类名.静态变量区分同名的静态变量和局部变量

​ 用this.成员变量区分同名的成员变量和局部变量

的成员变量和局部变量 this.xxx = xxx;

用在构造方法中,重载调用当前类的其他构造方法(this(参数),必须写在构造方法第一行)

return this:返回当前对象的内存地址,做到链式调用

你可能感兴趣的:(JavaSE学习笔记,java)