java的Interface特性

zhyinty 2009-10-15 08:35:53
是不是就是c++中的多重继承特性,好像Java取消了多重继承。是不是就用这个interface来代替,才学Java,不太清楚,还有一个
java中的二维数组

int[][] array = {{1},{2},{3},{4}};
for(int[] e : array)
{
for(int p : e)
{
System.out.println(p);
}

}
for()循环里面的这种使用方法,没怎么见过,哪位解释一下,是不是只能在for()中使用,好像直接用用不了,:是个什么操作?

如何传递一个内置类型(如int a, float a)的引用类型,自定义对象是传递的引用,但是内置类型如何传递,比如我想将传入的int a = 3;改为 a = 4,而不是将a的复制改为4;
...全文
128 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
zl3450341 2009-10-15
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 bigbro001 的回复:]
for()循环里面的这种使用方法,没怎么见过,哪位解释一下,是不是只能在for()中使用,好像直接用用不了,:是个什么操作?

foreach语句是for语句特殊情况下的增强版本,简化了编程,提高了代码的可读性和安全性(不用怕数组越界)。
foreach的语句格式:
for(元素类型type 元素变量x : 遍历对象obj){
  引用了x的java语句;
}

相对老的for语句来说是个很好的补充,能用foreach的地方就不要再用for了。
但在用到对集合或者数组索引的情况时,foreach就显得有点力不从心了,这个时候就是用for语句的时候了。

如何传递一个内置类型(如int a, float a)的引用类型,自定义对象是传递的引用,但是内置类型如何传递,比如我想将传入的int a = 3;改为 a = 4,而不是将a的复制改为4;

基本类型和基本类型变量被当作参数传递给方法时,是值传递。在方法实体中,无法给原变量重新赋值,也无法改变它的值。

[/Quote]

顶顶
hui94781674 2009-10-15
  • 打赏
  • 举报
回复
增强的for,很强大。。不熟练
L502650 2009-10-15
  • 打赏
  • 举报
回复
学习.
bigbro001 2009-10-15
  • 打赏
  • 举报
回复
for()循环里面的这种使用方法,没怎么见过,哪位解释一下,是不是只能在for()中使用,好像直接用用不了,:是个什么操作?

foreach语句是for语句特殊情况下的增强版本,简化了编程,提高了代码的可读性和安全性(不用怕数组越界)。
foreach的语句格式:
for(元素类型type 元素变量x : 遍历对象obj){
引用了x的java语句;
}

相对老的for语句来说是个很好的补充,能用foreach的地方就不要再用for了。
但在用到对集合或者数组索引的情况时,foreach就显得有点力不从心了,这个时候就是用for语句的时候了。

如何传递一个内置类型(如int a, float a)的引用类型,自定义对象是传递的引用,但是内置类型如何传递,比如我想将传入的int a = 3;改为 a = 4,而不是将a的复制改为4;

基本类型和基本类型变量被当作参数传递给方法时,是值传递。在方法实体中,无法给原变量重新赋值,也无法改变它的值。
swandragon 2009-10-15
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zhyinty 的回复:]
最后一个问题,对于void method(int a) 我们如何改变传入的a的值,而不是a 的副本的值呢?
[/Quote]

变量定义成类的成员变量
用方法直接修改
int a = 0;
void method(){
a = 5;
}
cjay124 2009-10-15
  • 打赏
  • 举报
回复
1 java 只支持单继承但是可以实现多个接口,接口只声明方法的签名具体的实现则在实现了这个接口的类 中实现。
2 java 中数组也是对象,2维数组可以理解为第一维数组的元素也是数组,所以第二维的数组长度可以不相等。
for循环的迭代用法
for(int[] e : array)
相当于
for(int i = 0 ; i <array.length; i++)
int[] e = array[i];
3 java 只有值传递,只能把变量的值传进去而不能把这个变量的地址传进去
zhyinty 2009-10-15
  • 打赏
  • 举报
回复
最后一个问题,对于void method(int a) 我们如何改变传入的a的值,而不是a 的副本的值呢?
cjhui 2009-10-15
  • 打赏
  • 举报
回复
foreach语句确实比较简单,又好用,防止了数组越界异常的发生。
ZangXT 2009-10-15
  • 打赏
  • 举报
回复
接口和多继承差别还是很大的(从设计思想到编译的具体实现),两个语言的东西,没有必要这么比较。
skyair2004 2009-10-15
  • 打赏
  • 举报
回复
接口多实现,解决了java不能多继承的问题。。。
for(i = 0,i < 数组.length,i++) {
}

和这个效果是一样的,好象foreach适用范围不广。但确实比较简单
liuc0317 2009-10-15
  • 打赏
  • 举报
回复
Java 中 只支持单extens ! 一个子类只能有一个父类! 为了弥补Java 中extends 的单根性!最后定义了
interface ! Java类可以实现多个接口!entends 一个父类!
cwjieNo1 2009-10-15
  • 打赏
  • 举报
回复
Java可以实现单个继承,接口是定义规范的,里面的方法用于被类实现
amdgaming 2009-10-15
  • 打赏
  • 举报
回复
这个 是for 增强 循环 很好用吧。呵呵

jdk1.5之后 才有的

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