|
该用户从未签到
|
1. java 的方法Method (函数 Function), 功能, 动作$ Z: [: L, @ G4 M7 i' ]0 k
1) 方法就是函数: y=f(x)=3x+6;, C# Q) S1 h5 }# C7 W
2) 方法的语法7 B$ k$ o2 A2 \$ w
(修饰词)(返回值类型)(方法名)(参数列表){
7 d- G/ ~# Z# }# Z, d //方法体" Q7 o( T J1 F8 H% v v7 |
}
% X1 g" \6 l8 W0 [. @ public static void main(String[] args){}' s1 i0 U+ t$ D I
如:
/ ^/ M p0 d% H) m3 I, _ public static int f(int x){
/ R8 Q: W! @/ G1 z int y = 3 * x + 4;+ o O( O1 e, @% L$ ?
return y;: d, d# r( R' F* E7 E
}. B, Z# L& C0 K/ Y
4) 如果有返回值定义就必须有return语句, 返回和返回值类型5 ~. D" _% M6 S- ?6 P
兼容的数据
* M# u" w- d3 B, e 5) 方法的参数和方法内部的变量 都是局部变量,
: g! N* h5 H4 x 这些变量作用域只在方法内部!2 {4 n, G4 Q) G
6) 实参: 方法调用时候实际传递的参数变量
3 G$ A5 L" X0 c+ u) U6 s 形参: 方法的参数定义,是临时变量.
/ J" w8 Y; B) O/ J7 B& [2 K1 w0 X0 P) t/ i
2. Java 运算符
. @, m! N2 A+ g; i+ ` 1) 数学运算符 + - * / %
, n+ Q( r2 R5 y& V# N9 n A 运算的封闭性(补码运算的封闭性):
0 w7 j7 {, `* w5 U 1.同种类型参与运算(可能需要自动类型转换)% d4 A/ C8 c2 Q' \ d
2.返回同种类型(可能发生:上溢出和下溢出)
0 X1 m! p1 _& j; f& g9 i( n. e# M0 v 3.byte, short, char 按照int运算( m% o. w- ?+ B3 U! S/ C0 Z
如: int a = 1 + 'A';
4 R0 D6 N2 W' v/ h5 ^ B. 整数的除法是整除/ d0 C* c! M9 i$ o; T3 h; f
1.除以2相当于移位运算(移动小数点)
+ W6 C. }* b3 L( n. J6 @1 q C.Java中字面量的运算被Javac优化了, 优化为一个固定的常量.
: S! Y* b, n4 z* w. S D. % 计算除法的余数2 G' C2 \9 t9 j2 U; u' u/ l
1. 0 对其他数的 余数 是0
6 g Y" G3 S; d5 ]3 m6 @5 m3 { 2. n%3 是 周期函数, 函数值 [0,3)
0 W, K# g1 Q4 x9 h6 u 3. 负数的余数是负数(考试可能出现, 工作中很少用), K- E4 s4 S- W$ r) l
- q, n. `. w1 |- g" B, |& ^
2) 自增(自减)运算 ++ --& g$ x( D: p5 R2 G) I4 h5 V. y, O
1. 可以将当前变量自我增加(减少)1
/ x t/ q/ q: d) u 2 i++, 后++, 先将i的值作为整个表达的值, 然后将i增加1.$ I c7 Y1 K3 @; \- ^. ^( b5 {* m
3 ++i, 先++, 先将i增加1, 然后将i的值作为整个表达的值.
% |. H+ Y$ S. M! W/ Z" D: U int a = i++;% V% [! {" H' p5 n% {; ?
(i++)%3' W3 _3 f E" ~7 @( U1 n3 K
0 f# l0 d$ b4 T
3) 逻辑与比较运算 ; X$ a' s! `7 H. y X
1.逻辑运算 与(并且)&& 或(或者)|| 非(否则)!
/ @0 i' J. ]! m3 y 非短路的逻辑运算 & | , 比较少使用, 逻辑不合理
4 u9 [0 d c+ d; H3 W' o3 e 2. 比较运算, 比较变量的值, 就是逐个"位"比较值: > >= < <= == !=
8 n; m5 {2 ?! k) `* U& B 基本类型变量的值就是基本值如: i=1
$ {1 y/ o: U9 C* s6 h$ W2 { 引用类型变量的值是对象地址值.(在面向对象阶段详细讲解)- \) [- X& p, q* g' o
, L8 `& J' X" |2 W" G
int i = 1;
) Q/ {3 b, p7 U& A5 O long l = 1;7 _! y l) h; S0 u4 M$ T0 t+ e
System.out.println(i==l); //true7 H% |5 N% Z5 K
4) 条件运算符(3元运算符) - S+ @. i6 _, l1 l
语法: 条件表达式 ? 表达式1 : 表达式22 }, w7 M' p7 N. o- b. I+ {2 b
当"条件表达式"为true时候, 表达式1作为整个表达式的值,
! I' H: b# G) Z% {7 N y 否则 表达式2作为整个表达式的值
+ z! j1 }" l2 {- S( w 如: |0 r( V7 w& f/ ]/ U0 A
boolean isBoy = true;! F4 ]/ E# w6 t" _2 G
int level = isBoy ? 2 : 3 ;// 2
- X2 {$ P7 b x" k, S6 O& R2 [2 q1 O* e3 w
3. 分支流程控制
0 B( N1 j" _+ I# p+ l$ ^ 1) if ... else
. Y/ ~. m( R0 t6 x* a6 V- ^ 语法: if(布尔表达式){
X5 Y2 l5 f. a' S //语句块..
# ^1 V5 i# k3 A* o }else{, B, T6 u' S0 x2 ?
//语句块. E+ w* ]8 e# I" C; k
}
# W; `5 O. P1 ^ 嵌套: if(布尔表达式){
. W# G$ E( [; {5 ~: v //...
# L" Y. D! S: k }else if(布尔表达式){
/ C6 s2 ?% p2 Z* ^1 G0 s; e //...
1 f0 v- o' w/ c2 c, z }else if(布尔表达式){
5 j( t8 ?9 y! Y' M0 z, ] //...% i) X% ~- p- Q9 {
}else{1 W' }2 a" x L4 I' N; P
//...* T6 @2 W. o* _4 u0 W ]; O' T
}8 A- A1 D, @& z+ I+ \+ V1 d9 g1 f
4 i. [/ Z ]: L: z1 N 2) switch ... case+ V0 H# L1 O, Z. [
语法: switch: 开关, case: 情况下
' v% ]/ Z; b; E' n/ l switch(整数表达式){ # V& P3 ?3 S# b: L
case 整数常量1:
* n4 f. |3 i6 L1 S //语句序列
9 P$ O! B" g% L" g7 H7 @9 Z+ c! a8 f break;
+ h$ q% P+ H' ~1 m% @, m0 W4 a% l case 整数常量2:3 Q3 x7 J, R* p9 J3 ?/ B% m
//语句序列$ i+ x6 x/ U( p- X5 J) M* {( Y
break;
( ?" M4 C* p) A; c3 @0 n default:
& m, N1 y. | B; C. k //语句序列( K8 e+ q9 H- j- y- @5 a( ?( Z5 c: r
}/ O( b3 K. @5 d! C; }7 x1 L6 d p
A. switch条件: 只能是整数(int byte char short)表达式
6 I. Z1 k- D" u' C. ~ switch 不能处理long 或其他类型
1 W* f8 t, c% m2 t6 Z" Q# i B. case 只能是整数(int byte char short)常量, 不能使用7 S: t# w) o4 o) \
变量及表达式. 如: '中'
: `1 Y; o7 g" t3 f" D C. break 跳转到switch结束继续执行, 可以根据业务逻辑是否使用. S( L" b$ N+ S, u# Z+ n
经常都写break
4 W. Q9 U- T; e
0 F' Y5 Q! v1 K. \4. 循环控制
/ z; }/ g- Z: I, I3 I; y$ x 1) While 循环控制
) y: L& @. c, n+ N" Y 语法:
5 Q- ]/ g. R0 z/ _5 ^. ^7 ~) L while(布尔表达式){
# d' e+ t5 \: A4 Z9 o2 E //循环体 语句序列
/ n1 Z* `! ^* x& k' d8 U/ L }$ V* g. a6 ^8 {/ s2 V0 K5 e' C7 P6 I
' p# K) R6 ^: ~+ i& f% [* H# S- L5 W4 r |+ N
2 p$ f5 d# r% H0 `$ Y. F D
|
|