1.对象数组的使用
对象也可以用数组来存放,必须有两个步骤:(1)声明类类型的数组变量,并用new分配内存空间给数组(2)用new产生新的对象,并分配内存空间给它
例:要创建三个Car类类型的数组元素
Car c[]=new Car[3];//创建Car类类型的数组元素,并 分配内存空间
动态初始化,利用for循环完成对象数组内的初始化操作
例: for(int i=0;i<c.length;i++){
c[i]=new Car();
}
静态初始化
例: Car c[]={new Car(),new Car(),new Car()};
public class Car { String color; String name; Car(String c,String n){ color=c; name=n; } String show(){ return "这是"+color+name; } }
public class car1 { public static void main(String[] args) { Car c[]={new Car("红色","奥迪"),new Car("白色","大众"),new Car("黑色","奔驰")}; for(int i=0;i<c.length;i++){ System.out.println(c[i].show()); } } }
运行结果:
这是红色奥迪
这是白色大众
这是黑色奔驰
2.内部类
内部类的基本格式:
标识符 class 外部类名称{
//外部类的成员
标识符 class 内部类名称{
//内部类的成员
}
}
内部类可以直接调用外部类中的属性,外部类不可以访问内部类声明的属性。内部类用static声明后,内部类不能访问非static定义的外部类属性
public class out1 { int score; void show(){ in1 in=new in1(); in.talk(); } class in1{ void talk(){ System.out.println("他的分数是;"+score); } } }
public class out11 { public static void main(String[] args) { out1 out=new out1(); out.score=98; out.show(); } }
3.在类外部引用内部类
内部类可以通过创建对象从外部类之外被调用,只要将内部类声明成public。
public class out1 { int score; void show(){ in1 in=new in1(); in.talk(); } public class in1{ void talk(){ System.out.println("他的分数是;"+score); } } }
public class out11 { public static void main(String[] args) { out1 out=new out1(); out1.in1 in=out.new in1();//用外部类的对象实例化内部类的一个对象 out.score=98; in.talk(); } }
4.在方法中定义内部类
public class out1 { int score; void show() { class in1 { void talk() { System.out.println("他的分数是;" + score); } } in1 in = new in1(); in.talk(); } }
public class out11 { public static void main(String[] args) { out1 out=new out1(); out.score=98; out.show(); } }
在方法中定义的内部类只能访问方法中的final类型的 局部变量,因为用final定义的局部变量相当于是一个常量,它的生命周期超出方法运行的生命周期
public class out1 { int score; void show(final String s) { final String name="lindy"; class in1 { void talk() { System.out.println(name+s+"的分数是;" + score); } } in1 in = new in1(); in.talk(); } }
public class out11 { public static void main(String[] args) { out1 out=new out1(); out.score=98; out.show("数学"); } }