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

学习适用于Android开发的Java:Java简介

Difficulty:BeginnerLength:LongLanguages:
This post is part of a series called Learn Java for Android Development.
New Course: Learn Java for Android
Learn Java for Android Development: Java Syntax

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语言中编程的具体细节。我们不会教你编程; 我们将为您提供常用Java语言结构和原理的清晰示例,同时指出一些Android特定的提示和技巧。 我们不会教你编程; 我们将为您提供常用Java语言结构和原理的清晰示例,同时指出一些Android特定的提示和技巧。

你需要什么

从技术上讲,您不需要任何工具来完成本教程,但您肯定会需要它们来开发Android应用程序。

要开发Android应用程序(或任何Java应用程序,就此而言),您需要一个开发环境来编写和构建应用程序。 Eclipse是用于Java的非常流行的开发环境(IDE),也是用于Android开发的首选IDE。 它可以免费用于Windows,Mac和Linux操作系统。

有关如何安装Eclipse(包括支持哪些版本)和Android SDK的完整说明,请参阅Android开发人员网站

什么是Java?

Android应用程序是使用Java语言开发的。 截至目前,这对于本机应用程序来说是唯一的选择。 Java是Sun Microsystems(现在由Oracle拥有)开发的一种非常受欢迎的编程语言。 在C和C ++之后开发很久,Java将这些功能强大的语言的许多强大功能结合起来,同时解决了它们的一些缺点。 尽管如此,编程语言只有它们的库一样强大。 这些库可以帮助开发人员构建应用程序。

Java的一些重要核心功能是:

  • 这很容易学习和理解
  • 它被设计成使用
    虚拟机 来保持平台独立和安全
  • 它是面向对象的

Android严重依赖于这些Java基础。 Android SDK包含许多标准的Java库(数据结构库,数学库,图形库,网络库以及其他您可能需要的其他内容)以及特殊的Android库,可帮助您开发卓越的Android应用程序。

为什么Java易于学习?

由于各种原因,Java很容易学习。 当然,并不缺乏Java资源来帮助您学习语言,包括网站,教程,书籍和课程。J ava是世界上最广泛讨论,教授和使用的编程语言之一。 它用于许多不同类型的编程项目,无论它们的规模,从Web应用程序到桌面应用程序还是移动应用程序。

如果您来自传统编程背景(如C或C ++),则会发现Java语法非常相似。 如果你不是的话,那么请尽量知道你选择了一种最简单的语言来学习。 你很快就会开始运行。

最后,Java是其中最具人类可读性的语言之一,我们的意思是,对编程一无所知的人通常可以查看一些Java代码,并至少了解它正在做什么。考虑下面的例子: 。

如果你只是大声阅读代码,你几乎可以告诉代码片段正在做。 有一个字母变量叫做字符。 如果字符变量等于字母a,那么我们做一些事情(调用doSomething()方法),否则我们做其他事情(通过调用doSomethingElse()方法)。

为什么平台独立很重要?

使用许多编程语言,您需要使用编译器将代码缩减为设备可以理解的机器语言。 虽然这很好,但不同的设备使用不同的机器语言。 这意味着您可能需要为每种不同的设备或机器语言编译您的应用程序 - 换句话说,您的代码不是很便携。 Java不是这种情况。 Java编译器将您的代码从人类可读的Java源文件转换为Java世界中称为“字节码”的东西。 这些由Java虚拟机解释,其操作非常类似于可能在机器代码上运行的物理CPU,以实际执行编译后的代码。 虽然看起来效率很低,但是为了使这个过程非常快速有效地付出了很多努力。 Android应用程序在名为Dalvik VM的特殊虚拟机中运行。

虽然这个虚拟机的细节对普通开发人员来说并不重要,但将Dalvik虚拟机视为您的Android应用程序运行的泡沫可能会有所帮助,这样您就不必担心该设备是否是Motorola Droid, HTC Evo或运行Android的最新多士炉。 只要该设备对Dalvik VM友好,你就不会在意 - 这是设备制造商的工作,而不是你的。 。

