该用户从未签到
|
1. java 的方法Method (函数 Function), 功能, 动作
: |& o8 V# k9 w6 a; m8 t5 v) Y9 Q$ Z4 H 1) 方法就是函数: y=f(x)=3x+6;
$ V$ |5 {2 d/ c( W. u- V+ v+ U 2) 方法的语法: y6 m# N4 Y ]. s
(修饰词)(返回值类型)(方法名)(参数列表){
! \% d9 T6 z# A9 _/ y; o) B //方法体
9 k! _$ c! h7 o) q9 l }
. `3 C% t0 N, S" q# U6 b public static void main(String[] args){}3 q5 B: c; P* f; c
如:# M: }- N: n; K9 q4 X1 k1 J& M
public static int f(int x){
: D6 T/ i( @+ {* K7 ^ int y = 3 * x + 4;
' O. O& R. k) T) E3 ~: r return y;" w. p; l/ d- b' M* I9 g
}
# j' p+ a" c9 Q5 i8 e 4) 如果有返回值定义就必须有return语句, 返回和返回值类型( x( I% ~: ]: p1 }, Q
兼容的数据- @$ D# g3 S0 E8 C1 {. |9 P4 c( `4 V
5) 方法的参数和方法内部的变量 都是局部变量, s8 y: K0 y" w5 W
这些变量作用域只在方法内部!) H2 S+ F2 x) x
6) 实参: 方法调用时候实际传递的参数变量2 F; }" z# ?; L" Y) |
形参: 方法的参数定义,是临时变量.
, @5 `) J3 U+ |6 U [- I& B8 x( h1 @4 g& \0 ^ ^3 U: m
2. Java 运算符2 M" Q) k( T* g
1) 数学运算符 + - * / %
$ M" Y6 {1 ?) @4 [2 e& o A 运算的封闭性(补码运算的封闭性):
- b1 x# Q7 O8 H! H% j 1.同种类型参与运算(可能需要自动类型转换)$ y9 G8 h. G' j0 J
2.返回同种类型(可能发生:上溢出和下溢出)# n: r% @! T, |
3.byte, short, char 按照int运算% V2 c8 o, y8 ?! [" ]
如: int a = 1 + 'A';
& F9 K. S+ @2 M0 A* H' A B. 整数的除法是整除
5 p2 F9 m: G! d 1.除以2相当于移位运算(移动小数点)
( I- T: @, O; u( z+ M0 o" l C.Java中字面量的运算被Javac优化了, 优化为一个固定的常量.
3 b! d0 T" B: J: e9 F$ Y% l D. % 计算除法的余数
M7 Y1 ~: _" o- Z7 T 1. 0 对其他数的 余数 是01 L- f* u8 T5 N
2. n%3 是 周期函数, 函数值 [0,3)
9 E2 X5 p) M/ B& E/ L. A8 V 3. 负数的余数是负数(考试可能出现, 工作中很少用): A$ P2 l4 M+ D' k" C$ C4 A7 Q
2 T+ {7 z& c; Z9 t
2) 自增(自减)运算 ++ --) x- s3 y! A; {7 u& u
1. 可以将当前变量自我增加(减少)1' {' Q6 }" } q8 O4 R* {% q
2 i++, 后++, 先将i的值作为整个表达的值, 然后将i增加1.' Q0 w; m! v) m5 {+ H/ u
3 ++i, 先++, 先将i增加1, 然后将i的值作为整个表达的值.# J! f- h/ i' `- Z' r! J0 E
int a = i++;
: Z2 ?# L" N$ u (i++)%3
# z9 ^' A |) i) Y6 I' N& J5 ^5 i8 z H; _- i# n
3) 逻辑与比较运算
& K U! u8 A! w. g 1.逻辑运算 与(并且)&& 或(或者)|| 非(否则)! V! m) d% T# ]/ h
非短路的逻辑运算 & | , 比较少使用, 逻辑不合理
( Y4 M; k, Z9 a+ B 2. 比较运算, 比较变量的值, 就是逐个"位"比较值: > >= < <= == !=3 R- C0 b- }- v3 n% L M7 D
基本类型变量的值就是基本值如: i=1
; b* q, y9 v* ~2 G 引用类型变量的值是对象地址值.(在面向对象阶段详细讲解)* y. J& C8 A( |, [
3 O R$ H7 h; d/ S; H Y int i = 1;
2 \5 i4 ^4 N5 U$ _ long l = 1;! H% \' r* A; E) h
System.out.println(i==l); //true
* K: I1 p! ~" ^) r3 N 4) 条件运算符(3元运算符) 8 l. k6 j+ ] h. K
语法: 条件表达式 ? 表达式1 : 表达式2
$ l, s0 P) s" Q 当"条件表达式"为true时候, 表达式1作为整个表达式的值,
d) B# [9 c5 I% m3 \- H# i 否则 表达式2作为整个表达式的值2 n/ @0 [8 @. k4 Y
如:
) m: Z% u4 U; W% C5 ^ boolean isBoy = true;
+ v- ?: t2 N7 F6 X- E int level = isBoy ? 2 : 3 ;// 2
u2 m i; s- G+ `$ J0 G" o7 ?: e9 M
3. 分支流程控制
$ I5 N6 T/ h( a5 _ 1) if ... else( r4 T/ m# E9 B8 n3 r+ C
语法: if(布尔表达式){# D% u; i4 W- U) o9 p @
//语句块..
% H, q; n) C2 i6 X/ ` }else{
2 M) P8 n; W0 F& k //语句块" d7 d$ n* F( V' n5 a
}# V$ J8 W% T" G0 V
嵌套: if(布尔表达式){/ ?8 K* Q) ~! H+ C) s
//...
! t- I, k6 _- x6 ^8 }6 R4 m }else if(布尔表达式){
, ~! A) q; } D2 p' N1 M' {8 Y //...
$ E: b5 u8 Y: B' |: ] }else if(布尔表达式){* X3 b) m4 f, M* ?$ z& v
//..." D. @7 W8 @, q) Q4 y, ?- W
}else{
- i+ A0 V4 k/ f [' u //...5 Z4 X! P' }3 C) ]- o2 f
}! \; d6 \# u! F# p& Y: y0 B
$ @- o/ b9 h# x: K. J 2) switch ... case' \- `% H- h- v7 y7 t& F+ d" @
语法: switch: 开关, case: 情况下
2 \% V4 u+ r- y switch(整数表达式){ : q2 o# s, Q+ G- ]) j! w4 _2 H4 a" b
case 整数常量1:: [; \+ E* w7 \9 j; C$ d, W# _
//语句序列& ]$ Z& ^, s: f _
break;
% s1 u- R: U- F( o: d' f. m case 整数常量2:& a- Y* p( r& n8 D: H/ P( W
//语句序列% g" X5 I3 |8 _% v
break;
! s6 L6 w/ b4 ~5 {. Q# Z default:
$ p2 w/ ]) r3 R% m* E4 ~ //语句序列9 X& s9 R) t/ ^9 z& W+ |" k
}1 w% X6 b& e, }% W5 Y8 R1 t
A. switch条件: 只能是整数(int byte char short)表达式
: O# ^: k& e6 @* a8 w5 d switch 不能处理long 或其他类型( e8 [- X. j8 E4 V% g
B. case 只能是整数(int byte char short)常量, 不能使用
, X4 t; m- C) K+ o; y g% f3 } 变量及表达式. 如: '中'
h! P8 [5 z M; x- h( x% u C. break 跳转到switch结束继续执行, 可以根据业务逻辑是否使用8 n! j, o8 G# s
经常都写break
) Z% o0 m6 S) [. ]- n: ^) E
. Y: N% m+ h0 ^1 S' ]4. 循环控制
( O! D+ X6 Z% A 1) While 循环控制
: m& h/ Z& H% v5 A1 B 语法:/ o. O* Y$ R h# x: ^0 w
while(布尔表达式){5 I* P: }. O) @6 C. c
//循环体 语句序列
8 T2 ]& L' n% j" `- i. D4 a7 n }& c9 u+ m2 Y7 S, h- ^& R" ~) p
( f0 Q" g/ N0 U# l% b9 _9 ], V) U" w# _1 \
|
|