Java 從入門到進階之路(六)


之前的文章我們介紹了 Java 的數組,本章我們來看一下 Java 的對象和類。

Java 是一種面向對象語言,那什么是對象呢,對象在編程語言中屬於一個很寬泛的概念,我們可以認為萬事萬物都是對象,每個對象都有其狀態和行為,例如一只狗會有顏色,品種,性別等狀態,也有跑,吃,睡等行為。

在編程語言中,會用一個類來承載這個對象,類是一個模板,它描述一類對象的行為和狀態。

在之前的文章中我們沒有引入對象的概念,如果我們想要打印輸出一個人的基本信息,如下:

 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 }

上面其實是一個面向過程的編程,我們先定義一個 print 方法,分別傳入姓名,年齡,性別,然后再分別打印輸出,我們就可以定義變量,年齡,性別,調用該 print 方法來實現我們想要的功能。

其中有一個問題就是當我們需要再次輸出另一個人的信息時,我們需要再次將 name,age,gender 傳入,其實我們可以將這三個變量定義到一個對象中來使用,如下:

 1 public class HelloWorld {
 2     public static void main(String[] args) {
 3         Emp e = new Emp(); // 創建一個 Emp 對象
 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 方法中傳入的變量變成了一個 Emp 對象,Emp 對象是我們自己定義出來的,它和我們之前所講的 Array 其實是一個道理:  arr = new int[5]; ,生成一個 5 個長度的數組。

在上面的代碼中,我們定義的 print 方法其實作用就是用於輸出打印我們需要的信息,我們同樣也可以將其放到我們定義的 Emp 類中,如下:

 1 public class HelloWorld {
 2     public static void main(String[] args) {
 3         Emp e = new Emp(); // 創建一個 Emp 對象
 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 }

至此我們其實就已經果果面向對象的思維定義了一個類,當我們需要再定義另一個人的信息時,直接調用該對象的屬性和方法就可以了。

在我們初學編程語言的時候,都是由面向過程慢慢開始的深入到面向對象的,但面向過程由很多缺點,如下:

1、缺乏對數據的封裝

2、數據和方法分離了

如上面的例子中最開始我們需要什么數據都是先自己定義,數據 name age gende 和方法 print 是分開的,后來我們改為統一到一個 Emp 類中,這樣就做到了數據和方法的統一。

 

我們接下來看下面的代碼:

 1 public class HelloWorld {
 2     public static void main(String[] args) {
 3         Emp e = new Emp(); // 創建一個 Emp 對象
 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 }

在創建 Emp 對象后,我們並沒有對類的 name age 和 gender 進行賦值,直接調用 print() 方法,結果並沒有出現編譯錯誤,這是由於在我們定義一個變量的時候,java 會為我們提供一個默認的值,字符串為 null,數字為 0。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM