该用户从未签到
|
1. java 的方法Method (函数 Function), 功能, 动作
4 Q, S2 ^5 _5 c1 F8 c" S6 k. b 1) 方法就是函数: y=f(x)=3x+6;
* a7 Y8 K+ e! F v 2) 方法的语法
; |& M( g3 ~7 S( q0 w$ @; d# ] (修饰词)(返回值类型)(方法名)(参数列表){( Y" I7 \3 z4 |6 U4 V! w f/ i
//方法体
9 k) z- B8 I/ K& x* }$ Q$ I5 w9 z }
1 }5 |( ^6 h/ A- L public static void main(String[] args){}( v; }% E! z& M4 \# f# x
如:
2 Q9 q+ B, c5 |# r public static int f(int x){
( v. d' t3 G# y0 X; c! { int y = 3 * x + 4;4 s! I; {' i+ N; E
return y;+ |- v# N8 L7 V: B! d. q G: i$ [
}) {/ d! h) v! h* e* [
4) 如果有返回值定义就必须有return语句, 返回和返回值类型 F6 U1 h+ N: e' E- Z
兼容的数据$ h5 l4 X7 v4 c: c
5) 方法的参数和方法内部的变量 都是局部变量,
" Y3 ?( M% X& B9 S1 w 这些变量作用域只在方法内部!
) [+ L/ m9 `8 ~/ A3 [ 6) 实参: 方法调用时候实际传递的参数变量
4 f$ K. N& C1 ` 形参: 方法的参数定义,是临时变量.
3 R/ `. P0 j9 @( \% j- G
. ]0 A1 X9 I+ f: j+ V% ~' h2 H$ Y; C* _2. Java 运算符
% @% _5 j' N' d. Z 1) 数学运算符 + - * / %& J3 q4 \: q/ C
A 运算的封闭性(补码运算的封闭性): 0 f8 l# d) F( O
1.同种类型参与运算(可能需要自动类型转换)$ G" U/ G4 W" _/ T- X
2.返回同种类型(可能发生:上溢出和下溢出)
$ c; l4 w- x8 H2 R4 u; b 3.byte, short, char 按照int运算+ K5 R3 g5 c# L0 e0 Y7 h, ~
如: int a = 1 + 'A';
. T M8 v& T: F7 @2 i1 L B. 整数的除法是整除% v" Z# H2 Z) z; i7 P6 H5 d
1.除以2相当于移位运算(移动小数点)
1 ?5 p# t6 o Q! e& J C.Java中字面量的运算被Javac优化了, 优化为一个固定的常量.
: m5 i; F! C; {0 W; N1 p8 f D. % 计算除法的余数% d, f1 b0 j1 N6 Z9 Y* E
1. 0 对其他数的 余数 是0
% ?" }9 }5 t v, Z5 N 2. n%3 是 周期函数, 函数值 [0,3)
. I4 F" E: }8 y3 c4 N" M 3. 负数的余数是负数(考试可能出现, 工作中很少用)
; V# F# q: E% C. Q' E& w
6 T9 x0 x% h7 f( p0 {* [9 \ 2) 自增(自减)运算 ++ --
6 ~. [( U* ?. z7 X/ H* R 1. 可以将当前变量自我增加(减少)1
! C/ O9 e$ T5 G6 s5 M 2 i++, 后++, 先将i的值作为整个表达的值, 然后将i增加1.
1 `" l6 D+ B9 ^3 J% W8 J7 _/ ] 3 ++i, 先++, 先将i增加1, 然后将i的值作为整个表达的值.) H2 Y8 W5 B1 Q, ~8 U e$ p
int a = i++;2 x& D7 ~, f$ r1 U
(i++)%35 l3 x) f% j) j' ?) G7 h' _
9 P" X6 `2 c' i' O. Z+ P: t, \$ P3 Z+ \
3) 逻辑与比较运算 & R1 i4 ~9 A4 h" c; K
1.逻辑运算 与(并且)&& 或(或者)|| 非(否则)!
/ E+ i3 c5 N2 v 非短路的逻辑运算 & | , 比较少使用, 逻辑不合理* O/ D0 @! x6 g- v3 q
2. 比较运算, 比较变量的值, 就是逐个"位"比较值: > >= < <= == !=
" J. G Q4 _, H6 q# } 基本类型变量的值就是基本值如: i=1
: y2 i; i* K* K# d, t- k2 l2 n2 `6 u* v 引用类型变量的值是对象地址值.(在面向对象阶段详细讲解)
: K4 F7 x5 t6 |& U1 \+ e r5 B E, r& r5 l) S- |- M
int i = 1;
4 m B `8 g$ G1 @ long l = 1; z- Z: E" r& s! e2 ^2 U$ ?
System.out.println(i==l); //true
1 K0 V) x) N1 F9 b. c 4) 条件运算符(3元运算符)
k) g3 D2 o1 H) `, ~) \ 语法: 条件表达式 ? 表达式1 : 表达式2. ?: P2 d1 T' v) v& _* d
当"条件表达式"为true时候, 表达式1作为整个表达式的值, * _& E' j5 d$ R! ^
否则 表达式2作为整个表达式的值
6 J4 F; t( p) U, g 如: 2 `3 c' r" ]% F5 S4 E, h6 V) _
boolean isBoy = true;
6 _6 K% U8 N! ?% f0 H int level = isBoy ? 2 : 3 ;// 2
7 m! H5 G2 G0 I) p$ G Y2 G/ Y6 @, ]* b! B5 n2 D
3. 分支流程控制" |; L) a" F2 y6 x+ D
1) if ... else
0 Q' s$ z( `8 M9 d% y, i 语法: if(布尔表达式){8 M4 i- d: Y" Y, |. y4 Q3 k2 L
//语句块..# v2 g; c5 C3 w3 T$ c1 W+ d$ l* K
}else{
6 R. Y6 u' _/ M //语句块
2 ?: [0 d# |- R6 X- ]/ q }& f8 h8 a: e' v) X! Q0 G" u+ }+ V* y
嵌套: if(布尔表达式){
% c D! V5 W1 K, M$ f. I //...
5 j( y- s( V0 r/ X }else if(布尔表达式){) V: r$ h/ @' N; R
//.../ I9 @9 J4 a* D4 Z, e6 ?- m
}else if(布尔表达式){% V/ Z' G4 L" O3 ~# z
//...' x( j. J/ E$ C* s
}else{4 g6 e3 c9 ]# Z0 Q
//...
- N1 u; K; [. ^) P }0 r. U8 I+ W1 S
' e; R" @2 Q4 _+ j! g4 y, H
2) switch ... case5 t( o; V; _3 l" b! x3 U
语法: switch: 开关, case: 情况下
% M( z" } @6 R- F switch(整数表达式){
- [6 n9 k2 ?: g: j, p case 整数常量1:
* `& M2 ~) ~) Y& o8 x6 B$ L //语句序列) H# ~. k5 ~7 A% T- u
break;+ s2 V' |# S4 q. r
case 整数常量2:
/ t/ _: g; J) E3 G2 c* O //语句序列* x% T5 v0 d! \0 Q
break;8 R* Y' \, s8 w d5 y# O6 e( a
default:
$ w& B- y# c Q: w& T //语句序列- ^& p; t) E* i
}
5 L+ N y; q' g. n5 w' ]# y9 `2 v A. switch条件: 只能是整数(int byte char short)表达式) i0 [4 o0 M4 e6 l0 w3 F
switch 不能处理long 或其他类型/ I* [7 h+ Q$ n+ T
B. case 只能是整数(int byte char short)常量, 不能使用
8 _( i7 }5 d0 s 变量及表达式. 如: '中'& C* p q7 T# ^2 W' N
C. break 跳转到switch结束继续执行, 可以根据业务逻辑是否使用' R. F o9 {, E w3 }
经常都写break
% D! u2 H. R7 r8 }; B4 r; k$ ?& _: m7 V% ]( z
4. 循环控制
( H$ n/ M" L1 l6 Z 1) While 循环控制
+ e8 ]% u, H+ U* S1 n! O( \ 语法:4 ]& x9 _/ u( b+ [3 u7 E
while(布尔表达式){
( P& a. k6 L" P1 J% a+ k //循环体 语句序列
1 s: ~) S% B: K }( L& A% ^% G5 |. u/ ]$ h
1 c+ C8 V/ Q7 ^+ o% e9 \* y0 P) q& o# e* o6 W- b) i0 ^& q' u
|
|