一、数组
1、数组:可以存储多个元素并且多个元素是 同一种类型的容器
2、数组形式:int[] a;定义了一个int类型的数组变量a(常用)
int a[] ; 定义了一个int类型 变量a数组
这两种形式写法不同,读法不同,但是表达的效果是一样的,都是定义了一个数组。
3、数组的初始化
(1)动态初始化: 给数组指定长度,数组中的元素值由系统默认给定
eg:int[] a=new int[5]; 定义了一个数组长度为5 的数组,角标从0-4,
int 初始化默认值为0,布尔类型的默认值为false...
(2)静态初始化: 给定数组中元素的值,数组的长度由系统给定;
eg :int[] b={1,2,4,5,6}; 静态初始化了数组的元素,分别赋值。
4、数组中的异常
ArrayIndexOutOfBoundsException:数组角标越界异常
出现的原因:访问了数组中不存在的索引值;
解决方案:观察数组中到底有索引值到多少;
NullPointerException:空指针异常 (在实际开发中该异常是最多的)
出现的原因:对象为null,而开发者还要去使用对象,就会出现问题
解决方案:给某个对象进行非空判断,防止程序程序空指针异常
OOM异常:OutOfMemory:内存溢出
Android 解决加载大量图片的问题:图片加载器:ImageLoader等等
5、数组的遍历
5.1 基本遍历: 采用for()循环,运用数组的属性length;进一步改进运用方法。
for(int x = 0 ; x < 5 ; x ++) {
System.out.println(arr[x]);
}
5.2 查找最值
int max = arr[0](比较标准),然后for循环遍历,将标准与各个元素比较,然后输出。
5.3 查找指定元素(的索引)
定义指定元素value,查找到第一次出现的索引,返回索引值,否则,返回-1.
5.4 数组逆序(reverse)
将arr[x] = arr[arr.length-1-x] ;对调,直至最中间的元素(arr.length/2);
或者首尾交换:for(int start = 0,end = arr.length-1 ; start<=end ;start++,end --) ;
二、面向对象
1、面向对象简介
面向对象
将事物看成XX类,将事物对应的属性--->看成这个类的成员变量
将事物对应的行为--->看成这个类的成员方法
思想的特征:
1)面向对象更符合我们的生活中的行为思想习惯
2)面向对象将我们从执行者变成了指挥者,指挥对象做事情
3)面向对象简单性体现在这里:让我们事情从复杂性--->简单化
面向过程:给一个需求,对需求分析,然后一步一步进行操作,最终得到某一个结果,整个过程
都是自己在完成....
2、匿名对象
就是创建对象的时候,没有名字的对象
eg: System.out.println(new Student());
new Student().name = "xxx" ;
注意:匿名对象在实际开发中,只用使用一次,不要使用多次(可能会造成一个内存溢出的现象);开发中经常使用。
3、形式参数
class StudentDemo{
public void method(Student s) {//形式参数现在引用类型
s.show();
} }
StudentDemo sd = new StudentDemo() ;
Student s = new Student() ;
sd.method(s);
4、Private
private:体现的也是一种封装思想
封装:标准类的写法,将成员变量全部私有化,被private修饰的成员变量只能在本类中访问,可以通过公共的访问方法去访问成员变量。
private的用法:
1)被private修饰的只能在本类访问
2)可以通过公共的访问public 去间接访问
* 当前成员变量和局部变量名称一致的情况,遵循就近原则
(提供setXXX/getXXX()方法 :先手写 ,快捷键:alt+shift+s+r)
5、This
定义变量,方法,类,接口,做到见名知意
在手机类中的公共的访问方法中,对应局部变量名称应该做到见名知意
虽然做到见名知意了,但是局部变量可以将成员变量隐藏掉,Java提供一个关键字:this
this:代表是当前类对象,或者是(当前类对象的引用),解决局部隐藏了成员变量
6、Static
6.1 static: 静态的(共享的)
在方法区中:开辟一个静态区域: 都是静态标记
6.2 关于static关键字:
1)静态随着类的加载而加载
2)static优先于对象存在
回想:main public static void main(..){...}
3)static共享数据,可以被多个对象进行共享
4)如果数据被静态修饰的,它可以被类名直接调用
被静态修饰的方法: 类名.方法名()
被静态修饰的变量: 类名.变量名;
6.3tatic用法:
一个类中可有静态变量,也可以有非静态
可以有静态成员方法,也可以非静态的成员方法
静态的方法只能访问静态变量,或者是静态的方法
非静态的方法,既可以访问静态变量也可以非静态的变量...
简单记:静态只能访问静态
7、成员方法
8、构造方法
构造方法的注意事项:
(1)之前没有写无参构造,系统会默认提供无参构造
(2)如果我们无参构造或者有参构造,系统不会在提供无参构造;定义一个类的时候,永远给出无参构造;
构造方法是可以重载的:
9、制作文档说明书步骤
针对数组操作的工具类
1)创建一个数组,静态初始化
2)创建一个工具类,ArrayTool,提供一些静态功能:遍历,最值,查找
3)ArrayTool,每类,方法加上文档注释
4)打开dos控制台: 找到当前路径:
javadoc -d(目录名) -author -version ArrayTool.java
注意事项:必须进行文档注释,且在当如时不导包。