该用户从未签到
|
1. java 的方法Method (函数 Function), 功能, 动作
1 F- E7 T! M: Y1 @- m8 x 1) 方法就是函数: y=f(x)=3x+6;
+ t5 p9 j4 a+ `- E 2) 方法的语法: j+ H2 [$ X( u3 ]
(修饰词)(返回值类型)(方法名)(参数列表){9 P0 p! S# ]- p- U9 W; z) V8 [
//方法体
2 P( f! C; P7 h8 K9 C% t }
7 l1 E {/ {. b8 c2 [+ F public static void main(String[] args){}! ]8 V0 u: Z% _- {3 ]; [* f
如:6 G& I/ X5 p1 V% _: M
public static int f(int x){
0 F* e. Z$ R0 Y1 l) t) _ int y = 3 * x + 4;, I0 j/ z2 `6 \! v- P/ B
return y;
/ K- _5 ~& _5 m) t0 L }: g9 a" Y/ a* I6 a# I0 B+ q
4) 如果有返回值定义就必须有return语句, 返回和返回值类型
# k8 R) F2 H7 ?# C( O. w 兼容的数据: s8 O. T9 ?( W# _! r
5) 方法的参数和方法内部的变量 都是局部变量,; q) V* C- L# G# R0 E
这些变量作用域只在方法内部!0 Q/ a2 I3 g2 h+ m
6) 实参: 方法调用时候实际传递的参数变量
; z$ O& n' R( u$ u2 U9 v2 f 形参: 方法的参数定义,是临时变量.
" Z1 I9 ?9 m2 S; N7 h+ v: H, v, U- Q" X
2. Java 运算符7 n! ~$ R( q$ I$ p* z; ?+ n% [
1) 数学运算符 + - * / %0 { p6 h/ _: a" U
A 运算的封闭性(补码运算的封闭性): ^8 O. [' `7 x$ O. x" C
1.同种类型参与运算(可能需要自动类型转换)
3 t6 q! C3 A; t 2.返回同种类型(可能发生:上溢出和下溢出)+ g- d6 Y! c7 W7 @( V& n0 ]4 _" r/ c
3.byte, short, char 按照int运算
& k" e5 `2 K" I- P) N$ G6 c 如: int a = 1 + 'A';
. z: e8 F, k4 n; M B. 整数的除法是整除1 f) q6 \+ D; s
1.除以2相当于移位运算(移动小数点) ; I D) _1 S7 ]9 O( g2 ~4 M
C.Java中字面量的运算被Javac优化了, 优化为一个固定的常量.& a3 ~( B0 _8 e& ]
D. % 计算除法的余数
6 \3 Y& x2 o* h8 f) c: X$ p7 T! c9 v 1. 0 对其他数的 余数 是0! W/ Z. e) @/ t
2. n%3 是 周期函数, 函数值 [0,3)" D# z$ X( x) ]$ b
3. 负数的余数是负数(考试可能出现, 工作中很少用)
9 p' X2 t* V: \
! l( u, D4 R8 K) v 2) 自增(自减)运算 ++ --! u4 `: [* u* ^1 d* K; U, X* Q0 B
1. 可以将当前变量自我增加(减少)1
4 v7 a* O3 }* { 2 i++, 后++, 先将i的值作为整个表达的值, 然后将i增加1.
- |% K. O5 X: j6 H* z6 H+ P 3 ++i, 先++, 先将i增加1, 然后将i的值作为整个表达的值.% K- E+ C- o! Q5 q- ] K7 k, w
int a = i++;* G; ?, I" ]6 u! |5 A& w7 `
(i++)%3* j7 Q% n1 K6 c3 G) g: z
1 l; \/ J! x G6 H$ t! K/ z
3) 逻辑与比较运算
" A( w! f7 i6 z# H; w9 L2 A$ @ 1.逻辑运算 与(并且)&& 或(或者)|| 非(否则)!
$ I0 R s H: |6 }$ h 非短路的逻辑运算 & | , 比较少使用, 逻辑不合理
u' {- @/ @2 m+ ^ 2. 比较运算, 比较变量的值, 就是逐个"位"比较值: > >= < <= == !=
2 L9 J4 t! G$ b! j: T% U( b 基本类型变量的值就是基本值如: i=1
& s0 a* S3 n G2 N 引用类型变量的值是对象地址值.(在面向对象阶段详细讲解)
( p7 Q3 l& f7 t
7 b3 B2 a9 }6 R# { ^2 B+ \" W int i = 1;
& V$ A. G% U7 u long l = 1;8 N8 c; D3 |9 K1 b2 @
System.out.println(i==l); //true+ T- B# y" a. Z1 q
4) 条件运算符(3元运算符) / D" a2 t, x# l2 ?/ t- T! i/ v
语法: 条件表达式 ? 表达式1 : 表达式25 d1 v- R% {3 R: N( x5 T F9 \
当"条件表达式"为true时候, 表达式1作为整个表达式的值,
5 u2 }+ [7 B, T4 R, R! _ 否则 表达式2作为整个表达式的值2 j- G/ _8 {7 k" m8 s$ M' H# @) V
如:
. u7 q; D/ h7 n' \8 L1 A" Z- q1 B boolean isBoy = true;" e) k0 ^4 s2 O
int level = isBoy ? 2 : 3 ;// 2
1 S; B7 M! U" Z3 k4 a" Z( N& u/ G f8 n+ W3 V
3. 分支流程控制
5 P( W8 K c' r3 J9 v 1) if ... else
G5 E. Y% y- g- A R( J$ |" H 语法: if(布尔表达式){$ k5 K4 W8 [# w+ W$ J
//语句块..
' Z/ ]' j- m- U }else{3 u' Z% F) i4 ~' n$ U4 w3 q7 c# v
//语句块
N; |* T# x0 @4 j$ q: h; ` }. h" m2 N, E1 x1 g) s: A
嵌套: if(布尔表达式){9 i5 J6 D2 @' }
//...
* W: B* \8 ]' w9 G8 r) y/ b7 g }else if(布尔表达式){
3 V3 Z# P& u9 }6 }3 t1 H //...
* d* X3 A; k2 \9 O }else if(布尔表达式){0 |9 n+ O- q4 a! ^+ ~! e; A7 ]7 m
//...8 y. d1 U6 T/ Y; t2 _& k5 u i7 I
}else{. I5 S8 g: J) g4 Z- L
//...
2 f7 m. o7 Z: p" b% n }
* M' h3 @0 y8 O+ V( v- H2 n' y @- D) b( g! }, T& ]$ t2 I6 C. U& g
2) switch ... case
2 W+ v% K8 t" g, k 语法: switch: 开关, case: 情况下
4 E5 J! o: U9 k; X/ @; I switch(整数表达式){
; ^* b; t3 {2 g$ q- ` S4 I8 u% v7 E case 整数常量1:
6 i) X4 ]) ?, |) T& ] //语句序列4 \( z2 r% t2 `3 T3 O
break;
+ f7 v: c2 f& Y case 整数常量2:0 e0 o) `% j/ V5 {4 s6 b* o6 ?
//语句序列5 J& g k$ `. Q6 o% \# N! n
break;$ ^; f4 ~3 r8 R* M" p# e
default: " u4 B5 ^! A& c- K
//语句序列/ Y: u5 o/ w# S. z$ s% L4 E
} V/ y7 z8 i0 u4 h, O4 @# @
A. switch条件: 只能是整数(int byte char short)表达式* Z3 u# A+ m, E0 r8 e
switch 不能处理long 或其他类型1 L; r- a/ N/ D5 g, M8 {! |
B. case 只能是整数(int byte char short)常量, 不能使用
- u6 K: e& b5 _0 Y# @' } 变量及表达式. 如: '中'
/ c" A d4 O. U1 S G# e! J C. break 跳转到switch结束继续执行, 可以根据业务逻辑是否使用
$ _" h$ }# V h. p& P. G 经常都写break
v& T% z6 a* t- _, G u" h2 ^9 b8 I. g" F. C
4. 循环控制
" k8 O2 ?9 a q8 i 1) While 循环控制
/ @0 f& r. }' S* U, y, _$ q 语法:
$ K5 Y# B& G: c7 ~/ W while(布尔表达式){! L: ]- o3 q D I8 q; E+ Y
//循环体 语句序列5 O$ v1 q O8 }/ K
}& V5 a7 Y- Y3 @' _* }
3 |/ @& } Q( m% C' a1 l% O7 A2 e" u( E( O1 A9 H* _
|
|