一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - 淺談Java中的克隆close()和賦值引用的區別

淺談Java中的克隆close()和賦值引用的區別

2020-06-19 11:27aspku JAVA教程

下面小編就為大家帶來一篇淺談Java中的克隆close()和賦值引用的區別。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

學生類Student:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package 克隆clone;
 
/*要克隆必須實現這個借口:Cloneable,以標記這個對象可以克隆
 Cloneable:此類實現了 Cloneable 接口,以指示 Object.clone() 方法可以合法地對該類實例進行按字段復制。
 這個接口是標記接口,告訴我們實現該接口的類就可以實現對象的復制了。
 */
public class Student implements Cloneable {
    private String name;
    private int age;
 
    public Student() {
    }
 
    public Student(String name, int age) {
        super();
        this.name = name;
        this.age = age;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public int getAge() {
        return age;
    }
 
    public void setAge(int age) {
        this.age = age;
    }
 
    // 重寫克隆方法子列才可以調用
    @Override
    protected Object clone() throws CloneNotSupportedException {
        return super.clone();
    }
 
}

測試克隆學生類:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
package 克隆clone;
 
/*
 *  protected void finalize():當垃圾回收器確定不存在對該對象的更多引用時,由對象的垃圾回收器調用此方法。用于垃圾回收,但是什么時候回收不確定。
 *  protected Object clone():創建并返回此對象的一個副本。
 *      A:重寫該方法
 *
 * Cloneable:此類實現了 Cloneable 接口,以指示 Object.clone() 方法可以合法地對該類實例進行按字段復制。
 *  這個接口是標記接口,告訴我們實現該接口的類就可以實現對象的復制了。
 */
public class StudentClone {
    public static void main(String[] args) throws CloneNotSupportedException {
        //創建學生對象
        Student s = new Student();
        s.setName("林青霞");
        s.setAge(27);
        
        //克隆學生對象
        Object obj = s.clone();
        Student s2 = (Student)obj;
        System.out.println("---------");
        
        System.out.println(s.getName()+"---"+s.getAge());
        System.out.println(s2.getName()+"---"+s2.getAge());
        
        //以前的做法
        Student s3 = s;
        System.out.println(s3.getName()+"---"+s3.getAge());
        System.out.println("---------");
        
        //其實是有區別的
        s3.setName("劉意");
        s3.setAge(30);
        System.out.println(s.getName()+"---"+s.getAge());
        System.out.println(s2.getName()+"---"+s2.getAge());
        System.out.println(s3.getName()+"---"+s3.getAge());
        System.out.println("---------");
        
        //把克隆的改一下呢?
        s2.setName("克隆改的名稱");
        s2.setAge(66);
        System.out.println(s.getName()+"---"+s.getAge());
        System.out.println(s2.getName()+"---"+s2.getAge());
        System.out.println(s3.getName()+"---"+s3.getAge());
        
        //也就是說把一個對象的引用賦值給一個引用,當這個引用發什么該改變的時候,同一個引用指向的對象會發生改變,但是克隆的不會變化,
        //把克隆的對象改變他的一些屬性,那么也不會影響到其他的對象的值的改變
        
    }
}

以上就是小編為大家帶來的淺談Java中的克隆close()和賦值引用的區別的全部內容了,希望對大家有所幫助,多多支持服務器之家~

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 美女用屁股把人吞进肚子 | 九九99精品 | kk4444了欧美 | 国产精品欧美亚洲韩国日本 | 亚洲AV无码偷拍在线观看 | 窝窝午夜精品一区二区 | 4虎tv| 国产日韩欧美综合一区二区三区 | 国产亚洲精品激情一区二区三区 | 国产yw193.㎝m在线观看 | 百合女女师生play黄肉黄 | 护士让我吃奶我扒她奶 | 日本情趣视频 | 国产成人高清视频 | 欧美理论片手机在线观看片免费 | 欧美人鲁交大全 | 97精品国产高清在线看入口 | 狠狠操社区 | 国产精品成人扳一级aa毛片 | 2019aw网站| 好大好爽好舒服视频 | 欧美日韩中文国产一区 | 四川女人偷人真实视频 | 忘忧草在线社区WWW日本直播 | 五月丁香啪啪. | 亚洲国产精品福利片在线观看 | 午夜精品久视频在线观看 | 色综合视频在线 | 亚洲性久久久影院 | 日本人泡妞xxxxxx69 | 经典三级四虎在线观看 | 免费波多野结衣庭教师 | 国产美女下面流出白浆视频 | 天天亚洲综合 | 欧美色fx性乌克兰 | 美女1819xxxx | 日本成人高清视频 | 精品日韩欧美一区二区三区 | 特黄特色大片免费视频播放 | 免费又爽又黄禁片视频在线播放 | 日本一卡二卡3卡四卡网站精品 |