一维数组
数组的定义:1、数据类型 数据名[] (数据类型 [] 数据名) =new 数据类型[];例如 int a[]=new int [];
2、数据类型 数据名[] (数据类型 [] 数据名) ;//先声明 例如:int a[];
数据名=new 数据类型[];//再创建数组 a=new int [];
3、类型 数组名 []={表达式1,表达式2,表达式3,……}; 例如:int a={1,2,3,4};
数组的初始化:1、静态初始化是指在定义数组的同时就为数组元素分配空间并赋值。(上述的数组的第三种定义方式也就是数组的静态初始化方式。)
2、动态初始化是指数组的定义与数组分配空间和赋值的操作分开进行。
例如:int a[]=new int [5];//int a[];a=new int [5];
a[0]=0;a[1]=1;a[2]=2;a[3]=3;a[4]=4;
数组的使用:数组名[下标];例如:a[4];//访问的是第五个元素
注:数组元素的下标都是从0开始的。
多维数组
二维数组:
数组的定义:1、数据类型 数组名[行数][列数]=new 数据类型[][]; 例如:int a[][](int [][]a)=new int [][];
2、数据类型 数组名[][];数组名=new 数据类型[][]; String s[][];//String [][]s;
s=new String[][];
3、数据类型 数组名 [][]={{},{},{}};例如:int a[2][3]={{1,2,3},{4,5,6}};
二维数组的静态初始化和动态初始化概念与一维数组相同。
注:二维数组的动态初始化有两种方式:
1、与一维数组的动态初始化方式相同。
2、由高维到低维依次进行空间分配,此时分配的数组的空间可以是任意形状的。
例如:int a[][]=new int[3][];
a[0]=new int [2];
a[1]=new int [3];
a[2]=new int [4];
这样就把一个共三行的数组定义成了第一行有2个数据元素,第二行有三个数据元素,第三行有四个数据元素的数组。
对象数组
例如:
public class Demo_13 {
public static void main(String []args){
Cat a[]=new Cat[3];
a[0]=new Cat();//尤其注意
a[0].setAge(4);
a[0].setName("小花");
}
}
class Cat{
int age;
String name;
public void setAge(int age) {
this.age = age;
}
public int getAge() {
return age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
public class Demo_12 {
public static void main(String []args){
Fow fow[]=new Fow[3];
fow[0]=new Rose();
fow[1]=new Lily();
fow[2]=new Peony();
for(int i=0;i<fow.length;i++)
{
fow[i].show();
fow[i].show_smell();
}
}
}
abstract class Fow{
private int id;
public int get_id() {
return id;
}
public void set_id(int id) {
this.id = id;
}
abstract void show();
abstract void show_smell();
}
class Rose extends Fow{
public void show(){
System.out.println("我是玫瑰花");
}
public void show_smell(){
System.out.println("我有玫瑰香");
}
}
class Lily extends Fow{
public void show(){
System.out.println("我是百合花");
}
public void show_smell(){
System.out.println("我有百合香");
}
}
class Peony extends Fow{
public void show(){
System.out.println("我是牡丹花");
}
public void show_smell(){
System.out.println("我有牡丹香");
}
}