整理自 韩顺平零基础30天学Java
二维数组
//定义和初始化
int[][] arr = {{0,0,0},{0,0,0},{0,0,0}};
//输出二维图像
//arr.length:二维数组的元素个数
for (int i = 0; i < arr.length; i++){
//arr[i].length:每个一维数组的元素个数
for (int j = 0; j <arr[i].length;j++){
System.out.print(arr[i][j]+"\t");
}
System.out.println();
}
使用
动态初始化1
int a[ ][ ] = new int[2][3];
动态初始化2
int a[ ][ ];
a = new int[2][3];
动态初始化3 - 列数不确定
// 列数不确定
int[][] arr = new int[3][];
for (int i = 0; i < arr.length; i++){
arr[i] = new int[i + 1]; //给一维数组开空间
for (int j = 0; j < arr[i].length; j++){
arr[i][j] = i + 1;
System.out.print(arr[i][j]+"\t");
}
System.out.println();
}
静态初始化
int a[ ][ ] = {{1,1,1},{2,2,2},{100}};
杨辉三角
// 杨辉三角
int n = 10; //层数
int arr[][] = new int[n][];
for(int i = 0; i < arr.length; i++){
arr[i] = new int[i + 1]; //给一维数组开空间
for (int j = 0; j < arr[i].length; j++){
if (j == 0 || j == arr[i].length - 1){
arr[i][j] = 1;
}else{
arr[i][j] = arr[i-1][j-1] + arr[i-1][j];
}
}
}
for (int i = 0; i < arr.length; i++){
for (int j = 0; j< arr[i].length;j++){
System.out.print(arr[i][j]+"\t");
}
System.out.println();
}
细节
- 声明:int[ ][ ] y; int[ ] y[ ]; int y[ ][ ];
e.g. int[ ] x,y[ ]; //x是一维数组,y是二维数组。 - 二维数组由多个一维数组组成,各个一维数组的长度可以相同,也可以不同。不同的叫做列数不等的二维数组。
练习
int[] x,y[];
x[0] = y; //错误,int[][] -> int
y[0] = x; //正确,int[] -> int[]
y[0][0] = x; //错误,int[] ->int
x[0][0] = y; //错误,x[0][0]没有这种写法
y[0][0] = x[0]; //正确,int ->int
x = y; //错误,int[][] -> int[]
数组定义:
String[] strs = {"a","b","c"};
String strs[] = new String[]{"a","b","c"};
冒泡排序
// 冒泡排序
int[] arr = {20, -1, 89, 2, 890, 7};
int temp;
for (int i = 0; i < arr.length - 1; i++){
for (int j = 0; j < arr.length - 1 - i; j++){
if(arr[j] > arr[j+1]){
temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
for (int i = 0; i < arr.length - 1; i++){
System.out.print(arr[i]+"\t");
}
类与对象 OOP
类:数据类型;对象:具体的实例。
对象在内存中的存在形式
引用类型存放的是地址,指向方法区的常量池;基本数据类型存放自身。
属性/成员变量
class Car{
String name; //属性
double price;
String color;
}
属性是类的一个组成部分,可以是基本数据类型,也可以是引用数据类型(对象、数组)。
注意
定义:访问修饰符 属性类型 属性名;
访问修饰符:控制属性的访问范围(public、protected、private、默认)
属性不赋值,会有默认值。规则和数组一致。
int、short、byte、long:0;float、double:0.0;char:\u0000;boolean:false;String:null。
创建对象
- 先声明再创建
Cat cat;
cat = new Cat(); - 直接创建
Cat cat = new Cat();