该用户从未签到
|
1. java 的方法Method (函数 Function), 功能, 动作
+ D! s0 E! O, Z8 W/ j+ h5 X6 L 1) 方法就是函数: y=f(x)=3x+6;" b' k6 T1 `' G3 }0 d- O) p
2) 方法的语法
* ]( L) q8 |. S( w" h. V (修饰词)(返回值类型)(方法名)(参数列表){9 {& ]5 e) X. h% W
//方法体0 h7 ? k5 v: {, K' m
}" p" Y, s+ r4 J' r& Y8 f4 o
public static void main(String[] args){}2 d/ B8 R; n2 r- G* P
如:
0 B* u1 c; r# | public static int f(int x){0 F6 d q$ m; k% l) J
int y = 3 * x + 4;; D# Q; j6 R, f7 Z, v9 k! ^
return y;
- |6 R8 X9 }1 E+ v7 r }/ H! t3 ~, E) X8 t
4) 如果有返回值定义就必须有return语句, 返回和返回值类型
6 v5 X( _; ?& G! D) A 兼容的数据
# I4 |# s8 k& j3 ]0 \; r+ { 5) 方法的参数和方法内部的变量 都是局部变量,
* B2 \: g5 @ _$ M$ s( v$ W* [ 这些变量作用域只在方法内部!7 s# G8 U3 A( J& W# Y
6) 实参: 方法调用时候实际传递的参数变量. C5 N0 C- Y$ c; ]) }- r8 C' h; W
形参: 方法的参数定义,是临时变量.
, ]9 M( Y! x2 E- ^1 n
+ s# {7 i$ x4 v/ X2 t2. Java 运算符
$ M/ Q1 E7 u) m& e0 b 1) 数学运算符 + - * / %1 O( L; i0 {+ _ k, O8 ~
A 运算的封闭性(补码运算的封闭性):
/ i( u" M0 S5 ^ T: G 1.同种类型参与运算(可能需要自动类型转换)- O9 _# t( B, y0 D, }# ]2 d
2.返回同种类型(可能发生:上溢出和下溢出)
: p8 a+ O4 r6 c8 ~; t3 F$ o 3.byte, short, char 按照int运算
2 q2 u- n' `1 }; c9 w 如: int a = 1 + 'A';
) u* i5 d( _' _' A5 ^1 S B. 整数的除法是整除% f) F) g% K; U
1.除以2相当于移位运算(移动小数点)
7 l4 x8 Q: k4 T C.Java中字面量的运算被Javac优化了, 优化为一个固定的常量.% n/ D; q2 q: C' ?( Z
D. % 计算除法的余数
& ]/ v8 m! i; [. c1 X/ {7 h3 @. t$ y9 a 1. 0 对其他数的 余数 是0, R2 n6 Q9 w9 L' I
2. n%3 是 周期函数, 函数值 [0,3)
8 H. P/ f+ `2 e4 v& { 3. 负数的余数是负数(考试可能出现, 工作中很少用)
% i- c5 A1 d2 D3 V* |! I' p8 d- \* ?
2) 自增(自减)运算 ++ --
% t! f+ F! S6 L* X 1. 可以将当前变量自我增加(减少)1
# G% u* B+ g! n! ~ 2 i++, 后++, 先将i的值作为整个表达的值, 然后将i增加1.# W9 n5 N0 t; c
3 ++i, 先++, 先将i增加1, 然后将i的值作为整个表达的值.
% H) U" j" {* W int a = i++;8 [2 i' I5 j5 q0 Z n5 t6 p7 q) V9 ^
(i++)%3% }/ K, @ k& Z' U
* [2 Y& B) @+ n4 Z6 l! R& {/ Y& _
3) 逻辑与比较运算
9 J8 A! l8 G) E 1.逻辑运算 与(并且)&& 或(或者)|| 非(否则)!
. l8 P2 c2 v/ ^% p# d! ~ 非短路的逻辑运算 & | , 比较少使用, 逻辑不合理5 Z, b6 e$ X0 O8 m5 H) N9 M
2. 比较运算, 比较变量的值, 就是逐个"位"比较值: > >= < <= == !=
z) q! y1 D9 x 基本类型变量的值就是基本值如: i=18 p" B% m; z( |3 D o) e) m
引用类型变量的值是对象地址值.(在面向对象阶段详细讲解)) N* `. k" f9 `* t' x
& O' \! h- \% @- }4 A4 n$ ]
int i = 1;
6 y4 ~3 j; _: A long l = 1;0 }7 y# K& I* I, `% I! {3 |
System.out.println(i==l); //true. y; ]* \2 @1 }0 S: c
4) 条件运算符(3元运算符) # r# c/ S, ]8 _ f
语法: 条件表达式 ? 表达式1 : 表达式28 u) T- M& n2 a' m0 N" m
当"条件表达式"为true时候, 表达式1作为整个表达式的值,
$ f) h1 G+ }* H/ P g! P) `8 E5 S+ U 否则 表达式2作为整个表达式的值
% Y9 @$ L( X; n4 k$ v3 x 如:
' u6 D3 w) U2 F) P boolean isBoy = true;
+ v( I# o; V' |" A int level = isBoy ? 2 : 3 ;// 2; _8 H1 h5 P( c: Z9 w
$ s' f1 n- H/ D3. 分支流程控制
: t d5 n' c4 _- C9 \ 1) if ... else
( w3 J( o- ?0 f( c5 y$ q 语法: if(布尔表达式){1 W& D1 P5 [; }) K/ T/ ]/ S( V3 k2 Q( R' I
//语句块..* F) V/ F6 P7 ~) ]8 R3 D2 k
}else{4 W/ N; }' l, A% \
//语句块
5 q+ H- J% S; y1 t: b5 u* c }2 s5 [6 H. x% f6 u' ~6 W0 W' U
嵌套: if(布尔表达式){
* ]9 o$ j9 H* } //...
* Z2 }9 d W3 R }else if(布尔表达式){) S3 I6 n* I+ O4 k+ M7 Y f
//...
1 w3 \3 _* i4 z6 |4 s' F }else if(布尔表达式){9 P- y- u, u5 ?7 m$ r! h- A g
//...4 x. k8 x: g# y4 K; j9 Y
}else{
- j3 _8 I! ]& n# n# {- j2 R //...) @4 R( N8 D, e% y! ^ R# r
}
; }) ^+ |& i$ J0 ]6 ~2 v! N6 [! d( p+ c6 x
2) switch ... case$ n: X6 D" M3 N' Z) L. Q: S
语法: switch: 开关, case: 情况下* t1 o9 J/ d6 v2 T$ y6 A4 ^
switch(整数表达式){
+ S, O$ X1 J P' c* u( N2 z5 K case 整数常量1:: ?# p$ A; A' z% E
//语句序列
6 q% e1 j* U" P/ g break;
$ \+ ^+ @! |( z% V case 整数常量2:
n1 N6 ~0 h {! m //语句序列
# [3 p. x7 j3 I break;. u7 T/ t8 D% L" k2 W3 h$ P7 f4 A- M
default: 5 `$ A$ t' q; s! W$ Q1 h- Q
//语句序列
2 g. [% C5 w& N+ q' `/ L7 t }! j; j; \+ c! ^2 J5 [
A. switch条件: 只能是整数(int byte char short)表达式7 [* G8 N6 A0 R' A j
switch 不能处理long 或其他类型4 B9 `; v" a/ O) M7 I
B. case 只能是整数(int byte char short)常量, 不能使用
: n- T. `7 H1 D 变量及表达式. 如: '中'0 x& w! I7 c! t
C. break 跳转到switch结束继续执行, 可以根据业务逻辑是否使用
/ W6 V+ ~! r; `# B; B& b 经常都写break
1 w$ n* `. \" W1 n0 K5 |8 T! I" {5 a+ e F
4. 循环控制, T. e+ @1 T1 `( G3 |
1) While 循环控制
1 s" x1 L' \% B' j. @3 i" Z1 H: } 语法:
& k) t) z* H% O0 d |- @1 f while(布尔表达式){# @& A! w, ~9 d; H
//循环体 语句序列1 @9 J/ p) Z9 b$ x
}% J6 e# M. f- d! Q
9 r# l7 f" V4 T) [' \4 f8 E# j3 k* q+ @' P1 i
|
|