Java4Android

Google选用了Java作为Android的开发语言,所以在学习Android以前,你需要掌握一些Java的基础知识。

Java程序的基本结构

下面是一个简单的Java程序,我们将通过它来讲解Java程序的基本结构。

public class Main {
    public static void main(String[] args) {
        System.out.println("Hello World");
    }
}
  • 运行方法:

    1. 在桌面创建一个文本文档,将文件名更改为Main.java;
    2. 用记事本打开Main.java,输入以上代码(注意大小写);
    3. Windows+R,在弹出的窗口中输入cmd,点击确定,输入:cd desktop,回车(也可以按住shift然后在桌面空白目录点击鼠标右键,然后选择:在此处打开命令窗口);
    4. 输入Javac Main.java,如果没有任何提示证明编译成功,可以继续下一 步。如果出现错误提示,由于可能的问题很多,请自己想办法解决;
    5. 输入java Main,如果一切正常你将看到屏幕上输出了:Hello World
      如果未能得到此结果,请自行解决。

注:以后的Java程序都以这种方式运行,不再重复书写运行方式。

  • 代码分析

    • 关键字public称为访问修饰符,用于表示一个程序的其他部分对这段代码的访问权限,访问修饰符的更多内容将在后面介绍;
    • 关键字class用于表示这是一个类。类是Java的重要组成部分,后面会进行详细讲解,这里仅需要将它当成一个存放程序逻辑的容器。
    • class后面的Main这个类的名字(类名需首字母大写,后跟任意字母数字组合,但不能使用Java保留字,此外类名必须与文件名一致)。
    • public static void main(String[] args)声明了一个方法(函数),main是函数名,其余符号后面慢慢讲。

基本结构介绍到这里,不懂的先不管,后面慢慢就会揭晓,下面介绍Java的数据类型。

Java数据类型

JavaScript的一个var吃遍天不同,Java对于变量有着严格的类型限制。下面对Java的常用类型做了简单总结。

  • 整型

整型用于表示没有小数部分的数值,允许是负数,Java提供了4种整型,具体如下:

类型 占用空间 存储范围
short 2字节 -32 768 ~ 32 767
int 4字节 -2 147 483 648 ~ 2 147 483 647
long 8字节 - 9 233 372 036 854 775 808 ~ 9 223 372 036 854 775 807
byte 1字节 - 128 ~ 127

在通常情况下,int比较常用,如果遇到int无法存储时再考虑用longshortbyte通常用于特定场合,遇到时再介绍。

  • 浮点类型

浮点类型用于表示带有小数部分的数值。Java中有两种浮点类型,具体如下:

类型 占用空间 存储范围 有效位
float 4字节 大约 ±3.402 823 47E +38 6 ~ 7位
double 8字节 大约 ±1.797 693 134 862 315 70E +308 15位

在通常情况下,float的精度很难满足需求,所以一般使用double,当Android的坐标通常是使用float,除此之外,尽量用double

注:3.402 823 47E +38是Java里的科学计数法,2.0E +10表示2.0乘以10的10次方。

  • char类型

char类型用于表示单个字符。例如:char ch = 'A';

注:与JavaScript不同的是,Java中字符用单引号包含,双引号表示字符串。

  • boolean类型

boolean(布尔)类型只有两个值truefasle。通常用于逻辑换。

注:与C语言不同的是,Java中整型与boolean类型不能互相转换,例如下面这段代码将产生一个错误:

if(1)
  System.out.printf("it will produce an error");
  • String类型

String(字符串)类型用于表示一串用双引号括起来的字符,例如:String str = "abc";

注:严格来说String类型这样的叫法是错误的,因为Java没有内置String类型,而是在标准库中添加了一个名为String的类库。

  • 变量声明

java中的变量声明和JavaScript类似,首先写上变量类型,然后写上变量名,然后以分号结尾。例如:int a;。也可以对其进行初始化操作,例如:double c = 1.0;

注:和C语言不同的是,在Java中如果未对变量初始化,数值类型会自动被初始化为0,boolean类型会被初始化为false。

  • 常量声明

