Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Android SDK
Code

學習適用於Android開發的Java:Java語法

Difficulty:BeginnerLength:LongLanguages:
This post is part of a series called Learn Java for Android Development.
Learn Java for Android Development: Introduction to Java
Learn Java for Android Development: Checking Object Type with Instanceof

Chinese (Traditional) (中文(繁體)) translation by Zhang Xiang Liang (you can also view the original English article)

在本系列教程中,您將熟悉Java,這是用於開發Android應用程序的編程語言。 我們的目標是讓那些已經熟悉壹種編程語言(如PHP或Objective-C)的人準備好熟練使用Java編程語言並深入了解Android應用程序開發。 在這個特定的教程中,您將學習Java語法的基礎知識,包括如何創建註釋,定義變量,創建條件語句以及循環使用。  如果您是Java的新手,或者只是想了解細節,那麽這是您的系列教程!

入門

就先決條件而言,我們不會對您的編程體驗做出很多假設。  我們都將假設妳知道如何編程(也許在PHP或Visual Basic或C ++),但妳不熟悉Java語言程序設計的細節。 我們不打算詳細說明為什麽要進行for-循環和while循環,但我們會用Java向您展示兩種循環類型的語法。 換句話說,我們不會教妳編程; 我們將為您提供常用Java語言結構和原理的清晰示例,同時指出壹些Android特定的提示和技巧。

妳需要什麽

從技術上講,您不需要任何工具來完成本教程,但您肯定會需要它們來開發Android應用程序。

要開發Android應用程序(或任何Java應用程序,就此而言),您需要壹個開發環境來編寫和構建應用程序。  Eclipse是用於Java的非常流行的開發環境(IDE),也是用於Android開發的首選IDE。  它可以免費用於Windows,Mac和Linux操作系統。 

有關如何安裝Eclipse(包括支持哪些版本)和Android SDK的完整說明,請參閱Android開發人員網站。 

現在讓我們看看更有用的Java語法。 

註釋

大多數編程語言允許評論,Java也不例外。  您可以封裝任意數量的文本行,通過以/ *開始您的評論並以* /結束您的評論。  例如: 

您也可以在使用//之後的代碼之後提供評論。 例如: 

Java也有壹個稱為Javadoc的標準類型的註釋,它不僅可以用來評論代碼,還可以輕松創建代碼文檔。 這個話題本身非常龐大,但這裏有壹個Javadoc評論的例子:

變量

變量只是壹段數據。 Java變量通常分為兩類: 

  • 基本數據類型,如int,float,double,char等.
  • Java對象(由類定義定義)

變量用於不同的目的。 有時,變量用於存儲可隨時間變化或修改的值。 例如,壹個稱為計數器的變量有時可能會增加 。 其他變量,特別是對於給定類的所有實例保持不變的類變量,應該使用static關鍵字來定義。 其他時候變量可能代表常量 - 這些變量應該使用關鍵字final來表明它們不會隨著時間而改變。

變量只在其領域或範圍內有效。 變量作用域通常由大括號{}控制。 當定義壹個變量時,它在這些大括號內是有效的。 如果妳試圖訪問大括號外的變量,它將會是未定義的。 面向對象語言中的類成員變量通常稱為屬性。  他們也可以被稱為領域或屬性。

像其他常見的編程語言壹樣,您已經擁有了您的賦值運算符等號:

妳也有算術運算符,如+, - ,*,/。  請記住使用括號來強制必要的操作順序:

最後,妳有典型的壹元運算符,它允許妳用壹個簡單的語句修改壹個變量:

請註意,增量(++)和減量( -- )運算符可以是前綴或後綴,這意味著如果在循環中使用該運算符,則可以在確定任何條件之前或之後執行增量。 通常,我們喜歡使用後綴語句,因此代碼更具可讀性。

基本數據類型

