该用户从未签到
|
1. java 的方法Method (函数 Function), 功能, 动作
% ~, d: @2 m4 d5 ]3 c+ u& m 1) 方法就是函数: y=f(x)=3x+6;
) t# v( K& d$ U/ ? 2) 方法的语法
+ r# c# a6 L# t6 F9 B `/ i8 p- b (修饰词)(返回值类型)(方法名)(参数列表){
; [. O& {" e: ]2 W, G9 x) |8 m //方法体
) M* j6 o. e" Z }, ~. `3 u% N( D4 o% i6 Q
public static void main(String[] args){}: l- f1 L- a% O5 Z3 ^3 q: a! \
如:# |4 |8 Z+ {. s
public static int f(int x){
( X" p' `: K" O int y = 3 * x + 4;
3 F) ]. C* J( S8 P9 W3 x return y;
# W- z9 Z9 _/ g- W2 M }
" ?4 d6 J$ U4 K9 f8 B& t 4) 如果有返回值定义就必须有return语句, 返回和返回值类型; l( `( f! Z4 `- W. E+ k7 L& r
兼容的数据, X; Y& }0 Z: m5 X$ H9 q
5) 方法的参数和方法内部的变量 都是局部变量,+ e; I3 H: e* R9 L6 e, i- Q
这些变量作用域只在方法内部!
; @& p+ Q) ~) q8 J4 j W1 t 6) 实参: 方法调用时候实际传递的参数变量1 f; F, ]( o0 Z' `
形参: 方法的参数定义,是临时变量.! Q3 D7 g. m, n$ j4 A
: E" ? D1 T( e- R- |/ t
2. Java 运算符- }- |8 T8 z& @: s+ _" N% Q7 l8 o
1) 数学运算符 + - * / %
8 a4 o8 T5 g& y" G7 v A 运算的封闭性(补码运算的封闭性):
+ q' G9 u' u( y5 G' l 1.同种类型参与运算(可能需要自动类型转换)' y: h* y2 x' f o2 K
2.返回同种类型(可能发生:上溢出和下溢出)/ ^# d* K& F8 L! e/ Z
3.byte, short, char 按照int运算
% E9 Z2 r" @& M( w; `( ^ 如: int a = 1 + 'A';
5 H4 h" q$ f8 L1 v& n B. 整数的除法是整除( |5 d- _( E$ R
1.除以2相当于移位运算(移动小数点)
5 I- L/ E1 A7 ` C.Java中字面量的运算被Javac优化了, 优化为一个固定的常量.2 R2 ]9 V) D$ H6 L; W
D. % 计算除法的余数
4 g% i( Z' A: n$ Z& D 1. 0 对其他数的 余数 是0, U5 Y" g A! O
2. n%3 是 周期函数, 函数值 [0,3)# T+ ~6 ]3 E) J8 R
3. 负数的余数是负数(考试可能出现, 工作中很少用)5 B& R$ p, F8 j
) A* n& F5 I8 A" m: X2 ]
2) 自增(自减)运算 ++ --, d% E1 P7 N9 f' b# x
1. 可以将当前变量自我增加(减少)1+ v( e) c# n2 S' r9 h0 F: t! ]
2 i++, 后++, 先将i的值作为整个表达的值, 然后将i增加1.
1 I' N- E9 B6 z8 T0 \& o 3 ++i, 先++, 先将i增加1, 然后将i的值作为整个表达的值.- H- f% d, P- S% U* V" W
int a = i++;
' H+ r8 l6 ^" q (i++)%3) ^; Z7 D# q/ l( p
/ v) j# p# h! w
3) 逻辑与比较运算
1 t. ^6 W' A% z2 ]; D 1.逻辑运算 与(并且)&& 或(或者)|| 非(否则)!
3 B" i5 \- ^$ k- o: x6 o* u 非短路的逻辑运算 & | , 比较少使用, 逻辑不合理- J6 K& C: X; @" h0 e$ D- G
2. 比较运算, 比较变量的值, 就是逐个"位"比较值: > >= < <= == !=
# r: z0 Z1 I* [0 ?5 I8 A6 F0 f 基本类型变量的值就是基本值如: i=1
1 q$ s- o K8 A9 H( c 引用类型变量的值是对象地址值.(在面向对象阶段详细讲解)
! F7 ?1 N% O' v2 P+ a9 G9 p' h
' ?- p6 j, S* d/ r! V$ I9 t int i = 1;* V6 Y6 |3 i5 H! e8 u4 l, q
long l = 1;
+ O# N% @5 m% K! Z6 `0 C; _ System.out.println(i==l); //true( P* l# g. ~& w1 a/ J8 u+ F# ~
4) 条件运算符(3元运算符)
8 g+ d$ @3 I! u. Q$ p. } 语法: 条件表达式 ? 表达式1 : 表达式2
5 L j) m+ a0 }% g' p2 O) A; z 当"条件表达式"为true时候, 表达式1作为整个表达式的值,
( v# A6 \. }# I7 W: O4 y n 否则 表达式2作为整个表达式的值
; E. J8 F$ v) y/ F/ Y& i9 f 如:
/ j3 f8 S5 l: v8 v& A6 I& x boolean isBoy = true;% a& j% K3 ~; t0 v9 t& G1 k
int level = isBoy ? 2 : 3 ;// 2
( o1 x+ r! N: g" G$ R2 P; L! Z7 _0 c: e
3. 分支流程控制+ ~: x' [. a! z" _6 \& ?, o
1) if ... else
- ~3 U$ n& V/ q7 c( j- @' O 语法: if(布尔表达式){
! K4 `7 j r8 b4 e$ D6 x3 u' f: _0 q! Y //语句块..$ f" z; |/ e4 C8 v- U
}else{# {# ?" q: B- F& Y! ^; n
//语句块
' i, y+ s3 ?1 [; r c) p. \ }/ R# O) b/ h7 ~/ x* a% h
嵌套: if(布尔表达式){6 f) |: l( Y3 B& `8 ~" G& y2 h
//...4 E% T, O8 j+ c
}else if(布尔表达式){
4 l. f1 J, w9 S7 g7 M" i# S/ C //...
' | G5 E% q& _& X1 Z, Z }else if(布尔表达式){: @1 K( J" k+ ~' ]0 D$ |" t$ ~
//...2 Y, y, Y J0 J- c6 ], ?
}else{- C5 P- x" q& k' R
//...8 ^% ~/ Y4 s! V1 z5 f+ y
}
9 l: I5 y) y& F( r; N
& A6 }4 z, ^$ c 2) switch ... case# A1 |; ?, j- G* J
语法: switch: 开关, case: 情况下
0 p- A$ ^3 A, U; S% W" d' e switch(整数表达式){
( y5 s6 ~/ A5 P% P case 整数常量1:6 q9 p( y% R9 g( @" a$ y
//语句序列
% Y% Z. X7 a3 C break;! c4 ]6 u0 E2 @5 z6 x
case 整数常量2:0 m% y8 P. c0 ]+ w. M
//语句序列
6 i0 u# R2 h/ j& J" H7 \9 _ break;, `0 D/ v4 R0 X2 n2 y, F* b/ K
default: * N' u% B" v& y2 n! w2 W
//语句序列9 X/ ~8 L3 M% q# b9 Z: U5 ?
}
( W) L( Q9 O9 n& @9 ?6 x A. switch条件: 只能是整数(int byte char short)表达式# N3 F) v& B3 x3 c# i/ ^
switch 不能处理long 或其他类型# P0 [( U' }, E. t0 H( ?5 e
B. case 只能是整数(int byte char short)常量, 不能使用5 ~- c# b0 P8 F/ z$ s
变量及表达式. 如: '中'
9 u! g& w- O. L& p' g$ w) ]( t C. break 跳转到switch结束继续执行, 可以根据业务逻辑是否使用0 Y; p5 B) g# q- M0 v
经常都写break! ]- S' P% A" |+ ~! @
' J7 V( \( S; k8 B3 g1 ^4. 循环控制( E5 F5 m7 h0 \1 S& g5 c1 }
1) While 循环控制( a7 S, h2 e! d6 F7 J1 ~' }# }5 x
语法:4 q, |* w! P }
while(布尔表达式){2 @2 A% W; F) W; F
//循环体 语句序列
3 j+ d6 j x# Y; ?! p# |- Y }
6 `1 o$ F* p, J6 _
! u2 ~# z8 d( g7 U, G9 G- C1 k$ i- A7 e4 W5 N2 a
|
|