Java面向对象基础--引用传递分析
2013-09-04 08:55
609 查看
class Demo{ int temp = 30 ; // 此处为了方便,属性暂时不封装 }; public class RefDemo01{ public static void main(String args[]){ Demo d1 = new Demo() ; // 实例化Demo对象,实例化之后里面的temp=30 d1.temp = 50 ; // 修改temp属性的内容 System.out.println("fun()方法调用之前:" + d1.temp) ; fun(d1) ; System.out.println("fun()方法调用之后:" + d1.temp) ; } public static void fun(Demo d2){ // 此处的方法由主方法直接调用 d2.temp = 1000; // 修改temp值 } };
public class RefDemo02{ public static void main(String args[]){ String str1 = "hello" ; // 实例化字符串对象 System.out.println("fun()方法调用之前:" + str1) ; fun(str1) ; // 调用fun()方法 System.out.println("fun()方法调用之后:" + str1) ; } public static void fun(String str2){ // 此处的方法由主方法直接调用 str2 = "MLDN" ; // 修改字符串内容 } };
class Demo{ String temp = "hello" ; // 此处为了方便,属性暂时不封装 }; public class RefDemo03{ public static void main(String args[]){ Demo d1 = new Demo() ; // 实例化Demo对象,实例化之后里面的temp=30 d1.temp = "world" ; // 修改temp属性的内容 System.out.println("fun()方法调用之前:" + d1.temp) ; fun(d1) ; System.out.println("fun()方法调用之后:" + d1.temp) ; } public static void fun(Demo d2){ // 此处的方法由主方法直接调用 d2.temp = "MLDN"; // 修改temp值 } };
class Person{ // 定义Person类 private String name ; // 姓名 private int age ; // 年龄 private Book book ; // 一个人有一本书 private Person child ; // 一个人有一个孩子 public Person(String name,int age){ this.setName(name) ; this.setAge(age) ; } public void setName(String n){ name = n ; } public void setAge(int a){ age = a ; } public String getName(){ return name ; } public int getAge(){ return age ; } public void setBook(Book b){ book = b ; } public Book getBook(){ return book ; } public void setChild(Person c){ child = c ; } public Person getChild(){ return child ; } }; class Book{ // 定义Book类 private String title ; // 标题 private float price ; // 价格 private Person person ; // 一本书属于一个人 public Book(String title,float price){ this.setTitle(title) ; this.setPrice(price) ; } public void setTitle(String t){ title = t ; } public void setPrice(float p){ price = p ; } public String getTitle(){ return title ; } public float getPrice(){ return price ; } public void setPerson(Person p){ person = p ; } public Person getPerson(){ return person ; } }; public class RefDemo06{ public static void main(String arg[]){ Person per = new Person("张三",30) ; Person cld = new Person("张草",10) ; // 定义一个孩子 Book bk = new Book("J***A SE核心开发",90.0f) ; Book b = new Book("一千零一夜",30.3f) ; 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().getAge()) ; // 也可以通过书找到其所有人 // 通过人找到孩子,并找到孩子所拥有的书 System.out.println(per.getName() + "的孩子 --> 姓名:" + per.getChild().getName() + ";年龄:" + per.getChild().getAge() + ";书名:" + per.getChild().getBook().getTitle() + ";价格:" + per.getChild().getBook().getPrice()) ; } };
相关文章推荐
- Java基础(极客)——11、Java面向对象中引用的传递
- Java面向对象-方法的值传递和引用传递
- 小example说明java的值传递和引用传递,基础变量和对象在内存里的区别,堆栈
- 面向对象_引用类型_内存分析_垃圾回收JAVA028-033
- Java-面向对象中引用传递和按值传递
- 6 Java基础语法(二维数组,参数传递与数据加密问题)&面向对象(面向对象思想,类与对象及使用,对象内存图解)
- 12-8java面向对象对象之引用传递
- JAVA随笔篇二(深入分析JAVA简单类型、String和对象的值传递和引用传递)
- Java面向对象-方法的值传递和引用传递
- Java值传递和引用传递基础分析
- java基础学习05(面向对象基础01--类实例分析)
- 面向对象基础——引用传递及其应用以及this关键字的使用
- Java基础之对象的引用传递与对象的值传递
- java面向对象 【专题】引用传递
- Java面向对象基础--类的设计及分析问题的方法---用户登录例子
- 黑马程序员——Java基础---面向对象及其一些代码内部结构分析
- 黑马程序员——Java基础---面向对象之多态抽象类接口
- 面向对象01-java基础
- Java基础学习中,关于面向对象中多态、抽象类、接口的总结
- [零基础学JAVA]Java SE面向对象部分-14.面向对象高级(02) 推荐