数组
-
二维数组
就是元素为一维数组的数组(数组嵌套数组)
-
定义语法
动态初始化
int[ ][ ] arr2=new int [3] [2];
其中 3表示二位数组的长度,也就是说这个二维数组中可以放三个一维数组。2表示的是二维数组中一维数组的长度。
-
当第二个[ ]给了值,那就是在初始化二维数组时,还会去初始化3个一维数组,一维数组的长度是2,二维数组包含3个长度为2的一维数组
-
取出二维数组中,一维数组的值:
System.out.println(arr2[0] [0])第一个数组的第一个元素
-
数组中的最后一个元素的索引=数组的长度-1
-
初始化一维数组,放进二维数组;
int[] one =new int[2];
int[] two =new int[2];
int[] three =new int[2];
1.arr[0] = one;
arr[1] = two;
arr[2] = three;
2.arr[0] = new int[2];
arr[1] = new int[2];
arr[2] = new int[2];
先定义三个一维数组,1意味将三个一维数组放入二维数组arr[] []的相应位置,2意为将新定义三个一维数组覆盖之前放入二维数组中的一维数组。
-
int[ ] x,y [];
x是一维数组,y是二维数组
-
二维数组的静态初始化
由我们指定具体的元素值,由系统给分配长度
int[ ] [ ] arr=new int[ ] [ ]{{10,20,4},{20,1},{100,300,5}};
-
遍历二维数组
-
递归
java中的递归指的是,在方法中调用方法本身的这种现象 。
-
注意:1.递归要有出口,不然就是死递归(死递归会造成 栈溢出)
2.递归次数不宜过多(也会造成栈溢出)
3.递归所体现的就是一种拆分合并的思想
-
调用方法时,有时需要进行参数传递
一种是基本数据类型作为参数传递,属于值传递,就是把实参的值传过去,形参的改变不影响实参。
一种就是引用类型作为参数传递,属于引用传递,传递的是地址值,形参的改变影响实参。
例:利用递归计算5的阶乘
面向对象
-
面向对象特征:封装、继承和多态。
-
面向对象开发:就是不断的创建对象,使用对象,指挥对象做事情
-
class定义一个类 类体现的就是一个封装的思想,(封装成员属性和成员功能) 类,是java语言中的最小单位。以现实事物举例,和类的对应关系为:
事务<===>类
属性<===>成员变量
行为<===>成员方法
-
成员变量:定义在类中方法外的变量
成员方法:以前怎么定义方法,和以前一样,只是可以去掉static
-
我们定义好了一个类,就是想要使用这个类,那我们就创建一个测试类,提供一个主方法,作为入口,在主方法中取出这个类。类 本身是一个抽象的概念,不能直接去使用。必须要对类进行实例化,实例化完毕之后,才能使用。所谓实例化,就是创建该类的对象 ,然后使用该类的对象,去调用该类的属性和功能。
-
怎么创建对象,可以借助一个关键字new来完成类的实例化
创建该类的对象的语法:
类名 对象名=new 类名();
Person p=new Person;
就可以通过对象名,来调用类中的属性和方法。
调用成员变量
String mingzi=p.name;
int age=p.age;
char ch=p.sex;
System.out.println(“姓名”+mingzi);
System.out.println(“年龄”+age);
System.out.println(“性别”+ch);
调用成员方法:
p.pet();
p.sleep();
例:手机属性和功能: