一、掌握的知识
数组的定义:是一种容器, 可以存储同种数据类型的多个值
数组的定义格式:数据类型[] 数组名;(这种定义格式, 定义出来的, 只是数组类型的变量而已, 容器还没有被真正的创建
初始化 : 在内存中, 为数组容器开辟空间, 并将数据存入空间的过程
静态初始化完整格式 : 数据类型[] 数组名 = new 数据类型[]{元素1, 元素2, 元素3..};
简化格式:数据类型[] 数组名 = {元素1, 元素2, 元素3..};
数组的动态初始化:在创建数组的时候, 只需要指定长度, 系统就会分配默认初始化值
数据类型[] 数组名 = new 数据类型[长度];
数组索引越界异常 : ArrayIndexOutOfBoundsException : 原因 : 访问了不存在的索引
空指针异常 : NullPointerException : 原因 : 当引用数据类型的变量, 记录到null之后, 代表跟堆内存的链接被切断了,这时候还要去访问堆内存的数据, 就会出现空指针异常
二维数组也是一个容器, 容器中存储的都是一维数组
二维数组动态初始化:
数据类型[][] 数组名 = new 数据类型[m][n];
m : 指定这个二维数组, 可以存储多少个一维数组
n : 指定每一个一维数组中, 可以存储多少个元素
二、难点与解决办法
预习面向对象的接口章节时,没有理解接口的内容:
在java中只有单继承,当一个类需要继承多个类的时候,那么就需要考虑使用接口
接口使用interface定义
如果一个类实现了一个接口,那么需要把接口中的所有的抽象方法全部实现
一个类实现接口使用implements
接口中的方法都是使用public abstract修饰的,即使不写public修饰符,它也不是default修饰的,仍然是public修饰,并且只能是public修饰
实现类可以实现多接口
案例:
package object;
public class Interface {
public static void main(String[] args) {
Computer c = new Computer();
Light light = new Light();
Light light2 = new Light();
c.usb1 = light;
c.usb2 = light2;
c.powerSupply();
}
}
interface USBInterface {
}
interface USBSupply extends USBInterface {
public void powerSupply();
}
interface USBReceive extends USBInterface {
public void powerReceive();
}
class Computer implements USBSupply {
public USBReceive usb1;
public USBReceive usb2;
public void powerSupply (){
System.out.println("电脑提供能源");
usb1.powerReceive();
usb2.powerReceive();
}
}
class Light implements USBReceive {
public void powerReceive() {
System.out.println("电灯接收能源");
}
}