Java语法回顾

注释

每种语言,第一个教我们的都是“注释”。Java基本有如下三种注释。

1
// 单行注释
1
2
3
/*
多行注释
*/
1
2
3
/**
JavaDoc(Java文档)注释是这样的。可以用来描述类和类的属性。
*/

文件头

包就像定义文件路径一样,实际上的存储也是按包的名称存储。

1
package uno.meng;

导入类

导入一个类:

1
import java.util.ArrayList;

导入所有类:

1
import java.security.*;

书写类

每个 .java 文件都包含一个public类,这个类的名字必须和这个文件名一致。

1
public class LearnJava {

每个程序都需要有一个main函数作为入口:

1
public static void main (String[] args) {

标准输出:

1
System.out.println("Hello World!");

使用+来拼接字符串:

1
2
3
4
System.out.println(
"Integer: " + 10 +
" Double: " + 3.14 +
" Boolean: " + true);

如果要在输出后不想自动换行,可以使用System.out.print方法:

1
2
System.out.print("Hello ");
System.out.print("World");

类型与变量

基本类型定义

来声明变量:

1
2
3
4
5
6
7
8
9
10
      byte fooByte = 100;
short fooShort = 10000;
int fooInt = 1;
long fooLong = 100000L; // L可以用来表示一个数字是长整型的。
float fooFloat = 234.5f; // f用来表示一个数字是浮点型的。
double fooDouble = 123.4;
boolean fooBoolean = true;
char fooChar = 'A';
final int HOURS_I_WORK_PER_WEEK = 9001; // final 标识常量。
String fooString = "My String Is Here!";

数组

数组在声明时大小必须已经确定

数组的声明格式:

<数据类型> [] <变量名> = new <数据类型>[<数组大小>];

1
2
3
int [] intArray = new int[10];
String [] stringArray = new String[1];
boolean [] booleanArray = new boolean[100];

声明并初始化数组也可以这样:

1
int [] y = {9000, 1000, 1337};

随机访问数组中的元素:

1
System.out.println("intArray @ 0: " + intArray[0]);

数组下标从0开始并且可以被更改:

1
2
intArray[1] = 1;
System.out.println("intArray @ 1: " + intArray[1]); // => 1

其他数据类型

ArrayLists - 类似于数组,但是功能更多,并且大小也可以改变,主要有:

  • LinkedLists
  • Maps
  • HashMaps

操作符

多重申明

1
int i1 = 1, i2 = 2; // 多重声明可以简化

算数运算

1
2
3
4
System.out.println("1+2 = " + (i1 + i2)); // => 3
System.out.println("2-1 = " + (i2 - i1)); // => 1
System.out.println("2*1 = " + (i2 * i1)); // => 2
System.out.println("1/2 = " + (i1 / i2)); // => 0 (0.5 truncated down)

取余

1
System.out.println("11%3 = "+(11 % 3)); // => 2

比较操作符

1
2
3
4
5
6
System.out.println("3 == 2? " + (3 == 2)); // => false
System.out.println("3 != 2? " + (3 != 2)); // => true
System.out.println("3 > 2? " + (3 > 2)); // => true
System.out.println("3 < 2? " + (3 < 2)); // => false
System.out.println("2 <= 2? " + (2 <= 2)); // => true
System.out.println("2 >= 2? " + (2 >= 2)); // => true

位运算操作符

1
2
3
4
5
6
7
8
9
/*
~ 取反,求反码
<< 带符号左移
>> 带符号右移
>>> 无符号右移
& 和
^ 异或
| 相容或
*/

自增

1
2
3
int i = 0;
System.out.println("\n->Inc/Dec-rementation");
// ++ 和 -- 操作符使变量加或减1。放在变量前面或者后面的区别是整个表达式的返回值。操作符在前面时,先加减,后取值。操作符在后面时,先取值后加减。
1
2
3
4
System.out.println(i++); // 后自增 i = 1, 输出0
System.out.println(++i); // 前自增 i = 2, 输出2
System.out.println(i--); // 后自减 i = 1, 输出2
System.out.println(--i); // 前自减 i = 0, 输出0

控制结构

If语句和C的类似

1
2
3
4
5
6
7
8
int j = 10;
if (j == 10){
System.out.println("I get printed");
} else if (j > 10) {
System.out.println("I don't");
} else {
System.out.println("I also don't");
}

While循环

1
2
3
4
5
6
7
8
9
int fooWhile = 0;
while(fooWhile < 100)
{
//System.out.println(fooWhile);
//增加计数器
//遍历99次, fooWhile 0->99
fooWhile++;
}
System.out.println("fooWhile Value: " + fooWhile);

Do While循环

1
2
3
4
5
6
7
8
9
int fooDoWhile = 0;
do
{
//System.out.println(fooDoWhile);
//增加计数器
//遍历99次, fooDoWhile 0->99
fooDoWhile++;
}while(fooDoWhile < 100);
System.out.println("fooDoWhile Value: " + fooDoWhile);

For 循环

1
2
3
4
5
6
7
int fooFor;
//for 循环结构 => for(<起始语句>; <循环进行的条件>; <步长>)
for(fooFor=0; fooFor<10; fooFor++){
//System.out.println(fooFor);
//遍历 10 次, fooFor 0->9
}
System.out.println("fooFor Value: " + fooFor);

Switch Case 语句

switch可以用来处理 byte, short, char, 和 int 数据类型,也可以用来处理枚举类型,字符串类,和原始数据类型的包装类:Character, Byte, Short, 和 Integer

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int month = 3;
String monthString;
switch (month){
case 1:
monthString = "January";
break;
case 2:
monthString = "February";
break;
case 3:
monthString = "March";
break;
default:
monthString = "Some other month";
break;
}
System.out.println("Switch Case Result: " + monthString);

类型转换

数据转换

将字符串转换为整型

1
Integer.parseInt("123");//返回整数123

将整型转换为字符串

1
Integer.toString(123);//返回字符串"123"

其他的数据也可以进行互相转换:

  • Double
  • Long
  • String

类型转换

你也可以对java对象进行类型转换, 但其中会牵扯到很多概念在这里可以查看更详细的信息: http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html

方法

用new来实例化一个类

1
Bicycle trek = new Bicycle();

调用对象的方法

1
2
trek.speedUp(3); // 需用getter和setter方法
trek.setCadence(100);

toString 可以把对象转换为字符串

1
System.out.println("trek info: " + trek.toString());

你也可以把其他的非public类放入到.java文件中!!

类定义的语法

1
2
3
4
<public/private/protected> class <类名>{
//成员变量, 构造函数, 函数
//Java中函数被称作方法
}

构造方法

构造方法不写返回值,返回类型,必须是public

以下是一个默认构造函数

1
2
3
4
5
6
public Bicycle() {
gear = 1;
cadence = 50;
speed = 5;
name = "Bontrager";
}

以下是一个含有参数的构造函数

1
2
3
4
5
public Bicycle(int startCadence, int startSpeed, int startGear, String name) {
this.gear = startGear;
this.cadence = startCadence;
this.speed = startSpeed;
this.name = name;

方法书写语法

<public/private/protected> <返回值类型> <函数名称>(<参数列表>)

Java类中经常会用getter和setter来对成员变量进行操作。

类的继承

PennyFarthing 是 Bicycle 的子类

1
class PennyFarthing extends Bicycle {

通过super调用父类的构造函数

1
2
3
public PennyFarthing(int startCadence, int startSpeed){
super(startCadence, startSpeed, 0, "PennyFarthing");
}

你可以用@注释来表示需要重载的方法

1
2
3
4
5
6
    @Override
public void setGear(int gear) {
gear = 0;
}

}



本文链接: http://home.meng.uno/articles/50525a4c/ 欢迎转载!

© 2018.02.08 - 2020.10.14 Mengmeng Kuang  保留所有权利!

UV : | PV :

:D 获取中...

Creative Commons License