我們來看壹下Java編程語言中可用的壹些基本數據類型:

  • 字節型
    • 壹個字節變量是壹個介於-128和127之間的8位有符號整數。 通常用於數組。 .
  • 短整型
    • 短變量是-32,768和32,767之間的16位有符號整數。  再次,經常用於數組。
  • 整型
    • 壹個int變量是壹個介於-2,147,483,648和2,147,483,647之間的32位有符號整數。  這是最常用的“數字”變量。 
  • 長整型
    • 長變量是-9,223,372,036,854,775,808和9,223,372,036,854,775,807之間的64位有符號整數。 當int數據類型不夠大時使用。
  • 浮點型
    • 浮點變量是壹個單精度32位浮點數。
  • 雙精度
    • 雙精度是壹個雙精度64位浮點數。 使用這種數據類型的十進制值。 
  • 布爾
    • 壹個布爾變量只有兩個可能的值:true和false。 將此數據類型用於條件語句。 
  • 字符型
    • char變量是壹個16位的Unicode字符。

基本類型變量可以通過指定數據類型,然後是變量名稱,然後是等號和初始值來定義。 所有Java語句都以分號結尾。  例如,以下Java語句定義了壹個名為iVal的變量,初始值為1:  .

像許多其他語言壹樣,您可以定義特定數據類型的從零開始的數組。 例如,下面定義了壹個由三個整數值組成的數組(前4個冪的2):

常用的Java對象

Java庫提供了許多有用的對象,可用於常見的數據結構。 所有對象都是從Object類派生的。 所有原始數據類型都有類對應。 例如,Integer類封裝了壹個int值,並提供了許多有用的方法來處理整數數據值。 例如,下面的Java代碼實例化壹個名為iVal的整型變量,然後使用壹個帶整數的構造函數創建壹個Integer對象,然後使用Integer類中可用的句柄方法提取壹個浮點變量等效項。 

也許妳將在Android應用程序中使用的最常見的對象是String。 String類用於封裝通常顯示在屏幕上的人類可讀文本字符 。 如果您正在修改或構建較小部分的字符串,則還需要查看StringBuffer和StringBuilder類。 

有關常見Java數據類型的列表,Android參考包括java.lang包的文檔。  您還可以在java.io包中找到常用的輸入/輸出對象。 

對於更復雜的數據結構,如列表,隊列,堆棧,日期和時間,適當的類位於java.util包中。

最後,Android應用程序依賴於許多有用的類來定義常用的應用程序組件,如Activity,Application,Dialog和Service。 這些類可以在android.app包中找到。 

類訪問權限

您可以通過指定項目的訪問級別來控制類的可見性及其變量和方法。  訪問級別是:公共,受保護和私有。  壹般來說,如果妳想從類外訪問某些東西,請使用public。  如果方法或變量只能從類本身訪問,請使用private。  當類或其任何子類需要訪問時使用保護。 

例如,下面的SillySensor類定義定義了幾個具有不同訪問級別的變量和方法:

  • 名為sensorData的類變量,僅在類中可見
  • 可以在類外調用的公共構造函數
  • 壹個名為calibrate()的私有方法,只能從類本身內部調用
  • 壹個名為seedCalibration()的受保護方法,可以從類本身或子類中調用
  • 壹個名為getSensorData()的公共方法,可以從任何地方調用,允許對傳感器數據變量進行“只讀”訪問 

條件語句

Java包含條件語句,當且僅當滿足某些條件時才可用於執行代碼片段。  通常情況下,條件陳述涉及雙方。  如果雙方是相同的,那麽聲明是真實的,否則它是錯誤的。 

