该用户从未签到
|
1. java 的方法Method (函数 Function), 功能, 动作
( Z E% Z, p" |) N) C0 r 1) 方法就是函数: y=f(x)=3x+6;
% X/ H4 J, K' d" d/ r/ s 2) 方法的语法( ~5 r) G) t4 s# u! _
(修饰词)(返回值类型)(方法名)(参数列表){" @1 k4 s7 \0 H5 T2 _) P( F( A
//方法体5 w$ e. n8 T6 r2 f7 k. P
}% x7 D5 }& W9 }. `6 q9 D; l: n' F
public static void main(String[] args){}6 H" R C1 ?- Q2 d% N8 D f
如:3 D8 U, |: I9 t! g8 H! Z
public static int f(int x){: u4 y4 _% c( O% M
int y = 3 * x + 4;3 f% k# u7 h6 S/ l5 }$ W( j$ W# |
return y;5 k& M4 l: y8 {- f
}# ^) p7 i, \( \/ ]8 @; G
4) 如果有返回值定义就必须有return语句, 返回和返回值类型
* Q- O. Q: o( d' O7 C( V% { 兼容的数据1 O: x3 f" B% M3 k
5) 方法的参数和方法内部的变量 都是局部变量,) i- e0 m5 o" w: ]% P
这些变量作用域只在方法内部!
+ R# M R8 D3 A3 G 6) 实参: 方法调用时候实际传递的参数变量) O Q; u; M, J! B7 ]
形参: 方法的参数定义,是临时变量.
' C; ]5 H0 ?& V6 G3 m9 ~
2 p+ s' x( @+ _/ l8 @; l0 S2. Java 运算符; e% @. j5 r( M1 g `2 E Y
1) 数学运算符 + - * / %
4 i; k, ~$ F/ I& g" C A 运算的封闭性(补码运算的封闭性):
$ h' U4 A* g4 _+ b% C$ x( R, R$ P 1.同种类型参与运算(可能需要自动类型转换)) J* A K* h/ x" _' U, R
2.返回同种类型(可能发生:上溢出和下溢出); A3 b- h5 |! P5 ^$ Y7 g
3.byte, short, char 按照int运算
; M, K8 u1 Y7 ]& L" D 如: int a = 1 + 'A';2 a% v2 f1 i% _' n1 g/ P. X
B. 整数的除法是整除
& A4 Q6 N7 f. J7 Y, E1 U 1.除以2相当于移位运算(移动小数点)
; U" R) `" J! S, n+ }' z( w C.Java中字面量的运算被Javac优化了, 优化为一个固定的常量.
3 ?6 T* t- ]1 N8 |6 _( | D. % 计算除法的余数
" b- S) [" F0 a$ t( X5 ] 1. 0 对其他数的 余数 是0
5 ~, {4 [) W7 }, } M5 _9 M 2. n%3 是 周期函数, 函数值 [0,3)0 D# ?1 q# D; c* b9 V- H( e' Z
3. 负数的余数是负数(考试可能出现, 工作中很少用)- K2 T# {( z" F
7 G3 _0 H: D. \8 C4 _ 2) 自增(自减)运算 ++ --
8 o# f; y g. G0 R _ 1. 可以将当前变量自我增加(减少)14 o" L* Z$ L+ g3 {, t
2 i++, 后++, 先将i的值作为整个表达的值, 然后将i增加1.7 \: A/ _ M, z* L5 B D/ Z& f6 X6 u
3 ++i, 先++, 先将i增加1, 然后将i的值作为整个表达的值.
2 m6 m$ \3 {8 W int a = i++;" p; Y7 V M& h
(i++)%3; i4 m% s4 s+ W8 P" R& n+ Q
) v7 v/ O3 a/ q2 }2 a1 [! w
3) 逻辑与比较运算
1 w$ X8 } f% ?( u% o 1.逻辑运算 与(并且)&& 或(或者)|| 非(否则)!
" o; p2 C% `- O2 g* p D$ y 非短路的逻辑运算 & | , 比较少使用, 逻辑不合理
) Z& O7 v0 T- h, K! g 2. 比较运算, 比较变量的值, 就是逐个"位"比较值: > >= < <= == !=
( |! a/ l' O, T& T" J 基本类型变量的值就是基本值如: i=15 z$ p) J" ]- ~) p7 r
引用类型变量的值是对象地址值.(在面向对象阶段详细讲解)
5 b' [, h6 ~0 o( N
) q# q$ |. j- C) R int i = 1;
8 I. H# w( j, h1 b. @ `: B9 j3 o! z long l = 1;
+ n( X6 P1 Y- y5 \; B System.out.println(i==l); //true
7 [8 K' V+ @( Y 4) 条件运算符(3元运算符)
$ X+ b. b! Z8 W z3 z6 n5 N 语法: 条件表达式 ? 表达式1 : 表达式2% R4 L# S2 P3 Y0 c8 z
当"条件表达式"为true时候, 表达式1作为整个表达式的值,
/ v% u: m: @" q1 [# w8 e! j 否则 表达式2作为整个表达式的值
) }! O7 g4 v6 ?/ d" R 如: 6 v1 n! J6 w' y, ^
boolean isBoy = true;
6 Q# J; Q0 Z& L$ ^ int level = isBoy ? 2 : 3 ;// 2
7 {; R* T( f5 c2 _% R) M$ _: F
5 v4 s$ _5 _5 P! j7 [. W' B( a2 h8 c3. 分支流程控制
7 T! H: d$ s; `4 L8 E 1) if ... else M4 Q4 |- G3 {' }
语法: if(布尔表达式){
" T' m: f8 c$ n( \ //语句块..
. b! i: `- m$ G, u; i }else{1 |$ j8 Z9 Y% |& `
//语句块* p/ ]. g6 X; C% n$ s0 j! i' n# B2 ?. |
}- A1 M- U h! a0 h
嵌套: if(布尔表达式){
' m6 A" b! n5 X& Q* z, \ //...: }& f3 G" Y3 Z& W- x
}else if(布尔表达式){
: ~% F, ^/ r- v } //...) t, k- t( x. s1 r, G" Q7 O& [
}else if(布尔表达式){' n5 v" { B& B! h6 Q2 l
//...; r# q( l" P" f9 B9 z! L
}else{# ~* T- c& \4 y6 }. f
//...
5 R( z/ @* h/ z" o5 a8 r8 ? }# c A% }' a8 b# f
) z4 j8 n) T5 ^% `: P 2) switch ... case+ o5 o8 f9 F3 ?! E
语法: switch: 开关, case: 情况下8 @3 i% Q0 {& q
switch(整数表达式){
1 n0 V( j1 M5 B) V* l! c3 b L5 I7 f case 整数常量1:
2 k w9 ]7 y- t //语句序列
& _- v3 _; c( I8 K break;
* S" G; m- K& }: V2 h case 整数常量2:& V# c0 ?% Y, S# ]* G6 q# m
//语句序列
2 t: v, ?4 h8 x. V3 T3 f0 W; I break;5 s' c, h1 d( g1 m T9 b8 w
default: 4 X8 L; T' K) c
//语句序列/ G5 v" E/ r- N- ^
}
$ |( c% T( _2 m A. switch条件: 只能是整数(int byte char short)表达式
+ O, `; k3 h% M. P' `/ j, m switch 不能处理long 或其他类型: _! |' N( _8 l' X
B. case 只能是整数(int byte char short)常量, 不能使用8 i* F/ T9 w" z3 v* s3 v
变量及表达式. 如: '中'
2 j4 [5 \3 S' G H/ t! L C. break 跳转到switch结束继续执行, 可以根据业务逻辑是否使用
4 S! i' q7 P" ^ 经常都写break9 N) z9 H* i9 I0 \% Y% ~
1 R5 t& C7 p/ J. q9 W, a# I4. 循环控制
* H9 R+ p) A. H2 \) s; v7 i 1) While 循环控制' A4 ]! W9 P! ~7 u
语法:- n& T. `0 A6 q. J# m
while(布尔表达式){: q8 E: y/ \( a4 {. J- H! U- [0 }
//循环体 语句序列
9 N3 ^' ^6 V7 @ }6 e! f' Q5 f; N. p8 {& Q, `) j
! b5 g8 g. t/ U2 S- e
3 j, J+ M( I6 h# E! n) H8 ^; F ?2 ^( \& p |
|