一、对象与类

打印 上一主题 下一主题

主题 917|帖子 917|积分 2751

已经工作几年了,java,vue,python,C++各种项目都随叫随到,但除了C++其他都没有系统的学习过。这里仅记录下从头学习java基础的过程,和我认为值得记录的一些点,权当做一个备份和文档。
学习参考书:java核心技术 卷1 第九版。家里正好有这本书很多年了,也就看这个了,不是很推荐,原因:1,太厚,内容虽然详细但也很臃肿。2. 翻译,有些翻译不是很好理解。比如类中的数据,C++叫成员变量,这里翻译成域。
1  类的三种关系:use, has, is
2  封装:数据域私有,即隐藏数据的实现方式,只提供方法去操作。所有的使用者调用即可而不需要关心实现方法的都可以称为封装。
3  java的所有变量都是引用。这里的引用更类似于C++的指针,即每个java变量都是指向了一个内存中的对象(不深究的话可以简单的认为就是堆)。这里引申出来就很好理解java参数传递。java所有的参数都是变量的拷贝,而变量本身并不是对象而是对象的引用。举栗:
  class A{
    private int b=0;
    pubic void setB(int b){ this.b = b;}     
 }
  A isA = new A();
   无论是isA,或是传递给fun(A paramA)后的paramA,只要明白改变的是isA,paramA,还是真正的实例E,这个问题就很简单了。(这编辑器图片怎么才能浮动???)

  当我们调用isA.setB(1) 或者paramA.setB(2)时,我们调用的都是对象提供的修改器方法,改变了对象内部的属性,而两个变量仍然指向E。这时很明显我们修改的是对象。而当我们使用isA = new A(); 或其他返回A类型的方法时,这时我们改变的是isA,即让isA指向了其他对象。

<strong>  (鉴于有人说看不懂
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

滴水恩情

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表