我们在学完C之后想要学习一个面向对象的语言,我选择了JAVA,我会从C的基础上写一些我在学习时的感悟与理解,仅供参考,大佬请指教
在JAVA中很多东西和C都时一样的,我就不过多阐述,前面基本一致的可以翻阅课本啥的看看就很容易理解了,这里我们从数组开始
目录
1.JAVA中数组的定义
在JAVA中我们定义数组的方式和C不一样,我们是用
int[] array;
上面的格式进行定义的,和C语言中的中括号位置不同,其他的可以一样理解
2.JAVA中数组的初始化
在JAVA中我们数组的初始化有3种方法,这里和C语言就有不同之处了
int[] array1 = {1,2,3,4,5};
int[] array2 = new int[5];
int[] array3 = new int[]{1,2,3,4,5};
这里使用的第一种和第三种基本上是一个意思,第一种是第三种的简化版本
在JAVA中,我们使用数组需要给变量new一个对象,在堆中开辟空间,而array就是我们的变量,这些存放地址的变量又叫做引用类型
(
注意:在JAVA中如果数组中的元素不初始化并不会和C一样给一些随机值,JAVA会给数组中元素赋值对应的0或者null值,而boolean值则赋值false
3.数组的使用
我们JAVA中访问数组的方式和C中的方式是一样的,也是array[0]这种方式进行访问的
而我们进行遍历的时候仍然可以用C语言中的方法进行
for(int i = 0;i < array.length;i++){
array[i] = i;
}
这里JAVA有一个好处,就是在使用数组长度的时候可以直接数组名.length就能得到数组的长度
而JAVA也给我们提供了另外的一个遍历方式
for(int x:array){
x = 10;
}
这就是foreach,我们可以理解为定义一个遍历x,和数组的变量类型必须一致,然后数组中读到一个元素就放到x中去,这种遍历方式在后面还会使用很多
注意:在访问数组的时候,需要注意不能让数组越界访问,否则就会报错
在JAVA中数组不仅可以存储数据,还可以用来作为函数的返回值和形式参数
看代码
public static void fun(int[] array){
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
}
public static void main(String[] args) {
int[] array= {1,2,3,4,5};
fun(array);
}
看这段代码中,array就是作为一个数组被当成形参传输进去了可以看到依然可以得到执行结果的
再来
public static int[] fun(int[] array){
int[] ret = new int[2];
for (int i = 0; i < array.length; i++) {
if(i == 0 ){
ret[0] = array[i];
}else if (i == array.length-1){
ret[1] = array[i];
}
}
return ret;
}
public static void main(String[] args) {
int[] array= {1,2,3,4,5};
for (int i = 0; i < 2; i++) {
System.out.println(fun(array)[i]);//这里我们可以吧fun(array)直接当成fun函数的
//返回值来看
}
}
这两段代码反映了数组可以作为形参和返回值
在数组的Array类中还有很多好用的方法,可以在JAVA帮助手册中查看到如果需要可以私信我,我可以免费提供帮助手册
4.二维数组
二维数组其实很简单,大部分和C一样,相当C和java一维数组的究极缝合怪
int[][] array1; //二维数组的定义
int[][] array2 = {{1,2},{3,4},{4,5}};
int[][] array3 = new int[][];
int[][] array4 = new int[3][2]{{1,2},{3,4},{4,5}};
可以看到和上面一维数组的用法基本大同小异
这里主要提一个JAVA中的使用方法
public static void main(String[] args) {
int[][] array= {{1,2},{2,3}};
for (int i = 0; i < array.length; i++) {
for (int j = 0; j < array[i].length; j++) {
System.out.println(array[i][j]);
}
}
}
这里我们在使用循环的时候使用了array.length代表行数,array【i】.length代表列数,其实就是把二维数组看成一个存放一维数组的一维数组,这里不理解也没关系,后面会理解的,可暂时记住用法就好了