随堂复习(数组,面向对象-基础)

一、随堂复习

1. 数组的概述

  • 数组,就可以理解为多个数据的组合。
  • 是程序中的容器:数组、集合框架(第12章,List、Set、Map)
  • 数组存储的数据的特点:依次紧密排列的、有序的、可以重复的
  • 此时的数组、集合框架都是在内存中对多个数据的存储。
  • 数组的其它特点:一旦初始化,其长度就是确定的、不可更改的

2. 一维数组的使用(重要)

> 数组的声明和初始化
	int[] arr = new int[10];
	String[] arr1 = new String[]{"Tom","Jerry"};
> 调用数组的指定元素:使用角标、索引、index
	>index从0开始!
> 数组的属性:length,表示数组的长度
> 数组的遍历
> 数组元素的默认初始化值
> 一维数组的内存解析(难)
	前提:在main()中声明变量:int[] arr = new int[]{1,2,3};
	> 虚拟机栈:main()作为一个栈帧,压入栈空间中。在main()栈帧中,存储着arr变量。arr记录着数组实体的首地址值。
	> 堆:数组实体存储在堆空间中。

3. 二维数组的使用(难点)

  • 二维数组:一维数组的元素,又是一个唯一数组,则构成了二维数组。
> 数组的声明和初始化
> 调用数组的指定元素
> 数组的属性:length,表示数组的长度
> 数组的遍历
> 数组元素的默认初始化值
> 二维数组的内存解析(难)

4. 数组的常用算法(重要)

  • 数值型数组的特征值的计算:最大值、最小值、总和、平均值等
  • 数组元素的赋值。比如:杨辉三角;彩票随机生成数(6位;1-30;不能重复);回形数
  • 数组的复制、赋值
  • 数组的反转
  • 数组的扩容、缩容
  • 数组的查找
    • 线性查找
    • 二分法查找(前提:数组有序)
  • 数组的排序
    • 冒泡排序:最简单
    • 快速排序:最常用

5. Arrays工具类的使用

  • 熟悉一下内部的常用的方法
    • toString() / sort() / binarySearch()

6. 数组中的常见异常

  • ArrayIndexOutOfBoundsException
  • NullPointerException

1. (了解)面向过程 vs 面向对象

  • 不管是面向过程、面向对象,都是程序设计的思路。
  • 面向过程:以函数为基本单位,适合解决简单问题。比如:开车
  • 面向对象:以类为基本单位,适合解决复杂问题。比如:造车

2. 类、对象

  • 类:抽象的,概念上的定义
  • 对象:具体的,类的一个一个的实例。
  • 面向对象完成具体功能的操作的三步流程(非常重要)
步骤1:创建类,并设计类的内部成员(属性、方法)
步骤2:创建类的对象。比如:Phone p1 = new Phone();
步骤3:通过对象,调用其内部声明的属性或方法,完成相关的功能
  • 对象的内存解析
    • 创建类的一个对象;创建类的多个对象;方法的调用的内存解析
  • Java中内存结构的划分
    • Java中内存结构划分为:虚拟机栈、堆、方法区;程序计数器、本地方法栈
    • 虚拟机栈:以栈帧为基本单位,有入栈和出栈操作;每个栈帧入栈操作对应一个方法的执行;方法内的局部变量会存储在栈帧中。
    • 堆空间:new 出来的结构(数组、对象):① 数组,数组的元素在堆中 ② 对象的成员变量在堆中。
    • 方法区:加载的类的模板结构。

3. 类的成员之一:属性(或成员变量)

  • 属性 vs 局部变量
    • 声明的位置
    • 内存中存放的位置
    • 作用域
    • 权限修饰符
    • 初始化值
    • 生命周期
  • 属性 <=> 成员变量 <=>field <=> 字段、域

4. 类的成员之二:方法

  • 方法的声明:权限修饰符 返回值类型 方法名(形参列表){ // 方法体}
    • 重点:返回值类型、形参列表
  • return关键字的使用

5. 再谈方法

5.1 方法的重载(overload)
  • 方法的重载的要求:“两同一不同”
  • 调用方法时,如何确定调用的是某个指定的方法呢?① 方法名 ② 形参列表
5.2 可变个数形参的方法
  • 格式:(int … args)
5.3 方法的参数传递机制:值传递(重点、难点)
> 如果形参是基本数据类型的变量,则将实参保存的数据值赋给形参。
> 如果形参是引用数据类型的变量,则将实参保存的地址值赋给形参。
5.4 递归方法
  • 递归方法构成了隐式的循环
  • 对比:相较于循环结构,递归方法效率稍低,内存占用偏高。

6. 对象数组

  • String[] ;Person[] ; Customer[]

7. package、import关键字的使用

  • package:指明声明的类所属的包。
  • import:当前类中,如果使用其它包下的类(除java.lang包),原则上就需要导入。

8. oop的特征之一:封装性

Java规定了4种权限修饰,分别是:private、缺省、protected、public。
我们可以使用4种权限修饰来修饰类及类的内部成员。当这些成员被调用时,体现可见性的大小。

举例:

> 场景1:私有化(private)类的属性,提供公共(public)的get和set方法,对此属性进行获取或修改
> 场景2:将类中不需要对外暴露的方法,设置为private
> 场景3:单例模式中构造器private的了,避免在类的外部创建实例。(放到static关键字后讲)

上理论:程序设计的原则之一

理论上:
  -`高内聚`:类的内部数据操作细节自己完成,不允许外部干涉;
    (Java程序通常以类的形态呈现,相关的功能封装到方法中。)
  -`低耦合`:仅暴露少量的方法给外部使用,尽量方便外部调用。
    (给相关的类、方法设置权限,把该隐藏的隐藏起来,该暴露的暴露出去)

9. 类的成员之三:构造器

  • 如何定义:权限修饰符 类名(形参列表){}
  • 构造器的作用:① 搭配上new,用来创建对象 ② 初始化对象的成员变量

10. 三个小知识

10.1 类的实例变量的赋值过程(重要)
1. 在类的属性中,可以有哪些位置给属性赋值?
① 默认初始化;
② 显式初始化;
③ 构造器中初始化;
**********************************
④ 通过"对象.方法"的方式赋值;
⑤ 通过"对象.属性"的方式赋值;

2. 这些位置执行的先后顺序是怎样?
① - ② - ③ - ④/⑤
10.2 JavaBean
所谓JavaBean,是指符合如下标准的Java类:

- 类是公共的
- 有一个无参的公共的构造器
- 有属性,且有对应的get、set方法
  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值