通过类与对象之间的引用传递来理解引用传递的机制

Person类

public class Person {private int age ;private String name ;private Book book ;//一个人有一个书private Person child ;//一个人有一个孩纸public Person(int age, String name) { //构造函数super();this.age = age;this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public Book getBook() {return book;}public void setBook(Book book) {this.book = book;}public Person getChild() {return child;}public void setChild(Person child) {this.child = child;}
}

  Book类

public class Book {private String title ;private double price ;private Person person ; //一本书属于一个人public Book(String title, double price) {super();this.title = title;this.price = price;}public String getTitle() {return title;}public void setTitle(String title) {this.title = title;}public double getPrice() {return price;}public void setPrice(double price) {this.price = price;}public Person getPerson() {return person;}public void setPerson(Person person) {this.person = person;}
}

  RefTest类,测试主类

public class RefTest {/*** @param args* 对象之间的引用传递*/public static void main(String[] args) {// TODO Auto-generated method stubPerson per = new Person(30,"张三") ;Person cld = new Person(10,"张草") ;Book bk = new Book("JAVA开发实战经典",30.3) ;Book b = new Book("一千零一夜",10.3) ;per.setBook(bk) ;//设置两个对象之间的关系,一个人拥有一本书bk.setPerson(per) ;//设置两个对象之间的关系,一本书属于一个人cld.setBook(b) ; //一个孩纸有一本书b.setPerson(cld) ;//一个书属于一个孩纸per.setChild(cld) ;//一个人有一个孩子System.out.println("从人找到书————————>姓名:"+per.getName()+",年龄:"+per.getAge()+",书名:"+per.getBook().getTitle()+",价格:"+per.getBook().getPrice());System.out.println("从书找到人————————>书名:"+bk.getTitle()+",价格:"+bk.getPrice()+",姓名:"+bk.getPerson().getName()+",年龄:"+bk.getPerson().getName());//通过人找到孩纸,并找到孩纸拥有的书System.out.println(per.getName()+"的孩纸————>姓名:"+per.getChild().getName()+",年龄:"+per.getChild().getAge()+",书名:"+per.getChild().getBook().getTitle()+",价格:"+per.getChild().getBook().getPrice());}}

转载于:https://www.cnblogs.com/goforitjava/p/3680777.html

JAVA之间的引用传递相关推荐

  1. java中是引用传递还是值传递....

    刚才与Z师兄聊天,他提问: 你说java中是引用传递还是值传递啊? 当时俺搞混了这个"传递"的意思, 本来以为是对象的实例化比如: abc a=new abc(); 这个a 是引用 ...

  2. Java 面向对象 之 引用传递

    http://www.verejava.com/?id=16992763271038 /**知识点内容: 引用传递1. 方法参数引用传递2. 对象与对象之间的引用传递3. this指针 本对象引用传递 ...

  3. 面试官刁难:Java字符串可以引用传递吗?

    老读者都知道了,六年前,我从苏州回到洛阳,抱着一幅"海归"的心态,投了不少简历,也"约谈"了不少面试官,但仅有两三个令我感到满意.其中有一位叫老马,至今还活在我 ...

  4. Java到底是引用传递还是值传递

    前言 前段时间在群里看到类似这样一个问题,下面的代码会输出什么呢? public void test() {String str = "hello";change(str);Sys ...

  5. Java主方法引用传递_java方法中的参数传递是值传递还是引用传递(转)

    1.当参数变量为基本数据类型或者字符串时: ... ... //定义了一个改变参数值的函数 public static void changeValue(int x) { x = x *2; } .. ...

  6. java引用传递_理解Java中的引用传递和值传递

    关于Java传参时是引用传递还是值传递,是一个讨论比较多的话题, 有说Java中只有值传递,也有些地方说引用传递和值传递都存在,本篇记录思考过程,不保证正确性, 感兴趣的同学一起讨论. 1.基本类型和 ...

  7. 请注意,java中没有引用传递

    今天在论坛上有人提了一个关于java中调用函数时有没有引用传递的问题,可谓是吵的不可开交.有人说java只有值传递,也有人说java既有值传递也有引用传递,那么java中到底有没有引用传递呢,下面我来 ...

  8. Java学习笔记----引用传递

    1.基本概念:引用传递是整个Java的精髓所在,其核心意义是:同一块堆内存空间可以被不同的栈内存所指向,不同栈内存可以对同意堆内存进行内容的修改 例.第一道引用传递范例 class Message{p ...

  9. Java中的引用传递

    除了基本数据类型和String类对象,其他引用类型的对象都可以进行引用传递.数组也是引用类型. 比如: 通过传入对象的方法,修改该对象的值. 这个时候,基本数据类型和String的对象就不可以进行引用 ...

最新文章

  1. 如何让人工智能更智能?你需要一个开源平台
  2. 【一个实体对象不能由多个 IEntityChangeTracker 实例引用】原因及解决方法
  3. OPK修改操作系统信息 --oobe.xml
  4. Java web程序中备份oracle数据库
  5. LCT维护子树信息(BZOJ4530:[BJOI2014]大融合)
  6. 购物小票 FoundPrice.java
  7. IDEA如何重新刷新pom.xml文件重新下载
  8. DOM树-Render树-RenderLayer树 对应关系
  9. python实现文本编辑器_Python-tkinter实现简单的文本编辑器
  10. Java中的字符串分割
  11. Vijos 1092 全排列
  12. 这8款浏览器兼容性测试工具,用了以后测试效率可以“起飞”~~
  13. [转载]MySQL锁机制
  14. 建模与仿真matlab论文,基于matlab风力发电系统的建模与仿真毕业设计论文
  15. GPyTorch中的超参数
  16. HSPICE物理模型仿真——添加variation时利用seed产生伪随机分布
  17. 学计算机拼音不好怎么办,新学期拼音学不会怎么办?送你10个妙招攻克拼音难关...
  18. 坐标求四面体体积_解析几何课程中求四面体体积新方法探究
  19. python正则表达式匹配数字或者逗号_将数字与正则表达式相匹配-只有数字和逗号...
  20. 博客添加音乐插件、网站运行时间、文章阅读次数和网站访客统计

热门文章

  1. 《SQL与关系数据库理论——如何编写健壮的SQL代码》一第3章
  2. 机器学习之sklearn——聚类
  3. Java绘制基本图形
  4. OSSIM下部署HIDS
  5. java+jsp+mysql网页制作总结(1)
  6. Spring3.x事务失效的原因以及解决办法
  7. VMware vSphere 5.0升级到5.1的思路
  8. 收集一些有关SilverLight(WPF/E)的链接
  9. 92django_url
  10. 57-高级路由:分发列表:多协议分发列表实验:DV、LS