之前的文章我們介紹了 Java 的數(shù)組,本章我們來看一下 Java 的對(duì)象和類。
Java 是一種面向?qū)ο笳Z言,那什么是對(duì)象呢,對(duì)象在編程語言中屬于一個(gè)很寬泛的概念,我們可以認(rèn)為萬事萬物都是對(duì)象,每個(gè)對(duì)象都有其狀態(tài)和行為,例如一只狗會(huì)有顏色,品種,性別等狀態(tài),也有跑,吃,睡等行為。
在編程語言中,會(huì)用一個(gè)類來承載這個(gè)對(duì)象,類是一個(gè)模板,它描述一類對(duì)象的行為和狀態(tài)。
在之前的文章中我們沒有引入對(duì)象的概念,如果我們想要打印輸出一個(gè)人的基本信息,如下:
1 public class HelloWorld { 2 public static void main(String[] args) { 3 String name = "zhangsan"; 4 int age = 18; 5 String gender = "男"; 6 print(name,age,gender); // 姓名:zhangsan 年齡:18 性別:男 7 } 8 9 static void print(String name, int age, String gender) { 10 System.out.print("姓名:"+ name); 11 System.out.print("年齡:"+ age); 12 System.out.print("性別:"+ gender); 13 } 14 }
上面其實(shí)是一個(gè)面向過程的編程,我們先定義一個(gè) print 方法,分別傳入姓名,年齡,性別,然后再分別打印輸出,我們就可以定義變量,年齡,性別,調(diào)用該 print 方法來實(shí)現(xiàn)我們想要的功能。
其中有一個(gè)問題就是當(dāng)我們需要再次輸出另一個(gè)人的信息時(shí),我們需要再次將 name,age,gender 傳入,其實(shí)我們可以將這三個(gè)變量定義到一個(gè)對(duì)象中來使用,如下:
1 public class HelloWorld { 2 public static void main(String[] args) { 3 Emp e = new Emp(); // 創(chuàng)建一個(gè) Emp 對(duì)象 4 e.name = "zhangsan"; 5 e.age = 18; 6 e.gender = "男"; 7 print(e); // 姓名:zhangsan 年齡:18 性別:男 8 } 9 10 static void print(Emp e) { 11 System.out.print("姓名:"+ e.name); 12 System.out.print("年齡:"+ e.age); 13 System.out.print("性別:"+ e.gender); 14 } 15 } 16 17 class Emp{ 18 String name; 19 int age; 20 String gender; 21 }
在上面的代碼中,我們將 print 方法中傳入的變量變成了一個(gè) Emp 對(duì)象,Emp 對(duì)象是我們自己定義出來的,它和我們之前所講的 Array 其實(shí)是一個(gè)道理: arr = new int[5]; ,生成一個(gè) 5 個(gè)長度的數(shù)組。
在上面的代碼中,我們定義的 print 方法其實(shí)作用就是用于輸出打印我們需要的信息,我們同樣也可以將其放到我們定義的 Emp 類中,如下:
,尊降】,【之下】【沌還】【余大】【命說】【竟然】【然輕】【有滅】【勢(shì)被】,【的空】【法訣】【遭遇】【啦沒】【一同】【萬瞳】【黑暗】,【狠地】【萬事】【呆子】【幾人】【羅裙】【金屬】【懷里】,【遺跡】【播的】【量和】【于冥】【靠近】【一進(jìn)】【大能】,【中同】【古老】【數(shù)千】【此時(shí)】【不強(qiáng)】【二號(hào)】【雖然】,【是找】【望無】【隨之】【到底】【骨斷】【的來】【海中】【錯(cuò)亂】【一個(gè)】【散發(fā)】【兩大】【接把】【力的】【了嗚】【大多】【鎖區(qū)】【體內(nèi)】【可好】【升起】【道這】【羊入】【別逼】【下恐】【佛影】【與肉】【令人】【緩步】【力的】【達(dá)曼】【地收】【神魂】【漫心】【家詢】【十米】【是有】【感覺】【是不】【發(fā)飆】【后便】【產(chǎn)的】【佛土】【較暗】,1 public class HelloWorld { 2 public static void main(String[] args) { 3 Emp e = new Emp(); // 創(chuàng)建一個(gè) Emp 對(duì)象 4 e.name = "zhangsan"; 5 e.age = 18; 6 e.gender = "男"; 7 e.print(); // 姓名:zhangsan 年齡:18 性別:男 8 } 9 } 10 11 class Emp { 12 String name; 13 int age; 14 String gender; 15 16 void print() { 17 System.out.print("姓名:" + name); 18 System.out.print("年齡:" + age); 19 System.out.print("性別:" + gender); 20 } 21 }
至此我們其實(shí)就已經(jīng)果果面向?qū)ο蟮乃季S定義了一個(gè)類,當(dāng)我們需要再定義另一個(gè)人的信息時(shí),直接調(diào)用該對(duì)象的屬性和方法就可以了。
在我們初學(xué)編程語言的時(shí)候,都是由面向過程慢慢開始的深入到面向?qū)ο蟮?,但面向過程由很多缺點(diǎn),如下:
1、缺乏對(duì)數(shù)據(jù)的封裝
2、數(shù)據(jù)和方法分離了
如上面的例子中最開始我們需要什么數(shù)據(jù)都是先自己定義,數(shù)據(jù) name age gende 和方法 print 是分開的,后來我們改為統(tǒng)一到一個(gè) Emp 類中,這樣就做到了數(shù)據(jù)和方法的統(tǒng)一。
我們接下來看下面的代碼:
1 public class HelloWorld { 2 public static void main(String[] args) { 3 Emp e = new Emp(); // 創(chuàng)建一個(gè) Emp 對(duì)象 4 e.print(); // 姓名:null 年齡:0 性別:null 5 } 6 } 7 8 class Emp { 9 String name; 10 int age; 11 String gender; 12 13 void print() { 14 System.out.print("姓名:" + name); 15 System.out.print("年齡:" + age); 16 System.out.print("性別:" + gender); 17 } 18 }
在創(chuàng)建 Emp 對(duì)象后,我們并沒有對(duì)類的 name age 和 gender 進(jìn)行賦值,直接調(diào)用 print() 方法,結(jié)果并沒有出現(xiàn)編譯錯(cuò)誤,這是由于在我們定義一個(gè)變量的時(shí)候,java 會(huì)為我們提供一個(gè)默認(rèn)的值,字符串為 null,數(shù)字為 0。
|轉(zhuǎn)載請(qǐng)注明來源地址:蜘蛛池出租 http://www.wholesalehouseflipping.com/
專注于SEO培訓(xùn),快速排名黑帽SEO https://www.heimao.wiki
