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

学习适用于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 (Simplified) (中文(简体)) 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.com和Twitter @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.