Java for Selenium | 理解類與物件
理解Java的類與物件
類與物件是面向物件程式語言中最重要的一個基本概念,Java也不例外。理解了類與物件的概念,學習起Java來就會容易很多。
本篇為大家介紹java類與物件的概念。在我們開始討論類與物件之前,讓我們先進入到生活中的一個場景:製作月餅! 想象一下,中秋到了,你想為家人做出10個帶精美花紋的月餅,如果只有食材和兩隻手,這十個帶精美花紋月餅的製作一定是個漫長的過程,而且一定是會存在大小、形狀、花紋都不完全一樣的情況。於是智慧的古人從宋朝開始就發明了月餅模具,這個月餅模具的使用就大大提高了製作月餅的效率,而且製作出來的月餅,大小、形狀和花紋肯定還是一模一樣的。
這個場景放到Java語言中其實就是類與物件的概念,月餅模具就相當於java的類(class),製作出來的一個個具體的月餅就相當於java的物件(object)。製作月餅的模具提供了複用、效率和統一的好處,Java類的存在也同樣是出於類似的目的。
在學習中我們要知道每一個技術的引入、每一個工具的引入都是為了解決之前的問題的,當我們知道它們引入的初衷時,理解起來也就容易很多。
好了下面我們就來具體瞭解下Java中類與物件的概念:
類Class:
類是某類群體一些共同特徵的抽象集合。這些抽象出來的特徵一般包括:靜態特徵和動態特徵。
靜態特徵在java中稱為屬性(field)、動態特徵在java中稱為方法(method)
舉個例子:比如“人類”就是一個抽象的廣義的概念,它的靜態和動態特徵如下:
靜態屬性:姓名、性別、年齡、身高等
動態方法:吃飯、跑步、學習、唱歌等
但是人類是一個抽象的概念,你不能說人類具體叫什麼名字,性別是男是女,你說人類你把這個月餅吃掉它也無法做這件事。在現實中有這些具體資訊和可以把月餅真正吃掉的是一個個具體的活生生的人,比如張三、比如李四,他們就是物件。
物件Object:
物件是類的一個具體例項,是真正可以將類中的屬性具體化、真正可以執行類中的方法即動作的現實例項。
比如:張三、李四
那在Java中是如何定義類的呢?
定義類需要使用class關鍵字來定義,下面是定義類的語法
class 類名稱{
資料型別 屬性名(變數);
資料型別 屬性名(變數);
//定義方法
public 返回值型別 方法名稱(引數1,引數2…){
程式語句;
[return 表示式;]
}
}
具體的例子:
public class Human {
String name;
int age;
String gender;
public void eating() {
}
public void singing() {
}
public void sleeping() {
}
}
上面例子中 String name,int age, String gender這些屬於靜態的屬性,eating(),singing(),sleeping()屬於動態的方法。
我們說類是屬於抽象的概念,就像是造月餅的模具,那在java中如何產生出一個個具體的物件呢?
在Java中通過關鍵字new來例項化物件,例項化物件的基本語法如下:
類名稱 物件名稱 = new 類名稱();
例:通過上面的類“Human”,創造一個叫“張三”的物件
Human ZhangSan = new Human();
注:new關鍵字實際的主要功能是為這個物件開闢了記憶體空間,就像張三在地球上會佔用一定的空間一樣,通過new關鍵字創造的物件在記憶體中也會佔用一定的空間。
建立物件的主要目的就是讓他能夠執行具體的動作,在java中可以通過物件.方法();來執行具體的動作,比如讓張三吃飯 ZhangSan.eating(); 讓張三唱歌ZhangSan.singing();等。
本篇的主要目的是讓大家理解一下類(class)與物件(object)的概念,屬性(field)與方法(method)的概念。
為了讓剛接觸java的同學好理解,我想了一個生活中做月餅的例子,也許沒那麼嚴謹,但是幫助大家好理解。
在後面我們開始具體寫selenium java指令碼時,你會發現,之前在搭建環境文章中引入的selenium的jar包,裡面主要就是包含了操作web的一些常用的類,類中定義了一些具體操作網頁元素的方法,比如點選、比如向文字框輸入內容,比如滑鼠鍵盤操作等,這些具體的方法selenium團隊都已經實現好了,我們要做的就是知道哪個類裡提供了點選操作,哪個類裡提供了鍵盤滑鼠操作,然後通過new關鍵字在我們自己的指令碼中創造一個例項物件,通過物件呼叫這些方法罷了!很簡單!
****************************************************************************************************
最近我會持續更新Selenium Java的相關文章,也請大家多多關注我的視訊課程
全網最新、最完整、最具價效比、並且會持續保持更新的自動化測試課程
*****************************************************************************************************