求教几个 在《java核心技术卷一》中看到的疑问

developerLeo 2018-10-24 07:42:06
1.如何理解java方法参数传递的对象引用是按值调用而不是引用调用?
2.为什么不能用 import java.*导入多个包?是规定还是什么理由?
3.
关于划红线句子中的两个问题,1).super不是指向父类对象吗?为什么说不是一个对象的引用?
2).super不是还有可以访问父类域的用途吗?
...全文
540 11 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_39936465 2019-03-08
  • 打赏
  • 举报
回复
为什么不能用 import java.*导入多个包?是规定还是什么理由?

随着java 的发展 有同名不同包的类出现,你如果写java.*会造成程序编译时不知道该调用那个类,起码要加类包名以示区别,所以java 规定要加包名,可以包名后加'*'号。
蜗牛2019 2019-03-06
  • 打赏
  • 举报
回复
“值引用”就是把变量值复制一份给函数,函数里对这个数值做任何改动都不会影响到函数外。
过分着迷 2019-01-15
  • 打赏
  • 举报
回复
问题二,这个看你使用的是什么编辑器,如果是idea的话可以,eclipse不可以
紫色动力 2019-01-12
  • 打赏
  • 举报
回复
第一点:JAVA就是这样的,都是值传递,没有引用。与C++是不同的。之所以会让你产生困惑是当函数的参数是除8种非基本类型时的情况。这时可以理解为传递的是指向类在内存中的地址。结果与C++中的指针类似。
第二点:这是规定。
weixin_42031822 2019-01-02
  • 打赏
  • 举报
回复
第二点。是java这样规定的
  • 打赏
  • 举报
回复
问题1:Java中只有按值传递,没有C++中的引用传递。java中的按值传递也和C++中的按值传递理解上有区别,不要弄混了。
你需要弄清楚java中变量是什么,首先java中有几个基本类型,比如int型,double型,,,这些数据类型的变量就是它本身,那个变量的名称可以理解为就代表了那个内存中的数据,所以函数调用会拷贝一份,因此在函数中改变不了这个变量的值。但对于java中的对象,就不同了。比如:Date date = new Date(); 这里的date是一个变量,但是它就是这个对象吗?并不是,它只是一个标签(类似python),或者称一个指针(类似C),大家也成它是这个对象的引用(但这里的意思并不是说是C++中的引用),实际上它储存了那个真正对象内存的地址,date就是一个地址,所以函数调用时虽然是按值传递,但是拷贝的是地址,所以函数中的date也还是指向了那个对象,所以就可以改变那个对象了,但是它因为是按值传递,所以还是不能改变date的值,也就是这个地址它改变不了。不知道说的理解不理解?

问题2:这个就是一规定,好处就是让你少些点代码,减轻工作量,看起来更简洁。

问题3:super是一个关键字,书中已经说的很清楚了。用途就是上面的两个方法,没有什么需要多说的,因为为什么要这个关键字这本书中已经说得很清楚了。

祝学习进步!
十八道胡同 2018-11-01
  • 打赏
  • 举报
回复
按值传递:函数方法的参数即形参是实际参数的一个拷贝。
引用传递:指在调用函数时将实际参数的地址传递到函数中,那么在函数中对参数所进行的修改,将影响到实际参数。


https://blog.csdn.net/zzp_403184692/article/details/8184751
  • 打赏
  • 举报
回复
你可以吧this 赋值给其他属性,比如 a=this,但是 没有 a=super的说法。再者B 继承A,你new了一个B的实例,你都没有实例化父类,怎么会有父类的引用呢?
qq_39936465 2018-10-25
  • 打赏
  • 举报
回复
书上说的引用调用应该是指类的初始化, 而方法的参数传递,是给初始化后的类变量赋值使用,根据给与的参数不同,类变量会有不同的值,所以说的按值调用(按照参数值调用)
qq_39936465 2018-10-25
  • 打赏
  • 举报
回复
super 是一个关键字,不可以赋值给其他人,但是同类型类初始化后是可以相互赋值的,书后面不是解释的很清楚么!
XBFGW 2018-10-25
  • 打赏
  • 举报
回复
this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针,而super相当于是指向当前对象的父类,可以用super.xxx来引用父类的成员。

62,634

社区成员

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

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