JavaSE总结基础语法之 - 面向对象
1. 类与对象
1.1面向对象的三条主线
- Java类及类成员: 属性、构造器、方法、代码块、内部类
- 面向对象的三大特征: 封装、继承、多态(抽象)
- 与面向对象相关关键字: this、super、extends、implements、static、final、abstract、interface、package、import
1.2 面向对象与面向过程的理解
面向过程: 强调的是功能行为,以函数为最小单位,考虑怎么做
面向对象: 强调的是具备功能的对象,以类、对象作为最小单位,考虑谁做
1.3 面向对象的两个重要概念
- 类: 对一类事物的描述, 是抽象的、概念上的定义
- 对象: 是实际上存在的该类事物的每个个体, 因而也称为实例
- 面向对象最重要的就是设计类
- 设计类, 就是设计类的成员
1.4 二者的关系
对象: 是类 new出来的,是类的派生
类: 是根据一类事物的描述设计出来的
- 创建类, 设计类的成员
- 创建类的对象
- 通过对象调用类的属性、类的方法
1.5 对象的创建与内存解析
1.6匿名对象的理解
匿名对象: 实际上就是创建类的对象后并没有显示的赋值给一个变量名
特点: 是一次性的,每次创建一个匿名对象就在内存中开辟了一块空间
new Phone().sendEmail();
new Phone().playGame();
new Phone().price = 1999;
new Phone().showPrice();//0.0
1.7 理解万事万物皆对象
- 在Java语言中,我们都将功能封装到类中,通过类创建对象,调用类中的功能。
- 涉及到Java语言与前端Html、后端的数据库交互时,前后端的结构在Java层面交互时,都体现为类、对象。
2. 属性
类的设计中,两个重要结构之一: 属性
2.1 属性是什么?
- 属性的结构拆分: 数据类型、变量名、变量值
- 属性的数据类型: 基本数据类型、引用数据类型
- 属性的变量名: 遵守驼峰命名规范、用于给同类型进行赋值、运算
- 属性的变量值: 填充的变量值要与数据类型相匹配
- 按定义位置分类: 成员变量、局部变量
2.2 属性 vs 局部变量
-
相同点:
- 定义格式: 数据类型 变量名 = 变量值
- 先声明,后使用
- 变量都对应其作用域
-
不同点:
- 按类中定义的位置不同:
- 属性: 是在类中的{ }进行定义,作用的范围里自然是在类中都能使用
- 局部变量: 是在类中的方法的{ }定义的,作用范围之内在方法里
- 关于权限修饰符的不同:
- 属性: 能被public、private、缺省、protect进行修饰
- 局部变量: 不能被权限修饰符进行修饰
- 默认初始化值的情况:
- 属性: 定义时可以不用显示初始化值,默认的初始化值为基本数据类型或引用类型的初始化值
- 局部变量: 没有默认初始化值,意味着我们必须显示的初始化变量
- 在内存中加载的位置:
- 属性:加载到堆空间中(非static)
- 局部变量:加载到栈空间
- 按类中定义的位置不同:
属性分为: 实例变量、类变量