数组是引用类型,而类同样是引用类型,所以如果是对象数组的话表示一个引用类型里面嵌套其他引用类型。
在前面两篇都是属于基本数据类型的数据,但是索引的引用数据类型也同样可以定义数组,这样的数组称为对象数组。
以类为例定义对象数组:
- 动态初始化: //开辟之后对象数组的内容都是默认值,即null值
- 类名称 对象数组名称 [ ] = new 类名称 [长度] ;
- 分步完成:
- 声明对象数组: 类名称 对象数组名称 [ ] = null ;
- 开辟对象数组:对象数组名称 = new 类名称 [长度] ;
- 静态初始化:
- 类名称 对象数组名称 [ ] =new 类名称 [ ]{ 实例化对象,实例化对象,实例化对象 ... ... }
例子:
动态生成对象数组:
1 class Book_demo_1{ 2 private String name ; 3 private double money ; 4 5 6 public Book_demo_1(){ 7 } 8 public Book_demo_1(String n ,double m){ 9 name = n;10 money = m;11 }12 13 public String getName() {14 return name;15 }16 public double getMoney() {17 return money;18 }19 20 public String getInfo() {21 return "书名:" + name + "\t" + "价格" + money;22 }23 24 public void setName(String n ) {25 name = n;26 }27 public void setMoney(int m){28 money = m;29 }30 }31 32 public class 对象数组 {33 public static void main(String[] args) {34 Book_demo_1 book [] = new Book_demo_1[3]; //开辟一个3个长度的对象数组35 book[0] = new Book_demo_1("java开发",66.6);36 book[1] = new Book_demo_1("python",99.9);37 book[2] = new Book_demo_1("php",11.1);38 for (int i = 0 ; i < book.length ; i++) {39 System.out.println(book[i].getInfo());40 }41 }42 }
静态初始化:
1 class Book_demo_1{ 2 private String name ; 3 private double money ; 4 5 6 public Book_demo_1(){ 7 } 8 public Book_demo_1(String n ,double m){ 9 name = n;10 money = m;11 }12 13 public String getName() {14 return name;15 }16 public double getMoney() {17 return money;18 }19 20 public String getInfo() {21 return "书名:" + name + "\t" + "价格" + money;22 }23 24 public void setName(String n ) {25 name = n;26 }27 public void setMoney(int m){28 money = m;29 }30 }31 32 public class 对象数组 {33 public static void main(String[] args) {34 Book_demo_1 book [] = new Book_demo_1[]{35 new Book_demo_1("java开发",66.6),36 new Book_demo_1("python",99.9),37 new Book_demo_1("php",11.1),38 };39 for (int i = 0 ; i < book.length ; i++) {40 System.out.println(book[i].getInfo());41 }42 }43 }
- 对象数组实际是就是将多个对象交给数组统一管理。
- 对象数组的定义语法,对象数组实际上就等于多个对象