为什么Java安全?

让我们进一步思考这个泡沫的想法。由于Java应用程序在作为虚拟机的泡泡内运行,因此它们与基础设备硬件隔离。 因此,与直接在机器代码中运行的语言相比,虚拟机可以安全地封装,包含和管理代码执行。 Android平台更进一步。 操作系统密切监控Android应用程序,如果玩的不好(例如,使用太多的处理能力,变得不响应,浪费资源等),则会关闭Android应用程序。 每个Android应用程序都使用不同的用户帐户在其基于Linux(Linux)的操作系统上运行,并在其自己的Dalvik VM实例中运行。 。 因此,开发稳定和响应的应用程序非常重要。 应用能够使用定义好的协议进行通信。

编译你的代码

像许多语言一样,Java仍然是一种编译语言,即使它不能一直编译到机器代码。 这意味着你作为开发者需要编译你的Android项目并将其打包并部署到设备上。 Eclipse开发环境(与Android开发插件一起使用)使得这非常轻松。 在Eclipse中,自动编译通常默认打开。 这意味着每次保存项目文件时,Eclipse都会重新编译应用程序包的更改。 你马上会看到编译错误。 Eclipse还在输入时解释Java,提供方便的代码着色和格式化,以及随时显示多种类型的错误。 通常,您可以单击错误并让Eclipse自动修复拼写错误,或添加导入语句,或为您提供方法存根,从而节省大量输入。

如果你愿意,你仍然可以手动编译你的代码。 在Eclipse中,您可以在项目菜单下找到Build设置。 如果您打开了“自动构建”,您仍然可以选择“清理...”选项,这将允许您完全重建所有文件。 如果关闭“自动构建”,则启用“全部构建”和“构建项目”菜单选项。 “全部构建”意味着在工作区中构建所有项目。 您可以在Eclipse工作区中拥有许多项目。

常规Java项目的构建过程会生成一个扩展名为JAR- J ava AR chive的文件。 Android应用程序将JAR文件打包并将其打包以便在设备上部署为具有扩展名为.apk的A ndroid P ac K age文件。 这些格式不仅包括已编译的Java代码,还包括应用程序运行所需的任何其他资源(如字符串,图像或声音文件)以及应用程序清单文件AndroidManifest.xml。Android Manifest文件是所有Android应用程序所需的文件,可用于定义有关应用程序的配置详细信息。 。

什么是面向对象的编程语言?

好的。 时间为面向对象编程(OOP)的非常简短的20000英尺视图。 OOP是一种编程风格或技术,它依赖于称为对象的数据结构的定义。 对于那些OOP的新手来说,一个对象可以被认为很像自定义数据类型。 例如,您可能有一个Dog对象,它代表一个通用狗的蓝图,其中包含名称,品种和性别。 然后,您可以创建Dog对象的不同实例来表示特定的狗。 每个Dog对象都必须通过调用它的构造函数来创建(与对象本身具有相同名称的方法,并且可能有也可能没有用于设置初始值的参数)。 例如,以下Dog对象使用具有三个参数(名称,品种,性别)的构造函数:

那么这个Dog对象在哪里定义? 那么,我们需要开始定义Java编程语言的一些基本构建块。 一个类为对象提供了一个定义。 因此,某个地方有一个Dog类 - 或者由您定义或在某个图书馆某处定义。 一般来说,一个类将在其自己的文件中定义,并且文件名与类名匹配(例如Dog.java)。 这个规则也有例外,例如在其他类中定义的类(当一个类在类中声明时,它通常被定义为仅在作为辅助类的父类中使用,并且被称为内部类)。

当你想从另一个类中引用一个对象时,你需要在你的类文件的顶部包含一个import语句,就像在C语言中使用#include语句一样。

