zoukankan      html  css  js  c++  java
  • 第八课:引用传递 M

    1、通过三个引用传递的范例,进一步巩固对于引用传递的基本应用。

      例1:

    class A{
    	int x = 10 ;
    }
    public class Demo{
    	public static void main(String args[]){
    		A a = new A() ;
    		a.x = 30 ;
    		fun(a) ;
    		System.out.println(a.x) ;
    	}
    	public static void fun(A temp){
    		temp.x = 100 ;
    	}
    }
    

      此程序的结果是100,下面来分析内存的操作图:

      例2:

    public class Demo{
    	public static void main(String args[]){
    		String str = "hello" ;
    		fun(str) ;
    		System.out.println(str) ;
    	}
    	public static void fun(String temp){
    		temp = "world" ;
    	}
    }
    

      此程序的运行结果是hello,下面分析内存的操作图:

      例3:

    class A{
    	String x = "other" ;
    }
    public class Demo{
    	public static void main(String args[]){
    		A a = new A() ;
    		a.x = "hello" ;
    		fun(a) ;
    		System.out.println(a.x) ;
    	}
    	public static void fun(A temp){
    		temp.x = "world" ;
    	}
    }
    

      此程序的运行结果是world,下面分析内存的操作图:

    2、一种引用的关系

      要求通过类表示出如下的关系:

        一个人有一本书,一本书属于一个人。

      按照类的划分,本句话可以划分出两个操作类:Person、Book

    class Person{
    	private String name ;
    	private int age ;
    	private Book book ;	//一个人有一本书
    	public Person(String n, int a){
    		this.setName(n) ;
    		this.setAge(a) ;
    	}
    	public void setName(String n){
    		name = n ;
    	}
    	public void setAge(int a){
    		age = a ;
    	}
    	public void setBook(Book b){
    		book = b ;
    	}
    	public String getName(){
    		return name ;
    	}
    	public int getAge(){
    		return age ;
    	}
    	public Book getBook(){
    		return book ;
    	}
    }
    class Book{
    	private String title ;
    	private float price ;
    	private Person person ;	//一本书属于一个人
    	public Book(String t, float p){
    		this.setTitle(t) ;
    		this.setPrice(p) ;
    	}
    	public void setTitle(String t){
    		title = t ;
    	}
    	public void setPrice(float p){
    		price = p ;
    	}
    	public void setPerson(Person per){
    		person = per ;
    	}
    	public String getTitle(){
    		return title ;
    	}
    	public float getPrice(){
    		return price ;
    	}
    	public Person getPerson(){
    		return person ;
    	}
    }
    public class Demo{
    	public static void main(String args[]){
    		Person per = new Person("张三",30) ;
    		Book bk = new Book("Java基础",89.0f) ;
    		per.setBook(bk) ;	//一个人有一本书
    		bk.setPerson(per) ;	//一本书属于一个人
    		System.out.println(per.getBook().getTitle()) ;	//由人找到其所拥有书的名字
    		System.out.println(bk.getPerson().getName()) ;	//由书找到人的名字
    	}
    }
    

      

    【2012-01-10】

  • 相关阅读:
    实验三 进程调度模拟程序
    实验二作业调度模拟程序
    最新广商小助手 项目进展 OpenGL ES 3D在我项目中引用 代码太多只好选重要部分出来
    最后冲刺 我的项目 广商小助手
    最新一课 老师指点用Listview适配器
    安卓小学生四则运算
    大三上学期安卓一边学一边开始做一个自己觉得可以的项目 广商小助手App 加油
    我要再接再力 学更多
    用场景来规划测试工作
    阅读第13,14,15,16,17章
  • 原文地址:https://www.cnblogs.com/chuanstone/p/2318189.html
Copyright © 2011-2022 走看看