当前位置:编程学习 > JAVA >>

引用传递分析

[java
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值  
    }  
};  
 
[java] view plaincopy
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" ;                 // 修改字符串内容  
    }  
};  
 
[java]
 
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值  
    }  
};  
 
 
 
[java]
 
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("JAVA SE核心开发",90.0f) ;  
        Book b = new Book("一千零一夜",30.3f) ;  
        per.setBook(bk) ;       // 设置两个对象间的关系,一个人有一本书  
        bk.setPerson(per) ;     // 设置两个对象间的关系,一本书属于一个人  
        cld.setBook(b) ;        // 设置对象间的关系,一个孩子有一本书  
        b.setPerson(cld) ;      // 设置对象间的关系,一本书属于一个
补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,