天外天工作室移动-Android 组培训 #1
- 本教程主要是为了后面的面向对象编程铺路,不会讲的非常细致。
- 本教程的项目结构均基于 IntelliJ IDEA
- java 源文件布局
package com.tjuwhy.c1
import java.lang.Math;
public class Main {
public static void main(String[] args) {
System.out.print("a = ");
int a = Math.max(1, 2);
System.out.println(a);
}
}
-
一个Java文件通常有三个顶级语句,分别是包声明语句、导包语句、类声明语句,紧跟类声明语句的是类体。
-
每一个.java源文件中只能有一个用public修饰的类
-
每个能运行的类里中必须有一个main方法 public static void main(String []args){}
-
java 对大小写非常敏感
-
关键字
Java 语言的关键字有:abstract、boolean、break、byte、case、catch、char、class、continue、default、do、double、else、extends、false、final、finally、float、for、if、implements、import、instanceof、int、interface、long、native、new、null、package、private、protected、public、return、short、static、super、switch、synchronized、this、throw、throws、transient、true、try、void、volatile、while。
Java语言保留字有:const、goto。
关键字不能用于命名变量或者类。 -
一些基本的数据类型
- int 整型变量/ long 长整形变量
- double 双精度浮点型变量 / float 单精度浮点型变量
- boolean 布尔类型
- String 字符串类型
- 数组 在类型后加上一对中括号[]
前三个是基本类型,String是类,数组实例是一个对象。
取值范围
数据类型 关键字 在内存中占用的字节数 取值范围 默认值 布尔型 boolean 1个字节 true,false false 字符型 char 2个字节 -128 ~ 127 ‘\u000' 整形 int 4个字节 -231 ~ 231 - 1 0 双精度浮点型 double 8个字节 1.9E-324 ~ 3.4028E+38 0.0D -
变量的作用域
一对大括号{}包含一个作用域,又称为代码块(codeblock),内部的作用域可以访问外部的变量,外部的作用域无法访问内部的变量。但变量由外部作用域定义后,由内部作用域赋值,在其他外部作用域仍有效。
final 关键字定义常量,常量一经初始化便不可修改。 -
基本语句
- 输出
System.out.println("Hello world!");//输出并换行 System.out.print("Hello world!");//输出不换行
- if 语句
if(boolean expression){ statements; }
boolean expression 为 boolean 类型的变量或者返回为 boolean 变量的语句,为 true 时,运行大括号中的语句。
- for 循环
for(initialization;boolean expression;update control variable) { statements; }
initialization : 单次运行初始化语句,
boolean expression : boolean类型的变量或者返回为boolean变量的语句,
update control variable : 末尾循环语句。
每次运行 statements 前,判断 boolean expression,为 true 时,运行循环体中的语句。
foreach 循环for(T t : obj){ statements; }
元素类型 T 元素变量 t : 遍历对象 obj,
foreach 循环是 Java 中用于遍历类数组对象的一种经过简化的 for 循环。
-
函数
-
基本概念
函数是定义在类中的一段有特定功能的代码块,便于代码复用。函数由函数声明和函数体构成:
修饰符 T functionName (Parameter1 p1,Parameter2 p2,....) { statements; return t; }
T : 函数的返回类型,
functionName : 函数名,
Parameter1、Parameter2 : 参数类型,
p1、p2 : 参数
return t; : 返回语句,
t :返回的变量。-
函数重载(Overloading)
在同一个类中,允许存在一个以上的同名函数,只要它们的参数个数或者参数类型不同即可。
在调用时会根据调用时输入的参数自动选择调用函数。
-
-
注释
Java 使用 c 风格的注释
//单行注释
/*
.......
*/多行注释 -
一些常用的操作符
-
一元 ! -(取负数) ++ --
-
二元 + -(减号) * / %
-
三元 boolean expression? value when expression is true : value when expression = false
-
赋值 =
-
逻辑操作符 > < >= <= != == &&
- 逻辑短路: 逻辑短路是对于逻辑运算而言,是指,仅计算逻辑表达式中的一部分便能确定结果,而不对整个表达式进行计算的现象。
对于“&&”运算符,当第一个操作数为false时,将不会判断第二个操作数,因为此时无论第二个操作数为何,最后的运算结果一定是false;
对于“||”运算符,当第一个操作数为true时,将不会判断第二个操作数,因为此时无论第二个操作数为何,最后的运算结果一定是true。
- 逻辑短路: 逻辑短路是对于逻辑运算而言,是指,仅计算逻辑表达式中的一部分便能确定结果,而不对整个表达式进行计算的现象。
-
-
命名规范、编程规范
Java projects 路径不要有中文字符,
包名使用小写英文单词,
类名和文件名一致,使用大驼峰命名法,
常量名使用全英文大写字母,
函数、方法名和变量名使用小驼峰命名法。 -
IDEA 使用小技巧
Ctrl + alt + L 一键格式化
Ctrl + / 注释选中行
Ctrl + Y 删除选中行
alt + Enter 纠错推荐 -
递归(自学)
递归指的是在函数的定义中使用函数自身的方法。
举个栗子:
从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?"从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?'从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?……
语法格式如下:
public void recursion()
{
statements;
... ... ...
recursion(); /* 函数调用自身 */
... ... ...
}
Java 支持递归,即一个函数可以调用其自身。但在使用递归时,需要注意定义一个从函数退出的条件,否则会进入死递归。
递归函数在解决许多数学问题上起了至关重要的作用,比如计算一个数的阶乘:
public int factorial(int i)
{
if(i <= 1)//退出条件
{
return 1;
}
return i * factorial(i - 1);
}