Java是一門面向?qū)ο缶幊痰恼Z言,它支持對(duì)象的創(chuàng)建與引用,這是Java程序設(shè)計(jì)中非常重要的概念。
對(duì)象是Java中的基本概念,它是一個(gè)具體的實(shí)體,擁有特定的屬性和方法。在Java中,使用關(guān)鍵字new
來創(chuàng)建對(duì)象。例如:
person p = new person();
上述代碼創(chuàng)建了一個(gè)名為p
的對(duì)象,該對(duì)象的類型為person
。在創(chuàng)建對(duì)象時(shí),需要先指定對(duì)象的類型,然后再使用構(gòu)造方法person()
來創(chuàng)建具有該類型的實(shí)例。
對(duì)象的屬性和方法可以通過對(duì)象引用來訪問。在Java中,對(duì)象引用是一個(gè)指向?qū)ο蟮闹羔樧兞俊@纾?/p>
person p = new person(); p.setName("Lucy"); System.out.println(p.getName());
上述代碼中,p
是對(duì)對(duì)象的引用,使用p.setName()
和p.getName()
訪問對(duì)象的屬性和方法。在這里,p.setName("Lucy")
設(shè)置了對(duì)象p
的name
屬性為"Lucy",System.out.println(p.getName())
輸出了對(duì)象p
的name
屬性值。
值得注意的是,對(duì)象引用可以指向不同的對(duì)象,例如:
person p1 = new person(); person p2 = new person(); p1.setName("Lucy"); p2.setName("Tom"); System.out.println(p1.getName()); System.out.println(p2.getName());
上述代碼中,創(chuàng)建了兩個(gè)類型為person
的對(duì)象p1
和p2
。在p1.setName("Lucy")
中,設(shè)置p1
的name
屬性為"Lucy",p2.setName("Tom")
設(shè)置p2
的name
屬性為"Tom"。在System.out.println(p1.getName())
和System.out.println(p2.getName())
中,分別輸出p1
和p2
的name
屬性值,分別為"Lucy"和"Tom"。
在Java中,對(duì)象引用可以為null
。當(dāng)對(duì)象引用為null
時(shí),表示該引用沒有指向任何對(duì)象。例如:
person p = null; p.setName("Lucy"); System.out.println(p.getName());
在上述代碼中,創(chuàng)建了一個(gè)新的對(duì)象引用p
,在構(gòu)造方法中并沒有分配實(shí)際的對(duì)象。當(dāng)p.setName("Lucy")
執(zhí)行時(shí),由于p
為null
,會(huì)拋出空指針異常java.lang.NullPointerException
。