当前位置: 代码迷 >> Java相关 >> 课本上的例子不懂
  详细解决方案

课本上的例子不懂

热度:348   发布时间:2010-05-11 11:14:14.0
课本上的例子不懂
我不明白的是红色的文字地方,是怎么实现检查,为什么要检查。同一个题目为什么课本的例子要这么麻烦,还是是我漏了什么?


课本上的例子:
与C、C++中不同,JAVA对数组元素进行越界检查以确保安全性

程序代码:
public class test{
public static void main(String args[]){
      int i;
      int a[]=new int [5];
      for(i=0;<5;i++){
          a[i]=i;
      }
      for(i=a.length-1;i>=0;i++){
          System.out.println("a["+i+"]="+i);
  }
}



这是我自己做的
程序代码:
public class test{
public static void main(String args[]){
      int i;
      int a[]=new int [5];
      for(i=4;i>-1;i--){
          a[i]=i;
          System.out.println("a["+i+"]="+a[i]);
      }
  }
}


搜索更多相关的解决方案: 课本  例子  

----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽
2010-05-11 05:13:05
hzh512

等 级:蜘蛛侠
威 望:6
帖 子:234
专家分:1333
注 册:2009-6-5
  得分:0 
顶楼上
----------------解决方案--------------------------------------------------------

先说,你说‘是不是你漏了什么’,不是你漏了什么,而是课本中的例子是为了说明‘是如何检查的’而才有了课本中的多的一部分啊!
再说,JAVA是个完全面向对象的编程语言,亦是个编程平台,
      与C。C++相比,在其JAVA的安全性的这个特性,语言级安全性中封装过的数据类型具有安全性,
      其中就有你所迷惑的这一点,就拿数组说吧,JAVA为数组(广义上就是对象)增加了一个(防止错误的属性)ARRAYNAME.LENGTH,着就优于C,C++中的易发生越界而编译器没有报错的缺陷,应正了JAVA面向对象的语言级安全性,
     int a[]=new int [5];
      for(i=0;<5;i++){
          a[i]=i;

   就是验证*.LENGTH属性是不会越界的,

            以此,验证红字部分
            JAVA对数组元素进行越界检查以确保安全性


----------------解决方案--------------------------------------------------------
这道题是利用for循环语句给定义的数组赋值,然后输出。其中,a.length是计算数组a的长度!
----------------解决方案--------------------------------------------------------
以下是引用爱OO你在2010-5-11 22:59:51的发言:


先说,你说‘是不是你漏了什么’,不是你漏了什么,而是课本中的例子是为了说明‘是如何检查的’而才有了课本中的多的一部分啊!
再说,JAVA是个完全面向对象的编程语言,亦是个编程平台,
      与C。C++相比,在其JAVA的安全性的这个特性,语言级安全性中封装过的数据类型具有安全性,
      其中就有你所迷惑的这一点,就拿数组说吧,JAVA为数组(广义上就是对象)增加了一个(防止错误的属性)ARRAYNAME.LENGTH,着就优于C,C++中的易发生越界而编译器没有报错的缺陷,应正了JAVA面向对象的语言级安全性,
     int a[]=new int [5];
      for(i=0;<5;i++){
          a=i;
   就是验证*.LENGTH属性是不会越界的,

            以此,验证红字部分
            JAVA对数组元素进行越界检查以确保安全性
  JAVA不是完全的面向对象。

   具体来说,JAVA的基本类型本身不是对象,例如:int、char、boolean等。你不能像对待其他引用类型那样来对待它们,例如你不能直接把基本类型装入集合(Collection)中,因为它只接受引用类型的对象,此时你就需要通过将它转换成相应的包装类(wrapper classes),如Integer、Character、Boolean来完成此操作。

----------------解决方案--------------------------------------------------------
谢谢
----------------解决方案--------------------------------------------------------
  相关解决方案