在本教程中,您將學(xué)習(xí)Java中的面向?qū)ο缶幊?,并在示例的幫助下學(xué)習(xí)Java類和對象。
Java是一種面向?qū)ο蟮木幊陶Z言。它基于對象的概念。
這些對象具有兩個特征:
狀態(tài)(字段)
行為(方法)
例如,
燈是對象
狀態(tài):亮 或 不亮
行為:開燈 或 關(guān)燈
摩托車是一個對象
狀態(tài):當(dāng)前檔位,2個輪子,檔位數(shù)等
行為:剎車,加速,改變檔位等
面向?qū)ο缶幊痰闹攸c是將復(fù)雜的編程任務(wù)分解為包含字段(存儲數(shù)據(jù))和方法(對字段執(zhí)行操作)的對象。
在用Java創(chuàng)建對象之前,需要定義一個類。類是對象的藍圖。
我們可以將類視為房子的草圖(原型)。它包含有關(guān)地板,門,窗戶等的所有詳細信息?;谶@些描述,我們建造了房屋。房子是對象。
由于可以用相同的描述制作許多房屋,因此我們可以根據(jù)一個類創(chuàng)建許多對象。
這是我們?nèi)绾卧贘ava中定義類的方法:
class ClassName { // 屬性 // 方法 }
例如,
class Lamp { //實例變量 private boolean isOn; // 方法 public void turnOn() { isOn = true; } // 方法 public void turnOff() { isOn = false; } }
在這里,我們創(chuàng)建了一個名為Lamp的類。
該類有一個名為isOn的變量和兩個turnOn()和turnOff()方法。在類中定義的這些變量和方法稱為類的成員。
在以上示例中,我們使用了關(guān)鍵字private和public。這些被稱為訪問修飾符。要了解更多信息,請訪問Java訪問修飾符。
對象稱為類的實例。例如,假設(shè)Animal是一個類,那么Cat、Dog、Horse等等都可以視為Animal類的對象。
這是我們可以用Java創(chuàng)建對象的方法:
className object = new className();
這里,我們使用構(gòu)造函數(shù)className()來創(chuàng)建對象。構(gòu)造函數(shù)與類具有相同的名稱,并且與方法類似。 要了解有關(guān)Java構(gòu)造函數(shù)的更多信息,請訪問Java構(gòu)造函數(shù)。
讓我們看看如何創(chuàng)建Lamp類的對象。
// l1 對象 Lamp l1 = new Lamp(); // l2 對象 Lamp l2 = new Lamp();
這里,我們使用Lamp類(Lamp())的構(gòu)造函數(shù)創(chuàng)建了名為l1和l2的對象。
對象用于訪問類的成員。讓我們創(chuàng)建Lamp類的對象
對象用于訪問類的成員。我們可以使用.運算符來訪問成員(調(diào)用方法和訪問實例變量)。例如,
class Lamp { turnOn() {...} } //創(chuàng)建對象 Lamp l1 = new Lamp(); //訪問方法turnOn() l1.turnOn();
此語句調(diào)用l1對象的Lamp類中的turnOn()方法。
我們已經(jīng)多次提到方法一詞。您將在下一章中詳細了解Java方法。這是您現(xiàn)在需要知道的:
使用上述語句調(diào)用方法時,turnOn()方法體中的所有語句都將執(zhí)行。然后,程序的控制跳回l1.turnOn()后面的語句;
同樣,可以通過以下方式訪問實例變量:
class Lamp { boolean isOn; } //創(chuàng)建對象 Lamp l1 = new Lamp(); // 訪問方法turnOn() l1.isOn = true;
class Lamp { boolean isOn; void turnOn() { // 初始化值為true的變量 isOn = true; System.out.println("點亮? " + isOn); } void turnOff() { //初始化值為false的變量 isOn = false; System.out.println("點亮? " + isOn); } } class Main { public static void main(String[] args) { //創(chuàng)建對象l1和l2 Lamp l1 = new Lamp(); Lamp l2 = new Lamp(); //調(diào)用方法turnOn()和shutdown () l1.turnOn(); l2.turnOff(); } }
輸出:
點亮? true 點亮? false
在上面的程序中
我們創(chuàng)建了一個名為Lamp的類。
該類有一個實例變量isOn和兩個方法turnOn()和turnOff()。
內(nèi)部Main類中,我們創(chuàng)建了Lamp類的兩個對象l1和l2。
然后我們使用l1對象調(diào)用turnOn(),使用l2對象調(diào)用turnOff():
l1.turnOn(); l2.turnOff();
方法的作用是:將l1對象的isOn變量設(shè)置為true。并打印輸出。類似地,turnOff()方法將l2對象的isOn變量設(shè)置為false并打印輸出。
注意:類中定義的變量稱為實例變量是有原因的。當(dāng)一個對象被創(chuàng)建時,它被稱為類的實例。每個實例都包含類中定義的變量的副本。因此,稱為實例變量。例如,對象l1和l2的isOn變量是不同的。
在接下來的教程中,我們將探索更多有關(guān)Java的面向?qū)ο缶幊痰闹R。