数组的定义
- 数组时相同类型数据的有序集合。
- 数组描述的是相同类型的若干个数据,按照一定的先后次序排列而成的
- 其中,每个数据称作一个数组元素,每个数组元素可以通过一个下标来访问他们
数组的声明与创建
- 首先必须声明数组变量,才能在程序中使用数组,下面是声明数组变量的语法
`int[] num;//首选方法
int num[];//效果相同,但不是首选方法`
* 1
* 2
- java语言使用new操作符来创建数组,语法如下:
`int[] nums = new int[10];`
* 1
- 数组的元素是通过索引访问的,数组索引从0开始
- 可通过array.length方法来获取数组长度
三种初始化
`int [] num = {1,2,3,4,5};
Man[] mans = {new Man(1,1),new Man(2,3)};`
* 1
* 2
`int [] num = new int[10];
num[0]=1;
num[1]=2;`
* 1
* 2
* 3
- 数组的默认初始化
- 数组是引用类型,它的元素相当于类的实例变量,因此数组一经分配空间,其中的每个元素也被按照实例变量同样的方式被隐式初始化
数组的四个基本特点
- 其长度是确定的,数组一旦被创建,他的大小就是不可以改变的。
- 其元素必须是相同类型,不允许出现混合类型
- 数组中的元素可以是任何数据类型,包括基本类型和引用类型。
- 数组变量属于引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。数组本身就是对象,java中对象是在堆中,因此数组无论保存原始类型还是其他对象类型,数组对象本身是在堆中。
数组边界
- 下表的合法区间:[0.length-1],如果越界就会报错;
`public static viod main(String[] args){
int[] num = {1,2,3,4,5};
System.out,println(num[5]);
//会报错
}`
* 1
* 2
* 3
* 4
* 5
- 小结:
- 数组是相同数据类型(数据类型可以为任意类型)的有序集合
- 数组也是对象。数组元素相当于对象的成员变量
- 数组长度是确定的,不可变的,如果越界,则报错;
数组使用
- 普通的For循环
- For-Each循环
- 数组作方法入参
- 数组作返回值
Arrays类
- 数组的工具类java.util.Arrays
- 由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类供我们使用,从而可以对数据对象进行一些基本的操作。
- 查看JDK帮助文档
- Arrays类中的方法都是static修饰的静态方法,在使用的时候就可以直接使用ll类名进行调用,而不用使用对象来调用(注意:是不用而不是不能)
- 具有以下常用功能
- 给数组赋值:通过fill方法
- 对比数组排序:通过sotr方法,按升序。
- 比较数组:通过equals方法比较数组中元素是否相等
- 查找数组元素:通过binartSearch方法能对排序好的数组进行二分查找发操作。
面向过程&面向对象
- 面向过程思想
- 步骤清晰简单,第一步做什么,第二部做什么。
- 面对过程适合处理一些较为简单的问题
- 面向对象思想
- 物以类聚,分类的思维模式,思考问题首先解决问题需要哪些分类,然后对这些分类进行单独思考,最后,才对某个分类下的细节进行面向过程的思考
- 面向对象适合处理复杂的问题,适合处理需要多人协作的问题
什么是面向对象
- 面向对象编程{oop}
- 面向对象编程的本质就是:以类的方式组织代码,以对象的组织(封装)数据
- 抽象
- 三大特性
- 从认识论角度考虑是先有对象后有类。对象,是具体的事物。类,是抽象的。是对对象的抽象
- 从代码运行的角度考虑是现有类后又对象。类是对象的模板
回顾方法及加深
- 方法的定义
- 修饰符
- 返回类型
- break:跳出switch,结束循环和return的区别
- 方法名:注意规范就ok,见名知意
- 参数列表:(参数类型,参数名)
- 异常抛出:
- 方法的调用:递归
- 静态方法
- 非静态方法
- 形参和实参
- 值传递和引用传递
- this关键字
类与对象的关系
- 类是一种抽象的数据累心,他是对某一类事物整体描述/定义,但是bb并不能代表某一个具体的事物
- 动物、植物、手机、电脑
- Person类、Pet类、Car类等、这些类都是用来描述、定义某一类具体的事物应该具备的特点和行为
- 对象是抽象概念的具体实例
- 张三就是人的一个具体实例,张三家里的旺财就是狗的一种实例
- 能够体现出特点,展现出功能的是具体的实例,而不是一个抽象的概念
创建与初始化对象
- 使用new关键字创建对象
- 使用new关键字创建的时候,除了分配内存空间之外,还会给创建好的对象进行默认的初始化以及对垒中构造器的调用
- 类中的构造器也称为构造方法,实在进行创建对象的时候必须要调用的。并且构造器有以下两个特点
- 1.必须和类的名字相同
- 2.必须没有返回类型,也不能写void