Java复习笔记[2] —— 基础语法

时间:2021-07-18 22:15:55

基本语法:

变量:

定义变量:type identifier [ = value][, identifier [= value] ...] ;

局部变量,类的实例变量和类变量(静态变量)的使用示例:

import java.util.Random;;

public class Student {

    String name;    //实例变量

    int age;

    static int studentCount = 0;    //类变量(静态变量)

    

    public Student(String nint a) {

        name = n;

        age = a;

        studentCount++;

    }

    

    public void sayHello() {

        System.out.println("Hello, I'm " + name + ", I'm " + age + " years old.");

    }

    

    public void doSomeWork() {

        Random r = new Random();

        int workload = r.nextInt(4) + 1;    //局部变量

        System.out.println(name + " is doing work for " + workload + " hours.");

    }

    

    public static void showStudentCount() {

        switch(studentCount) {

        case 0:

            System.out.println("No student at all.");

            break;

        case 1:

            System.out.println("There is only one student.");

            break;

        default:

            System.out.println("There are " + studentCount + " students.");

        }

    }

}

 

//Application.java

public class Application {

    public static void main(String[] arguments) {

        Test();

    }

    

    public static void Test() {

        Student.showStudentCount();

        Student s1 = new Student("Daniel"21);

        Student.showStudentCount();

        Student s2 = new Student("Peter"22);

        Student s3 = new Student("Bruce"28);

        Student.showStudentCount();

        s1.doSomeWork();

        s2.doSomeWork();

        s3.doSomeWork();

    }

}

输出:

No student at all.

There is only one student.

There are 3 students.

Daniel is doing work for 4 hours.

Peter is doing work for 4 hours.

Bruce is doing work for 2 hours.

 

算术运算符:

运算符

描述

示例(A=10,B=20

+

加法 - 相加运算符两侧的值

A + B 等于 30

-

减法 - 左操作数减去右操作数

A – B 等于 -10

*

乘法 - 相乘操作符两侧的值

A * B等于200

/

除法 - 左操作数除以右操作数

B / A等于2

取模 - 左操作数除右操作数的余数

B%A等于0

++

自增: 操作数的值增加1

B++ 或 ++B 等于 21,前缀运算符表示先递增再返回值,后缀运算符表示先返回值再递增

--

自减: 操作数的值减少1

B-- 或 --B 等于 19,区别同上

 

关系运算符:

运算符

描述

示例(A=10,B=20

==

检查如果两个操作数的值是否相等,如果相等则条件为真

A == B  为假

!=

检查如果两个操作数的值是否相等,如果值不相等则条件为真

A != B  为真

检查左操作数的值是否大于右操作数的值,如果是那么条件为真

A > B  为假

检查左操作数的值是否小于右操作数的值,如果是那么条件为真

A < B  为真

>=

检查左操作数的值是否大于或等于右操作数的值,如果是那么条件为真

A >= B  为假

<=

检查左操作数的值是否小于或等于右操作数的值,如果是那么条件为真

A <= B  为真

 

位运算:

运算符

描述

示例(A=60,即 00111100

B=13,即 00001101

如果相对应位都是1,则结果为1,否则为0

A&B = 12,即0000 1100

|

如果相对应位都是0,则结果为0,否则为1

A | B = 61,即 0011 1101

^

如果相对应位值相同,则结果为0,否则为1

A ^ B = 49,即 0011 0001

按位补运算符翻转操作数的每一位,即0变成1,1变成0

〜A = -61,即1100 0011

<< 

按位左移运算符,左操作数按位左移右操作数指定的位数

A << 2 = 240,即 1111 0000

>> 

按位右移运算符,左操作数按位右移右操作数指定的位数

A >> 2 = 15即 1111

>>> 

按位右移补零操作符,左操作数的值按右操作数指定的位数右移,移动得到的空位以零填充

A>>>2 = 15即0000 1111

 

逻辑运算符:

运算符

描述

示例(A=true,B=false

&&

逻辑与运算符。当且仅当两个操作数都为真,条件才为真

A && B = false

| |

逻辑或操作符。如果任何两个操作数任何一个为真,条件为真

A | | B = true

!

逻辑非运算符。用来反转操作数的逻辑状态

!A = false

 

赋值运算符:

运算符

描述

示例

=

将右操作数的值赋给左侧操作数

C = A + B

+=

把左操作数和右操作数相加赋值给左操作数

C += A 等价于 C = C + A

-=

把左操作数和右操作数相减赋值给左操作数

C -= A 等价于 C = C - A

*=

把左操作数和右操作数相乘赋值给左操作数

C *= A 等价于 C = C * A

/ =

把左操作数和右操作数相除赋值给左操作数

C /= A 等价于 C = C / A

%=

把左操作数和右操作数取模后赋值给左操作数

C %= A 等价于 C = C % A

<<=

左移位赋值运算符

C <<= 2 等价于 C = C << 2

>>=

右移位赋值运算符

C >>= 2 等价于 C = C >> 2

&=

按位与赋值运算符

C &= 2 等价于 C = C & 2

^=

按位异或赋值操作符

C ^= 2 等价于 C = C ^ 2

|=

按位或赋值操作符

C | = 2 等价于 C = C | 2

 

其他重要的运算符:

  1. 条件运算符(三目运算符)“?:”

定义:variable var = <expression> ? <value if true> :<value if false>

  1. instanceof 运算符:

定义:<Object reference variable> instanceof  <class/interface type>

 

条件控制:

if语句:

if (<条件1>) {

   //如果<条件1>的值为true执行代码

} else if (<条件2>) {

   //如果<条件2>的值为true执行代码

} else if (<条件3>) {

   //如果<条件3>的值为true执行代码

} else {

   //如果以上 布尔表达式 都不为true执行代码

}

 

switch语句:

switch (<表达式>) {

    case <value1>:

        //语句

        break; //可选

    case <value2>:

        //语句

        break; //可选

    default : //可选

        //语句

}

注意事项:

  1. case 标签必须为字符串常量或字面量
  2. 当变量的值与 case语句的值相等时,那么 case语句之后的语句开始执行,直到 break语句出现才会跳出 switch语句(即可以多个case公用一段执行语句)
  3. default 分支不需要 break语句

 

循环:

while循环:

while (<条件>) {

   //循环内容

}

 

do…while循环:

do {

    //循环代码

} while (<条件>);

 

for循环:

for (<初始化变量>; <条件>; <变量修改>) {

    //循环代码

}

用于数组的for循环变体(类似于C#的foreach):

for (<声明语句> : <数组或返回数组的表达式>)

{

    //代码句子

}

示例:

public static void Calculate() {

    int [] nums = {1 ,2 ,345};

    int total = 0;

    for(int i : nums) {

        total += i;

    }

    System.out.println(total);

}