Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 4 out of bounds for length 4 at com.wanglx.duotai.Practice_duotai.main(Practice_duotai.java:9)
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 4 out of bounds for length 4
at com.wanglx.duotai.Practice_duotai.main(Practice_duotai.java:9)
public class Practice_duotai { public static void main(String[] args) { Traffic [] t=new Traffic[4]; t[1]=new Car(); t[2]=new Bicycle(); t[3]=new Car(); t[4]=new Bicycle(); for(int i=0;i<4;i++) { t[i].drive(); } } } class Traffic{ public void drive() { System.out.println("前进"); } } class Car extends Traffic{ public void drive() { System.out.println("很快"); } } class Bicycle extends Traffic{ public void drive() { System.out.println("很慢"); } }
这是我学习“多态”时,练习的简单代码,当时运行的时候idea给出了
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 4 out of bounds for length 4 at com.wanglx.duotai.Practice_duotai.main(Practice_duotai.java:9)
这样的错误代码
这个异常是初学者比较常见的异常。 ArrayIndexOutOfBoundsException:注意这个单词,字面意思就是数组引用超出界限,也就是我们常说的越界问题。 比如,我们创建了一个数组 int a[] = new int[4] ; 那么数组a只能存放四个元素,而数组的下标是从0开始的,也就是说,a[3]就是最后一个元素。当你给a[4]赋值,或者使用a[4]的时候,就出现了ArrayIndexOutOfBoundsException异常
修改以后
1 package com.wanglx.duotai; 2 3 public class Practice_duotai { 4 public static void main(String[] args) { 5 Traffic [] t=new Traffic[4]; 6 t[0]=new Car(); 7 t[1]=new Bicycle(); 8 t[2]=new Car(); 9 t[3]=new Bicycle(); //这里要注意 10 for(int i=0;i<4;i++) { 11 t[i].drive(); 12 } 13 14 } 15 } 16 class Traffic{ 17 public void drive() { 18 System.out.println("前进"); 19 } 20 } 21 class Car extends Traffic{ 22 public void drive() { 23 System.out.println("很快"); 24 } 25 } 26 class Bicycle extends Traffic{ 27 public void drive() { 28 System.out.println("很慢"); 29 } 30 }
如果生活变得难以忍受,我们会想到改变我们的环境。