|
该用户从未签到
|
1. java 的方法Method (函数 Function), 功能, 动作
) z; v$ s5 v( [ c$ M 1) 方法就是函数: y=f(x)=3x+6;" J( c+ i t3 t2 k( `0 O1 p; `
2) 方法的语法: [( @. K. ^# T- U, U
(修饰词)(返回值类型)(方法名)(参数列表){! M) d4 I# {. w/ N, x; k. y
//方法体0 R# p$ V! [, e4 g
}, f* z% n+ x& s0 _! I
public static void main(String[] args){}3 G5 o2 I/ @1 e% a
如:
0 ?1 ] ]8 m4 X public static int f(int x){& @0 L7 p) G* F) ]: k5 k
int y = 3 * x + 4;5 k; i1 [! _, b$ N- f7 q* S
return y;
$ M5 T2 _3 a; L; l }
( k, v2 l% D6 V0 c" @ 4) 如果有返回值定义就必须有return语句, 返回和返回值类型
! K8 \: D) G. E- R" w3 a1 O1 W- k 兼容的数据, k3 r- t J; E% `5 _3 Z$ w! T8 X. I
5) 方法的参数和方法内部的变量 都是局部变量,
6 R# Z. j* ]8 N 这些变量作用域只在方法内部!) G0 v- f. V P `" g
6) 实参: 方法调用时候实际传递的参数变量
- A. g. r- m5 H8 ~) v, w 形参: 方法的参数定义,是临时变量.8 F' `7 }: f# V- p7 z
8 ~) o5 u8 K A. i! u3 L' s2. Java 运算符
. s$ F, a8 c/ P4 t7 J 1) 数学运算符 + - * / %( x: L- Z1 [4 U# l w' S2 r; Q
A 运算的封闭性(补码运算的封闭性): ! x* v" G! f; l
1.同种类型参与运算(可能需要自动类型转换)
/ m8 R5 i$ R6 F: e! i1 G 2.返回同种类型(可能发生:上溢出和下溢出)4 @7 ?0 R3 i$ U" N
3.byte, short, char 按照int运算
) Z4 I, m4 U! f* f5 X 如: int a = 1 + 'A';$ Z9 X+ @2 V! n$ u7 k3 A" v8 n
B. 整数的除法是整除- N$ l1 r: f/ f- s& J
1.除以2相当于移位运算(移动小数点)
" R3 S! v% l) M+ Z. O5 B C.Java中字面量的运算被Javac优化了, 优化为一个固定的常量.; U. P/ z3 S( f) y" N
D. % 计算除法的余数$ s3 F+ \5 z; q
1. 0 对其他数的 余数 是07 M% M3 t. T, w/ G- W$ c) c
2. n%3 是 周期函数, 函数值 [0,3)8 ^) ?# }! Q. x0 ~6 r* l
3. 负数的余数是负数(考试可能出现, 工作中很少用)
3 E% q8 }3 \3 E$ Y
" Z. I+ M: Q9 Y- N$ o 2) 自增(自减)运算 ++ --9 P2 s, |8 Y* o4 R. k( i
1. 可以将当前变量自我增加(减少)1& l2 V8 C+ N4 i8 a3 u5 @" u8 j
2 i++, 后++, 先将i的值作为整个表达的值, 然后将i增加1." V: b$ ~# }5 A) p# i( l
3 ++i, 先++, 先将i增加1, 然后将i的值作为整个表达的值.
+ R: x' V% j$ J" Y# \* k) t int a = i++;
. ]& @+ _. N* ~1 f1 s- [: { (i++)%3
! _( t5 A# B2 _. c5 g! l: i8 y' j6 p! ^, Q- z
3) 逻辑与比较运算
( H. q* d* d4 ~; ^ 1.逻辑运算 与(并且)&& 或(或者)|| 非(否则)!
6 ~& c9 {) R8 z: z 非短路的逻辑运算 & | , 比较少使用, 逻辑不合理
" z/ q! N( @2 M. w4 p- } L 2. 比较运算, 比较变量的值, 就是逐个"位"比较值: > >= < <= == !=
; q" w6 W* k* C: _ 基本类型变量的值就是基本值如: i=1
& x# J# z) T) k! j4 ?2 k' N m+ v 引用类型变量的值是对象地址值.(在面向对象阶段详细讲解) U* i! F* V% d
9 q; ?3 k5 d- Z" N4 L
int i = 1;
& G2 p2 S- h. D( e# M long l = 1;. _) J9 b. g5 V/ E
System.out.println(i==l); //true: A, D; ?5 [9 Y5 G: x3 ~
4) 条件运算符(3元运算符) $ F y+ Q8 K7 E3 D0 G
语法: 条件表达式 ? 表达式1 : 表达式2
' A* _1 Z* P J 当"条件表达式"为true时候, 表达式1作为整个表达式的值,
' D' N. J) V2 D! s. \$ D 否则 表达式2作为整个表达式的值
6 G, R6 H$ E$ Z$ N 如:
- g Q9 @/ v! }, m- _9 T$ ` boolean isBoy = true;
# f$ C0 y3 V1 _- M& q int level = isBoy ? 2 : 3 ;// 2% \& s* e, B8 w9 h
x3 R( ?- Y* V+ E8 c# }1 h
3. 分支流程控制
) G/ W" P" [. I* P6 c 1) if ... else
. G5 G2 S1 J( l4 R" G 语法: if(布尔表达式){0 {6 U- J, [, Q% O7 b2 K
//语句块..
' u( I6 ^" {, B7 j7 {* Q }else{; X5 M4 U2 \0 @% q
//语句块) L' ]" D p- W- B
}% W6 G! L# Q( ?! K
嵌套: if(布尔表达式){! p- Z, ~2 s1 t
//...& U$ [) e& f& d4 a O) A1 N
}else if(布尔表达式){8 N, l- V. s5 B8 y9 L; ^3 g9 _! v
//...! l4 i3 s- o4 t7 w. m( n
}else if(布尔表达式){
2 c, Z% K- Q4 n5 a //...
1 @/ t F- R! S; l }else{
( X" d+ N; v0 j& ~1 ? //...& l; K Z# O, b# P2 T2 Z9 z# j
}. h9 |' j$ h7 O* o8 E
- `9 W6 h1 s, ^3 f1 l4 l i1 P6 Y 2) switch ... case
4 c6 _* s% X3 u0 Q7 @$ H2 E 语法: switch: 开关, case: 情况下
% @* k: F2 R2 ^ switch(整数表达式){
! P6 D$ u# G$ B5 y case 整数常量1:
4 t: g! i5 }" r7 s7 ~" ? //语句序列
) _: U$ W: W! N- D1 ~. A0 g* l7 K break;
6 H& b) y& I6 D% X' F case 整数常量2:, n/ t1 W1 X9 V3 |2 `: a
//语句序列
* y+ F u( x- t' H4 w4 ? break;
* A7 t2 E& l" T" W) b default:
, H i0 D1 S6 V" e1 h; f L //语句序列: b; D: @" N! s5 d5 K/ |
}+ c3 P1 c. v J3 H1 r3 k' C
A. switch条件: 只能是整数(int byte char short)表达式
; g# N* v) o; H% F switch 不能处理long 或其他类型3 N( r' c, y# d, f6 V8 k! c
B. case 只能是整数(int byte char short)常量, 不能使用 V2 l# B5 _2 H
变量及表达式. 如: '中'# p- R# k) l. g) E# B+ u! I8 L0 K
C. break 跳转到switch结束继续执行, 可以根据业务逻辑是否使用. e; G( J; X+ S
经常都写break
6 a @6 |9 r/ [! q1 r+ d0 `, o
2 h6 r I0 {2 i2 S( k5 r1 X4. 循环控制
' h6 k' O" k5 U7 I% U 1) While 循环控制1 Q% m6 z3 o' Q' Z
语法:
! Z' M3 J7 W" k- v9 w while(布尔表达式){6 C( d8 p; l1 }1 ~2 I0 w0 B
//循环体 语句序列
6 A3 X+ p" o: X! t' n- D7 U& s }
' h7 ]" v6 X _. d, w( R& {. Y+ T7 L- |0 s D7 I
+ p# r! T1 M% X( _/ f. s6 L
|
|