该用户从未签到
|
1. java 的方法Method (函数 Function), 功能, 动作
, \/ j0 D; a4 `" U 1) 方法就是函数: y=f(x)=3x+6;" U5 `: l3 R4 _8 Z' m
2) 方法的语法
! {3 R' l+ r* @ (修饰词)(返回值类型)(方法名)(参数列表){! e- J, ?9 I0 V
//方法体
8 W7 z* }4 I6 A8 |3 ]1 o. V6 h }
; @; W# t# e: S+ | public static void main(String[] args){}* s' u/ d/ F' S1 Z3 q. y
如:
x5 S; ?7 J8 F; H0 u' I public static int f(int x){* k0 q% ?! M( l' A& O1 Z
int y = 3 * x + 4;* F# ?4 A) k* G. Q
return y;
9 O& t) ?5 D. o0 m; f" e4 E }
; k2 p3 ~1 }8 j" i3 ^4 Q g" O 4) 如果有返回值定义就必须有return语句, 返回和返回值类型4 }, \2 Q% G5 K! f, s& ]/ N
兼容的数据- U* Y# P% `9 p& L8 U1 |; v3 k
5) 方法的参数和方法内部的变量 都是局部变量,
: u1 G6 v4 @* |/ K 这些变量作用域只在方法内部!
& F7 \: r$ K4 L8 @- q1 p" E' p 6) 实参: 方法调用时候实际传递的参数变量
@! ]( ]- N8 W5 P3 Y 形参: 方法的参数定义,是临时变量.8 P {% u6 R8 s4 b
5 k' v' ^" D, @7 \8 a; y- [2. Java 运算符, ?& i! u3 i2 @+ v+ O1 s
1) 数学运算符 + - * / %
( V1 i( W2 A, J- N A 运算的封闭性(补码运算的封闭性):
8 }, i! O& t1 }# H: e 1.同种类型参与运算(可能需要自动类型转换)
- Y' Z0 g* w. D0 o q+ I 2.返回同种类型(可能发生:上溢出和下溢出)" y. T0 C: V' Z1 P& R
3.byte, short, char 按照int运算
/ }. B, k8 |2 @6 `7 Q/ A 如: int a = 1 + 'A';
% m. b6 v u, S6 L' o1 H B. 整数的除法是整除6 L( N! \2 ~5 ^
1.除以2相当于移位运算(移动小数点) 4 W S1 e5 @" }0 f
C.Java中字面量的运算被Javac优化了, 优化为一个固定的常量.' i, r9 l) s) p% Y
D. % 计算除法的余数# N+ g# N$ w. `8 w' K
1. 0 对其他数的 余数 是0. C/ b4 F1 K- M1 {
2. n%3 是 周期函数, 函数值 [0,3). \. h# }& I4 |4 ?0 a- a }2 G+ J, v
3. 负数的余数是负数(考试可能出现, 工作中很少用)
0 c1 f+ E9 A+ i7 ]2 y& |5 `5 r0 p8 ^; k- Q" o
2) 自增(自减)运算 ++ --
6 R9 Y2 V1 z+ U/ M7 i7 Q2 a 1. 可以将当前变量自我增加(减少)14 [# w" U- k# G0 u0 o; W
2 i++, 后++, 先将i的值作为整个表达的值, 然后将i增加1.
% z2 m8 a9 a& a' c 3 ++i, 先++, 先将i增加1, 然后将i的值作为整个表达的值.' _% @; f9 a s
int a = i++;
' I e8 ` a8 w& ^7 s$ \$ S (i++)%3
. `( {! p+ f$ F s* L
4 ?3 ]! Z$ G3 t& U) u% C 3) 逻辑与比较运算
* q' Q% b, O, ^! V* J x% x, G! c 1.逻辑运算 与(并且)&& 或(或者)|| 非(否则)! ) e- a' ^- {: Z1 g2 I8 b
非短路的逻辑运算 & | , 比较少使用, 逻辑不合理
; _: p4 L% u* f& \ E- h8 |: o- ? 2. 比较运算, 比较变量的值, 就是逐个"位"比较值: > >= < <= == !=8 T( A) q& F7 ^- T2 A
基本类型变量的值就是基本值如: i=1
4 D: `9 m# b1 a6 N 引用类型变量的值是对象地址值.(在面向对象阶段详细讲解)! p* Q& R9 a! _. b
* Q# d' e* _4 l5 V int i = 1;
+ F; T8 V p( P( b$ J long l = 1;
6 k; ]0 M& S E6 n: l System.out.println(i==l); //true, p0 @3 U) j" T7 ^) g* Q
4) 条件运算符(3元运算符) ) _) D4 a% H7 a1 {* T2 l
语法: 条件表达式 ? 表达式1 : 表达式28 G4 i4 K+ `+ Z0 W
当"条件表达式"为true时候, 表达式1作为整个表达式的值,
. a6 e, S' m$ N) `9 y7 w, R 否则 表达式2作为整个表达式的值$ h2 _( j6 \ p7 t- {1 r2 E0 U
如: . C6 z' Q/ S, j) i }
boolean isBoy = true;+ c; R; I* @0 j* p
int level = isBoy ? 2 : 3 ;// 29 K) u6 N0 L( p8 j$ e5 j
+ o8 T; d* e% O0 M; `) z2 \' s" U3. 分支流程控制/ i. o% M2 [ B. ~
1) if ... else
0 F0 z9 @4 _5 ` 语法: if(布尔表达式){
6 y7 U2 H0 u3 K& r( C3 r //语句块..! @9 {5 b9 t. }6 `# p9 K* n% ~# r3 @
}else{8 B2 n" l+ j0 z5 G0 Y! O
//语句块$ n, V& h! \- r; i) Z) h5 S1 |
}- H$ e6 `# d S; v
嵌套: if(布尔表达式){
- w* e3 H9 ]$ _5 Z( K8 y //...) m- J( k' O) q' u
}else if(布尔表达式){! `( y% `8 U8 T$ v3 b
//...
) @; |4 C# l! N: ^ }else if(布尔表达式){
+ z- C: Q: H4 C8 y //...
1 r# ^- K6 |5 q2 ?( P# m8 ~( K }else{0 ^ G2 }" {: y3 j4 O
//...0 y* S* Q- h: C7 y9 g4 A7 W
}! S6 t1 T* r0 V2 \% L/ o7 x
" T3 d3 S9 P- x/ V5 m1 Y 2) switch ... case
4 g2 [8 @5 X0 V. `1 q( a& i: K 语法: switch: 开关, case: 情况下
8 U7 D; c" g& a1 d7 s switch(整数表达式){
7 T9 i! F+ ?' a. [/ [' F case 整数常量1:
. P% o( L( \, N1 R% v4 [, J( ?. ] //语句序列/ k! L3 c: ?1 i8 U
break;
. u& |2 [ q2 E case 整数常量2:
$ \4 K2 i* b3 |% o: p //语句序列
4 n* b: c4 z i1 T2 M0 v) w- U* \ break;
4 h: s8 |( k! J' y; R6 t) c default: 0 u, m, p8 r/ M1 c$ s
//语句序列0 \, o1 h; i' E1 V
}) P5 x. A3 R4 \( G( C# L
A. switch条件: 只能是整数(int byte char short)表达式
5 Q. \$ c0 L! K+ i% T switch 不能处理long 或其他类型5 w, _* j$ \3 O- z) v/ u. c
B. case 只能是整数(int byte char short)常量, 不能使用
6 d( x% A, u2 W2 M3 d 变量及表达式. 如: '中'
8 V* v) m1 d6 T7 \* S) B C. break 跳转到switch结束继续执行, 可以根据业务逻辑是否使用: R* Y C/ F/ U1 L: j
经常都写break2 x$ F& M! E9 }2 A
, [0 w, n( C& l4 o
4. 循环控制
) a. v1 ?. S) p e 1) While 循环控制- r" t L& x& h2 I8 Z
语法:
1 N4 A# i; p/ g: a, A while(布尔表达式){
2 U: Q3 Y5 R0 J9 |' M- y% l //循环体 语句序列5 G, n% e& |: m. ?- c0 y
}
3 C0 r8 L0 T: z+ Y4 n4 w; _' M5 \' M* t, T- ~& O X
9 `) P' ^5 G$ a2 X! B5 I0 ~# L |
|