JAVA引用传递
来源:互联网 发布:圣甲虫长板淘宝 编辑:程序博客网 时间:2024/05/21 06:47
一。Str字符串不能更改,先定义类
例子(1
class Demo{int temp = 30;}public class csdnTest14{public static void main(String args[]){Demo d1 = new Demo();d1.temp = 50;System.out.println("fun()调用之前:"+ d1.temp); //输出50fun(d1);System.out.println("fun()调用之后:"+ d1.temp); //输出1000}public static void fun (Demo d2){d2.temp=1000;//修改temp值}}
例子(2
public class csdnTest15{public static void main(String args[]){String str1 = "hello";System.out.println("fun()调用之前"+str1);fun(str1)System.out.println("fun()调用之后"+str1);}public static void fun (String str2){str= "Hello"//尝试修改字符串内容,修改不能}}
例子(3
class Demo{String temp = "hello";}public class csdnTest16{public static void main(String args[]){Demo d1 = new Demo();d1.temp = "world";System.out.println("fun()调用之前:"+ d1.temp);fun(d1);System.out.println("fun()调用之后:"+ d1.temp); //}public static void fun (Demo d2){d2.temp="Fang";//修改temp值,修改可以}}二。接受本类引用
class Demo{//定义Demo类private int temp =30;//声明temp属性并封装public void fun(Demo d2){//直接通过对象调用本类的私有属性d2.temp=50;}public int getTemp(){return temp;}public void setTemp(int t){temp=t;}}public class csdnTest17{public static void main(String args[]){Demo d1 = new Demo();//d1.setTemp(50);//通过setter改变值d1.fun(d1);//把Demo对象传回到自己类中System.out.println("temp="+d1.getTemp());}}
三。实例分析一对一关系
内容:一本书属于一个人,人也属于一本书,人是具体的类,书也是具体的类,使用引用传递表示
class Person{private String name;private int age;private Book book; //一个人有一本书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 Book getBook(){return book;}public void setBook(Book b){book = b;}};class 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 csdnTest18{public static void main(String arg[]){Person per= new Person("张三",30);Book bk = new Book("Java learning",90.0f);per.setBook(bk);bk.setPerson(per);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()) ;// 也可以通过书找到其所有人}}
四。简要修改以上代码,加入 孩子的类(修改Person类,在类中增加引用)
class Person{// 定义Person类private String name ;// 姓名private int age ;// 年龄private Book book ;// 一个人有一本书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 ;}};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 RefDemo05{public static void main(String arg[]){Person per = new Person("张三",30) ;Book bk = new Book("JAVA SE核心开发",90.0f) ;per.setBook(bk) ;// 设置两个对象间的关系,一个人有一本书bk.setPerson(per) ;// 设置两个对象间的关系,一本书属于一个人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()) ; //通过人找到孩子信息}};
0 0
- java 值传递 引用传递
- Java 值传递 引用传递
- Java 值传递 引用传递
- Java 值传递 引用传递
- Java引用传递&值传递
- java值传递,引用传递
- java值传递,引用传递
- java值传递、引用传递
- Java中值传递 引用传递
- Java的引用传递
- 关于java引用传递
- JAVA引用COPY传递
- java的引用传递
- JAVA引用传递问题
- JAVA引用传递
- Java引用传递
- java引用传递
- java没有引用传递!
- MFC ActiveX控件初步 调试方法
- Archive for required library:E:program Files/apache-maven-3.1.0/repository/org/springframework/sprin
- 初认Map
- leetcode202: Happy Number
- lua遍历文件夹
- JAVA引用传递
- 结对编程中遇到的问题
- Linux操作系统下的相关命令
- java Build Path Problems:Archive for required library
- 数据结构(C语言版)应该掌握到什么程度?
- 安卓Android微博平台系统客户端app设计
- 关于Linux静态库和动态库的分析
- EPOLL
- 理解 t-SNE (Python)