1. 数组的下标从零开始的原因:数组变量拿到的是数组内存的首地址,数组元素的地址是a[i] = 首地址 + i * 字节大小,i即是下标,不需要向下波动, 故下标需要从0开始。
2. 定义数组的三中方法:
a) .方式一:
int[] i = {50, 60, 70};
b).方式二:
int[] i1 = new int[]{50, 60, 70};
c).方式三:
int [] i2 = new int[5];
3. 增强for循环:for(元素类型 变量:数组或集合)
例如:for(String s : new String[]{“ab”,”cd”})
{
System.out.println(s);
}
4. 冒泡排序:对一组无序的数据进行排列,比较相邻的两个数的大小,如果第一个数比第二个数大,就交换,依次比较直至最后一对,最大数排列在最后面,重复上面操作,找出第二大数,直至找完,即完成了数列的排序。关键代码:
5. 三大特性之封装:面向用户更简单,面向属性更安全。
6. 封装的特点:
a) 属性私有;
b) 提供set和get方法(一系列的设置和处理);
c) 选择性的定义set和get方法(一个set可以处理多个变量,可以只有set方法,而不用get方法)
d) 一个类的属性是通过getName()和setName()的名字来判断的;
e) this.name = name; 对象的方法,谁用就是是谁的的对象
f) 一些可以联系的方法尽可能放在一个set方法;
g) 可以进行一些合法性验证处理。
7. 访问控制符:
a) 默认访问符: 访问范围是同一个包,同一个类中(关键字可以省略);
b) protected 只能子类使用;
c) public 都可访问。
8. 二维数组:int[][] aa = new int[3][];
int[0] = {1, 2, 3};
int[1] = {4, 5, 6};
int[2] = {7, 8, 9};
二维数组的只行的数确定,每一行有的列数可以不用提前给出,然后给每一行一次赋值,前面已经定义了行号,所以后面不用定义。
9. 对象数组:就是指数组里每一个元素都是对象类型的,对象可以通过get和set方法可以给其拥有的属性赋值。例如int[] a = new int[]{new Dog(), new Dog};使用数组下标就可以访问对象数组元素的属性。
10. 带参数运行程序:在命令提示符中运行带参数的java程序,main方法会有一个字符数组接收该参数,然后使用,运行java程序的格式为java Test 参数1 参数2 参数3, 中间有空格隔开,若遇到参数里需要空格,使用双引号将该参数括起来即可,不然dos会默认为两个独立的参数运行,若遇到特殊符号,例如 *,要用引号括起来,不然是表示一个目录结构,打印时打印出当前目录所有的文件夹。
11. java命令的机制:当使用 java Test时, java虚拟机首先会找到path路径下是否有java.exe,若没有则报错,若有,就执行,找到Test.class 文件再找classpath,没有则默认当前文件夹下找,执行Test.class 文件,如果class文件找到,首先加载class文件,准备外界参数 “a”“b”“c”,进入main方法,执行main方法里的代码,如果没有找到class文件,则抛出ClassnotFoundException异常。
12. 每个类的属性都是private修饰的,只有类自身可以用,通过对象的set和get方法获得属性相应的值,属性还可以有数组类型,例如定义一个颜色类数组,set方法接收一个数组类型的参数,get方法也返回一个数组,只需要通过get和set方法就可以获得该属性,接下来就是对数组的一些操作。
13. this关键字:只使用在实例方法中,谁用,this就代之是谁