常量的声明与比较简单,仅需在 变量类型前面添加关键字final,例如:
final double PI = 3.1415926;

注:常量通常采用全大写。

  • 数组声明

数组通常采用以下形式声明:

int[] numbers = new int[4];  //数据类型[] 数组名 = new 数据类型[数据个数];
/*也可以声明时通过大括号进行初始化*/
double[] numbers = new double[] {1.0, 2.0, 3.0};  //采用大括号进行初始化时不能再在[]里填数据个数

数据类型的知识就介绍到这里,下面进入Java的重点内容——面向对象。

面向对象程序设计

我们常说面向对象编程,那什么是面向对象编程呢?这里我先不回答这个问题,随着学习的深入你会有一个自己独特的理解,但肯定不是面对你的女(男)朋友编程的意思。

  • 类(class)

类是Java的一个重要组成部分,也是面向对象的编程需要掌握的重要内容。

  • 什么是类?

类是一种宏观的概念,例如我们单独说人时就是指的的人类,此时的“人”可以看做一个类,“狗”也可以看成一个类。

  • 类之间的关系

整个程序当然不可能只有一个类,不同的类之间可能存在着一些关系。Java中常见的关系有下列三种:
+ 依赖(uses-a):如果一个类的方法操作另一个的对象,我们就说一个类依赖另一个类。例如:如果将人与狗分别看成一个类,那人遛狗即是一种依赖关系。
+ 聚合(has-a):如果一个类包含了另一个类的对象,那么我们就说这是一种聚合关系。例如:你将狗作为了你的私有属性,那么你们之间就是聚合关系。
+ 继承(is-a):继承可以说是一种扩展关系,我们知道人与人之间是不同的,有白种人、黑种人、黄种人……当不管肤色任何,他们都属于人,那么黄种人类就可以说是继承自人类(其他亦然)。

  注:真实情况下继承关系需要特殊的说明。
  • 类中有什么?

类中一般存放着一些属性,以及可以执行的操作。比如我们定义一个Person类:

/**
* 定义了一个Person类
*/
public class Person {
   /**
    * 以下是Person类的一些属性
    */
   private int age;    //年龄
   private String sex; //性别
   private String name;    //性别

   /**
    * 这是一个构造方法,用于构造一个Person类对象,构造方法的名字必须和类名一致
    *构造器方法没有返回值
    */
   public Person(String name, int age, String sex) {
       //因为这里有两个name(类中一个,参数一个),为了区分它们通常在本类定义的变量(对象)前添加this.
       this.name = name;
       this.age = age;
       this.sex = sex;
   }

   /**
    * 以下是可以执行的操作
    */

   /**
    * 吃东西是每一个Person都应该会的,所以我们定义一个eat()方法
    */
   public void eat(String food) {
       //当然我们不可能真的让它吃东西,简单的打印一下吧
       //证明它已经吃了
       System.out.println("我吃了" + food);
   }

   /**
    * 走路
    */
   public void walk(String place) {
       System.out.println("我在" + place + "散步");
   }
}

一个人当然不可能只有这么一些操作,为了简单起见,就这样吧。

注:你可能不知道privatepublic的意思,但是没关系,先忽略掉它们。

  • 对象

面向对象中的对象终于出现了,有没有一丝小激动呢?

  • 什么是对象

对象是类的实例。前面说类是一种宏观概念,那对象就是一个具体的东西了。比如人是一个类,那么具体的一个人就可以说是人类的一个对象,例如:张三就可以说是一个对象。

  • 构建对象

创建对象的方法和声明一个变量的方法比较类似,你可以先下面一样声明:
Person zhangsan = new Person("张三", 18, "男");
首先是类名,后跟对象的名字(命名方式同变量),new关键字用于创建一个对象,还记得之前Person类中的构造器方法吗?new关键字会调用Person类的构造器方法对对象的属性(实例域)进行初始化,然后将初始化好的对象返回。

好了,Java的基础知识就讲解到这,补充内容上课时再讲,这里的东西有不懂的可以问问部长或者我。

你可能感兴趣的:(Java4Android)