Java擁有所有典型的條件運算符,例如:

  • ==等於,如(a == b)
  • !=不等於,如(x!= y)
  • >大於,如(z> y)
  • > =大於或等於,如(q> = z)
  • <小於,如(b
  • <=小於或等於,如(a <= z)

當妳需要將多個條件語句組合成壹個更大的條件測試時,可以使用AND(&&)和OR(||):

  • ((a == b)&&(a == c))//只有當A等於B且等於C時才為true
  • ((a == b)||(a == c))//只有當A等於B或等於C時才為true

Java有位運算符(&,|,^),移位(>>,<<)和補碼(〜)運算符,如果您需要它們。 有關更多詳細信息,請參閱Java文檔。

現在您已經知道如何創建條件語句,您可以創建條件代碼段 。 條件代碼語句的最簡單形式是if()語句: .

如果您希望在條件未滿足時提供替代代碼,請使用if語句中的else子句:

如果妳想處理兩個以上的情況,妳可以使用級聯的if-else-if-else語句,如下所示:

Switch Case

如果可以從單個變量值得到多個不同的代碼路徑,那麽可以使用switch()語句。 通過switch語句,您可以提供變量來檢查並提供多種選項來執行特定情況。 如果沒有其他情況適用,您還可以提供默認選項來執行。  每個案例都可以用壹個break語句結束。 如果未提供break語句,則代碼將繼續執行到下壹個case語句中。

循環

當妳想要重復執行代碼或者使用遞歸(heh,如果妳不知道我們在說什麽,那麽看看那個代碼),Java支持幾種不同類型的循環。 

要連續循環,只要聲明為真,請使用while()循環:

如果要在第壹次叠代之後評估條件循環表達式,則可以使用do-while循環:

最後,如果妳想循環壹個特定次數的叠代,妳可以使用for()循環。  for()循環有三個參數:初始值,終止值和遞增值。  例如,要執行壹個循環100次,打印數字1到100,可以使用以下for()循環: 

註意:您還可以在必要時使用break語句來取消while(),do-while()或for()循環。 您也可以使用continue語句跳過循環的當前叠代的其余部分,然後繼續下壹個叠代(當然,重新評估條件表達式)。

傳值與 傳引用 .

Java中沒有指針 好吧,好吧,繼續,松壹口氣。 生活已經夠艱難,沒有指針可以把事情搞砸了,對吧?

好的,現在是時候再次關註。  在Java中,方法參數按值傳遞。 但是,當壹個方法參數是壹個對象(即除了基本類型之外的任何東西)時,只有該對象的引用被傳遞給該方法[非常像指針,對不起!]。 因此,為了修改傳遞給給定方法的對象,通常需要傳入對象引用,然後對其執行操作,這會修改傳入的對象的基礎數據。  但是,不能將對象本身換出...這裏有壹個簡單的例子:

在這裏,我們有壹個叫做Cat的類:

現在,讓我們嘗試使用這個類,並將壹個Cat對象傳遞給壹些函數,看看會發生什麽:

最後,讓我們調用這些方法,看看它們是如何作用於Cat對象實例的:

包起來

妳剛剛完成了Java編程語言的崩潰過程。 盡管您可能還沒有準備好編寫第壹個Java應用程序,但您應該能夠完成最簡單的Android示例應用程序Java類,並確定他們所要做的事情,至少從Java語法的角度來看。 您將要為Android開發考慮的第壹個類是Activity類。 Android應用程序使用活動來定義不同的運行時任務,因此您必須定義壹個活動作為應用程序的入口點。 現在您已經掌握了Java語法,我們強烈建議您通過初學者的Android教程。

您只是抓住了Java開發的Android開發表面。 查看Mobiletuts +上的所有其他優秀教程,深入了解Java和Android開發。 我們強烈推薦以下開始的Android教程: 由Gyuri Grell和Android開始的Android 開發簡介開始使用Fortune Crunch涉足Android開發。 祝妳好運! 

關於作者

移動開發者Lauren Darcey和Shane Conder共同撰寫了幾本有關Android開發的書籍:壹本深入的編程書籍,標題為Android無線應用程序開發Sams TeachYourself Android應用程序開發24小時。  不寫時,他們花時間在公司開發移動軟件並提供咨詢服務。  他們可以通過電子郵件到androidwirelessdev+mt@gmail.com,通過他們的博客在androidbook.blogspot.comTwitter @androidwireless上聯系。 

需要更多幫助編寫Android應用程序? 查看我們的最新圖書和資源! .

Buy Android Wireless Application Development, 2nd Edition Buy Sam's Teach Yourself Android Application Development in 24 Hours Mamlambo code at Code Canyon


相關教程:

关注我们的公众号
Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.