|
该用户从未签到
|
1. java 的方法Method (函数 Function), 功能, 动作
S2 _5 ]3 H9 V' |; @ 1) 方法就是函数: y=f(x)=3x+6;' l" w# A V/ g, m# Y0 M
2) 方法的语法/ _6 Y7 v+ {# P- k1 K2 h5 ^$ @
(修饰词)(返回值类型)(方法名)(参数列表){8 d/ Z' U5 x6 `+ C! I& J4 H1 h; n
//方法体4 s1 D9 i0 X6 a# Y& V# Z' i! \- Y
}
6 m8 r# h8 H& K$ [+ L3 U public static void main(String[] args){}
+ M5 q7 A H0 r9 l* q& r 如:
- c% O; b/ i$ M8 ?- l6 y+ k public static int f(int x){4 O, Q# e# h) ~( C, E3 H3 ~0 B; D
int y = 3 * x + 4;
. f6 C7 x& I& s+ c return y;& K8 b: ?' c6 ?* f; ^) V
}# H0 S) ~7 M: H9 Z' q7 g
4) 如果有返回值定义就必须有return语句, 返回和返回值类型
. J, T4 D( v$ [ 兼容的数据
) r1 U# b3 t: B 5) 方法的参数和方法内部的变量 都是局部变量,
, j. H: B; S8 ~* _* b: C: _ 这些变量作用域只在方法内部!
( X: G1 ]# S _8 c 6) 实参: 方法调用时候实际传递的参数变量; c5 @9 m9 q; x3 H
形参: 方法的参数定义,是临时变量.& t% B- I+ H: W4 L/ Y
9 ^, N9 S3 a0 p3 P3 ]* B# ~
2. Java 运算符0 o# d9 q4 |4 O2 K
1) 数学运算符 + - * / %
# G0 D, E1 D/ p1 W A 运算的封闭性(补码运算的封闭性): 2 p% c, u g9 \5 w2 S
1.同种类型参与运算(可能需要自动类型转换)
7 K; ~ F8 S, | K 2.返回同种类型(可能发生:上溢出和下溢出)
, t9 w. ?% \" J7 M3 c 3.byte, short, char 按照int运算# C9 V9 ~& D: | a9 X# H1 i" M6 R7 Y
如: int a = 1 + 'A';
2 w7 n6 Z7 R8 N" q2 c B. 整数的除法是整除$ Z, V s ]2 r
1.除以2相当于移位运算(移动小数点)
9 c, Z' C* D+ ^$ z3 E C.Java中字面量的运算被Javac优化了, 优化为一个固定的常量.* k4 I' D/ ?4 f) a( @3 s4 h4 @9 w+ o
D. % 计算除法的余数' j K: R- O$ ~9 a1 Z7 [
1. 0 对其他数的 余数 是0! @% ~3 d/ ~. J9 e
2. n%3 是 周期函数, 函数值 [0,3)
% y. j3 g* K Y9 q 3. 负数的余数是负数(考试可能出现, 工作中很少用)
5 r6 o, v3 @ d4 N( }2 [2 p6 Z1 c* ]1 m8 m
2) 自增(自减)运算 ++ --
6 Q" C* U7 s3 l/ S7 l# W4 j6 v" e 1. 可以将当前变量自我增加(减少)1
2 Y' I5 P Y7 b: `( G 2 i++, 后++, 先将i的值作为整个表达的值, 然后将i增加1.. C. U9 a8 i" g- d9 w
3 ++i, 先++, 先将i增加1, 然后将i的值作为整个表达的值.
2 ~3 E: i& y7 |# @ int a = i++;
" A# t F) b2 [4 v (i++)%33 @9 ?1 B. Q7 Z& ?" M& y# w
/ s. P5 j: ^4 [, I( c! v0 Q/ \ y3 R 3) 逻辑与比较运算 : y3 n" n; R; Q
1.逻辑运算 与(并且)&& 或(或者)|| 非(否则)! $ P, }1 p K4 F( Z( u& U6 J, F6 c
非短路的逻辑运算 & | , 比较少使用, 逻辑不合理
" L. H8 }# I, o& |) j 2. 比较运算, 比较变量的值, 就是逐个"位"比较值: > >= < <= == !=8 f- k1 w- Z# W" I7 ^* Q
基本类型变量的值就是基本值如: i=18 X2 X5 r# b, V- t; Y
引用类型变量的值是对象地址值.(在面向对象阶段详细讲解)6 l6 F4 S* S5 [. o
$ }9 Z4 N( V/ W- @
int i = 1;$ Q: A4 ~; `5 Y
long l = 1;
; m. g2 c A: ]# Y( ^+ ~, C System.out.println(i==l); //true
' r1 m& ~$ Y7 k1 V' h7 z 4) 条件运算符(3元运算符)
+ c6 _ B/ e6 ~, [ 语法: 条件表达式 ? 表达式1 : 表达式2 A+ _6 j) h+ k$ d
当"条件表达式"为true时候, 表达式1作为整个表达式的值, " W" g7 X% U c& M, D5 K! z% m) W2 ^. S
否则 表达式2作为整个表达式的值
6 m6 Y+ O y- l7 p7 w& P 如: / S6 l$ n. z2 y
boolean isBoy = true;& p- u4 p" j- y2 e4 F$ N6 M2 v
int level = isBoy ? 2 : 3 ;// 2
$ _2 f2 N3 Y# d+ D
* k; `4 q# R- U: G) |3. 分支流程控制% U& w1 m. [0 Z. P& E6 N
1) if ... else
* v( `8 }: o: S1 P' }$ o+ w- H 语法: if(布尔表达式){
6 v2 D' y, b" K/ b+ { //语句块..7 B& E% [5 w- w) O! c- l
}else{
" s5 ]% A2 R0 m, ?2 l8 M //语句块4 C1 i) s' d/ e! n9 n3 V
}
7 h' d5 m8 F8 g# J6 o8 C 嵌套: if(布尔表达式){
$ N% h, U# k" @6 z8 K4 g" y9 K% ] //..., f: O6 W9 f2 x8 B9 X) T
}else if(布尔表达式){
; T! Q! V! s1 }& u //...* \0 \& n0 m+ N& X( I# H& o
}else if(布尔表达式){
8 g( q; R5 s/ q- e2 m //...
* V, l& [- s/ x }else{
8 G" b& r+ ?/ P: P. K //...
7 ~2 F4 x" M5 p+ y5 \: c4 m }. P1 e' V- e% M9 o6 H3 Y6 ]& u
% A/ P q" l/ P) R
2) switch ... case8 l7 \) F& s0 M9 W0 N
语法: switch: 开关, case: 情况下9 `7 D+ a( c/ y+ ^3 G) y
switch(整数表达式){
1 g: v& a: t4 x case 整数常量1:
3 _2 c; s! `8 o c1 {4 s/ [ //语句序列
) x1 N8 s9 Y5 f6 y6 k7 Y" w break;+ t6 Y4 q9 ^. E5 n: D/ I% f
case 整数常量2:3 P, N9 R- R/ K* ]2 O
//语句序列4 U5 \2 c+ v) E G, q
break;
0 n/ w, p+ {/ o# D6 M# [8 e _3 A; I default: : @% u2 |& m a. r# C2 _0 F+ @
//语句序列# q6 [8 @) }/ F3 V$ r/ ^
}$ P- a# v8 ~- T
A. switch条件: 只能是整数(int byte char short)表达式5 @6 F6 a' A d& |) v
switch 不能处理long 或其他类型
& T0 I, Z0 U; y* q# _ B. case 只能是整数(int byte char short)常量, 不能使用. H2 U# B/ e* k9 I2 C( y& `. V; s
变量及表达式. 如: '中'' M- k: |4 _5 `
C. break 跳转到switch结束继续执行, 可以根据业务逻辑是否使用# t- t, N0 |& _' k
经常都写break
8 T' r+ b! c% p. S; h8 S# H3 b$ t' c) p! x
4. 循环控制
& b h* d" v- h5 g0 s% a; k9 _ 1) While 循环控制- D, v1 N" f2 G: ]+ J
语法:" C( R8 z1 d8 O6 b7 n
while(布尔表达式){, x+ d: S7 M/ s+ m
//循环体 语句序列
$ G* |% c' [. `4 ]7 J }
& W% A2 X9 f y6 _+ g3 a D9 k* I6 E+ X
% ^: |7 r: L3 P9 ]2 I& k |
|