转载

从零开始学习 Android (笔记)

工作需要,开始写原生安卓项目;本文记录一个前端学习安卓相关知识的历程 :smile:

一、前置Java知识

https://www.w3cschool.cn/java/ 可用于快速补充一些Java的基础知识,作为一个基本的工具手册。

Java 是一门强类型的面向对象的解释型语言,通过JVM可以在多平台运行。

1. 基础类型

8种 内置类型 ,六种数字类型(四个整数型,两个浮点型),一种字符类型,还有一种布尔型:

byte
short
int
long
float
double
boolean
char

引用类型

对象、数组都是引用数据类型,所有引用类型的默认值都是null。

对前端而言,需要额外注意两点:

  • 变量一旦声明,则类型确定,且不能更改(不能赋值其它类型)。

  • char 和 String 的区别:char是基本类型,对应一个字符;String 是引用类型,对应0或多个字符。

    char a = 'a'; String x = "hi!";

2. 基本语法

MyFirstJavaClass
public static void main(String args[])

总的来说,Java基本语法和一般程序语言的语法一致。相比JS,我们可能要注意 修饰符接口 等概念。

循环

和JS基本一致;不过可以注意下增强的for循环:

String [] names ={"James", "Larry", "Tom", "Lacy"};
for( String name : names ) {
         System.out.print( name );
         System.out.print(",");
}

for(声明语句 : 表达式) 中表达式为数组。

分支

与JS一致。

3. 类和对象

对象是类的一个实例,有状态和行为。类可以看成是创建Java对象的模板。一个类可以包含以下类型变量:

  • 局部变量 :在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
  • 成员变量 :成员变量是定义在类中,方法体之外的变量。这种变量在创建对象的时候实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。
  • 类变量 :类变量也声明在类中,方法体之外,但必须声明为 static 类型。

每个类都有构造方法。如果没有显式为类定义构造方法,Java编译器将会为该类提供一个默认构造方法。

源文件声明规则

  • 一个源文件中只能有一个public类。
  • 一个源文件可以有多个非public类。
  • 源文件的名称应该和public类的类名保持一致。
  • 如果一个类定义在某个包中,那么package语句应该在源文件的首行。
  • 如果源文件包含import语句,那么应该放在package语句和类定义之间。如果没有package语句,那么import语句应该在源文件中最前面。
  • import语句和package语句对源文件中定义的所有类都有效。在同一源文件中,不能给不同的类不同的包声明。

Java包

包主要用来对类和接口进行分类。我们用 package pkgName 来声明包,用 import java.io.* 来引入包。

4. 修饰符(访问控制及其它)

Java中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java支持4种不同的访问权限。

  • 默认的,也称为default,在同一包内可见,不使用任何修饰符。

    接口里的变量都隐式声明为public static final,而接口里的方法默认情况下访问权限为public。

  • 私有的,以private修饰符指定,在同一类内可见。

    私有访问修饰符是最严格的访问级别,所以被声明为private的方法、变量和构造方法只能被所属类访问,并且类和接口不能声明为private。

  • 公有的,以public修饰符指定,对所有类可见。

    被声明为public的类、方法、构造方法和接口能够被任何其他类访问。

  • 受保护的,以protected修饰符指定,对同一包内的类和所有子类可见。

    被声明为protected的变量、方法和构造器能被同一个包中的任何其他类访问,也能够被不同包中的子类访问。

    protected访问修饰符不能修饰类和接口,方法和成员变量能够声明为protected,但是接口的成员变量和成员方法不能声明为protected。

    子类能访问protected修饰符声明的方法和变量。

访问控制和继承

  • 父类中声明为public的方法在子类中也必须为public。

  • 父类中声明为protected的方法在子类中要么声明为protected,要么声明为public。不能声明为private。

  • 父类中默认修饰符声明的方法,能够在子类中声明为private。

  • 父类中声明为private的方法,不能够被继承。

非访问修饰符

为了实现一些其他的功能,Java也提供了许多非访问修饰符。

  • static修饰符,用来创建类方法和类变量。

  • final修饰符,用来修饰类、方法和变量,final修饰的类不能够被继承,修饰的方法不能被继承类重新定义,修饰的变量为常量,是不可修改的。

  • abstract修饰符,用来创建抽象类和抽象方法。

    • 抽象类不能用来实例化对象,声明抽象类的唯一目的是为了将来对该类进行扩充。
    • 抽象方法是一种没有任何实现的方法,该方法的的具体实现由子类提供。抽象方法不能被声明成final和static。任何继承抽象类的子类必须实现父类的所有抽象方法,除非该子类也是抽象类。
  • synchronized和volatile修饰符,主要用于线程的编程。

5. Java 的继承与接口

6. Java 泛型

7. Java 多线程编程

二、Android 编程

1. IDE 和创建第一个项目

下载 AndroidStudio,创建一个项目并编译,了解基本的流程。

2. Res文件夹与 layout

3. gradle

原文  https://github.com/creeperyang/blog/issues/47
正文到此结束
Loading...