一个类通常描述对象的数据和行为。 行为是使用类方法定义的。 方法是OOP语言中子程序的通用术语。 许多常见的对象类都是在共享类库中定义的,例如软件开发工具包(SDK),而另一些则由您(开发人员)为您自己的目的定义。 然后通过以不同方式使用和操作对象实例来构建软件。

请认识到这是OOP的一个非常普遍的定义。 有关于这个主题的完整书籍。 如果您想了解更多关于OOP的信息,可以查看以下几个资源:

注意:本教程中使用了许多不同的术语。 有多种方法可以引用给定的概念(例如,超类和父类),这对于面向对象编程的新手来说是很混淆的。 不同的开发人员使用不同的术语,所以我们试图在适当的地方提及同义词。 决定使用哪些条款是个人选择。

理解继承

这里有另一个重要的 Java概念,你会遇到很多:继承。 简而言之,继承意味着Java类(以及对象)可以组织成层次结构,层次结构中更低级的更具体的类继承更高级更通用类的行为和特性。

这个概念最好用例子来说明。 假设我们正在开发一个Java应用程序来模拟一个水族馆。这个水族馆里面有一些鱼。 因此,我们可以定义一个类来表示一条鱼。 这个名为Fish的类可以包含一些数据字段(也称为属性或类成员变量)来描述鱼类对象:物种,颜色和大小; eat(),sleep()和makeBabyFish()等形式的方法(也称为子例程或过程语言中的函数)中的一些行为。 。

一种称为构造函数的特殊类型的方法用于创建和初始化一个对象; 构造函数的名称与它们的类相同,并且可能包含参数。 以下Fish类有两个构造函数:一个用于创建一个通用的Fish对象,另一个用于使用一些初始数据构造特定的Fish对象。 您还会看到Fish类有两个eat()方法:一个用于随机吃东西,另一个用于吃另一个鱼,这个鱼可以用另一个Fish类的实例来表示:

类可以组织成层次结构,其中派生类(或子类)包括其父类(或超类)的所有功能,但是可以使用extends关键字对它们进行细化和添加以定义更具体的对象。 这被称为继承。

例如,Fish类可能有两个子类:FreshwaterFish和SaltwaterFish。 这些子类将具有Fish类的所有功能,但可以通过新的属性和行为或来自父类Fish的修改的行为进一步自定义对象。 例如,淡水鱼类可能包括有关淡水环境类型(例如河流,湖泊,池塘或水坑)的信息。 类似地,SaltwaterFish类可以定制makeBabyFish()方法,使得鱼在繁殖后(通过超类定义)通过使用覆盖机制来进行配对,如下所示:

用接口组织对象行为

在Java中,您可以在所谓的接口中组织对象行为。 当一个类定义了一个对象时,一个接口定义了一些可以应用于对象的行为。 例如,我们可以定义一个Swimmer接口,它提供了一套方法,这些方法在所有可以游泳的对象中都是通用的,无论它们是鱼,水獭还是潜水机器人。 游泳者界面可以指定四种方法:startSwimming(),stopSwimming(),dive()和surface()。

像Fish这样的类可以实现Swimmer接口(使用implements关键字)并提供游泳行为的实现:

用软件包组织类和接口

然后可以将类层次结构(如我们的鱼类)组织成包。一个包只是一组捆绑在一起的类和接口。 开发人员使用名称空间来唯一命名包。 例如,我们可以使用com.mamlambo.aquarium或com.ourclient.project.subproject作为我们的软件包名称来跟踪我们的鱼相关类。 。

包起来

哇!您刚开始使用Java进行Android开发碰撞课程。 我们已经在这里介绍了大量的材料,因此在继续本系列教程的下一课之前让我们先解决一些问题。 在第2课中,我们将焦点转移到Java语法的细节部分。

您只是抓住了Java开发的Android开发表面。 查看Mobiletuts +上的所有其他优秀教程,深入了解Java和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 Sams Teach Yourself Android Application Development in 24 Hours Mamlambo code at Code Canyon


相关教程:


Envato qr branded
关注我们的公众号
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.