数组是引用类型,而类同样是引用类型,所以如果是对象数组的话表示一个引用类型里面嵌套其他引用类型。
在前面两篇都是属于基本数据类型的数据,但是索引的引用数据类型也同样可以定义数组,这样的数组称为对象数组。
以类为例定义对象数组:
- 动态初始化: //开辟之后对象数组的内容都是默认值,即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 }
- 对象数组实际是就是将多个对象交给数组统一管理。
- 对象数组的定义语法,对象数组实际上就等于多个对象