该用户从未签到
|
1. java 的方法Method (函数 Function), 功能, 动作
- s# ?- T6 {7 K( O 1) 方法就是函数: y=f(x)=3x+6;
/ ^, H3 H& J4 |. N& k3 M3 n) q 2) 方法的语法
$ |1 k9 W1 s+ j (修饰词)(返回值类型)(方法名)(参数列表){) ]: L$ Q$ V0 @
//方法体( [, L+ c# M4 k7 U2 h+ x
}
% Y: Z( y$ w4 d |/ _6 B) S' e public static void main(String[] args){}
$ v' M- O: c8 _; u: |- q; i$ } 如:
q. @/ G. ?1 }6 A1 h public static int f(int x){
! k# o/ g) w, i' A1 y: { int y = 3 * x + 4;
. S- g. y& L$ x, f2 @ return y;; g& {. w0 I& f2 V$ B, H
}! F# s8 `3 p% q7 i* g1 u2 z: R
4) 如果有返回值定义就必须有return语句, 返回和返回值类型& U+ M) W. C4 C
兼容的数据
4 G# {4 Z4 h* }8 x6 @; s# o* _ 5) 方法的参数和方法内部的变量 都是局部变量,
3 W0 k k! x7 W8 o' [ 这些变量作用域只在方法内部!3 W, a# X6 I4 _7 m+ s( _+ T( t
6) 实参: 方法调用时候实际传递的参数变量* q, a6 Q/ c) _" a7 c" r$ K G9 ]% q1 p
形参: 方法的参数定义,是临时变量.5 p' V6 |$ n* i9 I5 r, A+ w
; k, L& `% j9 d2. Java 运算符/ h3 u/ P$ F f; N; v$ a
1) 数学运算符 + - * / %$ `3 S2 N- G/ s, i. [% q9 z( d
A 运算的封闭性(补码运算的封闭性):
2 T- [; d- z4 W$ l2 o 1.同种类型参与运算(可能需要自动类型转换)
# f, I: v5 }8 ] 2.返回同种类型(可能发生:上溢出和下溢出)
0 M( t+ } }( W1 f+ R3 B 3.byte, short, char 按照int运算6 t1 w6 _# |* |( k
如: int a = 1 + 'A';
9 D# |) y y2 { B. 整数的除法是整除/ _2 x% O p7 F3 L! T
1.除以2相当于移位运算(移动小数点)
- I5 Q c/ t- L" h' N, Y) K3 y$ P C.Java中字面量的运算被Javac优化了, 优化为一个固定的常量.
! n+ ?0 j! ]5 u0 K1 j6 X. W) X D. % 计算除法的余数. W9 S1 f* H0 M; ~0 E
1. 0 对其他数的 余数 是0
* S7 C$ A5 {7 ]1 q4 c3 ~) z) F" v 2. n%3 是 周期函数, 函数值 [0,3)
3 g; h: \# z, R 3. 负数的余数是负数(考试可能出现, 工作中很少用)
; G; P5 a, b) b2 x! y9 ^$ w8 F4 u9 [/ [& U0 k4 C% Y1 i
2) 自增(自减)运算 ++ --* Z7 q, x+ Q$ a* k$ q+ T' U
1. 可以将当前变量自我增加(减少)1( v8 T9 |( a5 {
2 i++, 后++, 先将i的值作为整个表达的值, 然后将i增加1.
) F2 A3 T S6 f: V; l' _' x 3 ++i, 先++, 先将i增加1, 然后将i的值作为整个表达的值.( I% X4 }: w) |. a: r3 u5 Z
int a = i++;
& N8 v( Y. h( m (i++)%3
, u6 }8 g: O: a6 M0 T9 o
' u4 E5 R5 a3 o0 S2 m' M2 u 3) 逻辑与比较运算 4 [' p9 v+ c9 X* `8 g* J. W) I
1.逻辑运算 与(并且)&& 或(或者)|| 非(否则)!
" m3 g" y& I) B/ r1 Y 非短路的逻辑运算 & | , 比较少使用, 逻辑不合理
0 O! ~/ V, e& W: ]" ^- h' X 2. 比较运算, 比较变量的值, 就是逐个"位"比较值: > >= < <= == !=
: G$ y+ u0 J8 z 基本类型变量的值就是基本值如: i=1
) o3 b9 G7 S+ ?7 E 引用类型变量的值是对象地址值.(在面向对象阶段详细讲解)* \; f ?1 G. S- N3 ^9 S- B
% p4 _6 D6 s5 w# C R; T, r
int i = 1;
" K& E. g: F! U long l = 1;
# X* e8 w4 M1 K0 h( m# X) g- K System.out.println(i==l); //true: Y( i# b4 z8 ?6 O. R
4) 条件运算符(3元运算符) ! T7 D% b6 Q+ D
语法: 条件表达式 ? 表达式1 : 表达式2; w {2 P/ a `+ m
当"条件表达式"为true时候, 表达式1作为整个表达式的值,
7 P0 ?6 i( b4 ?) J& x! s 否则 表达式2作为整个表达式的值& m& y) g: s' A/ \
如: : y8 ^$ C7 L& s( ]+ n4 {
boolean isBoy = true;
$ s2 Z9 P& H% Z1 L7 A& \* ^, z int level = isBoy ? 2 : 3 ;// 2) B p1 I n( |% _
2 b1 s! a# `0 a- Y. i
3. 分支流程控制
+ c0 U+ B" ~ {0 q% q D4 [ 1) if ... else" s n. X0 ]+ d2 C
语法: if(布尔表达式){
6 Y/ z2 D5 q/ F, t0 z1 c4 B: l) X //语句块..
: V& @! X/ b1 |$ v! G3 w b+ O; N }else{0 @0 i- b; ^ K9 U" s' Z5 F8 q
//语句块2 {. I: X8 s* ?* Q9 t
}1 Y% }) y9 Z; m) P! \
嵌套: if(布尔表达式){
9 J6 O& E( J6 ~9 x# M8 h8 L9 x8 Y //...3 r( {' [; [: f) Z6 C1 H" L
}else if(布尔表达式){. c& V; K/ q3 A7 ~; c: v
//...
& A6 U5 ?# m7 L6 `* o }else if(布尔表达式){! X& I9 C6 \ m. H- ?
//...
/ W* Y! l8 K+ f" C }else{4 N7 f. ^0 s3 U; y! I
//...
$ G) a6 j9 V4 u/ R F }
+ F8 K: _1 L" ^# ]$ ~* N6 P% T- R2 N4 R
2) switch ... case8 e+ {; Y% M" U' R, ~( D& U* t' K( Z
语法: switch: 开关, case: 情况下/ p& b6 B3 A4 j% @1 Q! S* z
switch(整数表达式){ & T0 V( O) R6 d, [3 ~0 e4 A0 ^0 x
case 整数常量1:/ Q) _2 P) ^1 r
//语句序列
) q) Q+ p4 x1 [4 I) K/ n break;4 @2 x6 D. u5 X. i' V
case 整数常量2:' E6 X, H; [) w, ?
//语句序列, i$ P3 _4 o2 s' A$ N# H+ \
break;2 i J4 M4 S1 e' N$ ]
default: 0 J. l" V" j! c
//语句序列
8 O. {2 n1 U" d/ j7 r }
% |7 x! G% j& E1 m6 K* W A. switch条件: 只能是整数(int byte char short)表达式
: x% o" J" k: f, ~ switch 不能处理long 或其他类型0 v: u# V4 v0 P/ @! y y
B. case 只能是整数(int byte char short)常量, 不能使用1 H2 |' E. G1 {" J( Y
变量及表达式. 如: '中'
9 b) S% Q# g1 t C. break 跳转到switch结束继续执行, 可以根据业务逻辑是否使用! V( |' s b/ i* i8 G2 F% H8 P
经常都写break+ f( |4 }7 A, b& w" ~
% i; e' m" h$ R: ~% x$ V$ [& u4. 循环控制
' `* z1 C$ F$ ~- o: N 1) While 循环控制) }: }1 N, f$ {- Z' p1 n
语法:- H% |" ^6 y& J" v7 U1 O! D. x! F
while(布尔表达式){8 n |7 q2 i+ \$ G$ _ p
//循环体 语句序列2 b6 J& x- S, i6 l( y
}
5 C8 n8 m, e' e& b f* l& B
; z! n7 \2 I" W
" @. C% z& q' _ |
|