该用户从未签到
|
1. java 的方法Method (函数 Function), 功能, 动作: W* ?; ~7 a2 X. A5 O M$ b
1) 方法就是函数: y=f(x)=3x+6;5 V( u0 M7 z; f6 t$ ^, {! T* E( w# E
2) 方法的语法
, v! o1 ^9 N. p9 I2 P1 b1 [ (修饰词)(返回值类型)(方法名)(参数列表){1 g! n% M6 t- B M
//方法体
. \. u1 R" V, B4 { }0 E7 _; v( Q( `5 N
public static void main(String[] args){}9 w# i- d# G% \) @! R- j* I
如:
9 D% P& J8 n* q: a3 P! |& K public static int f(int x){ ?' ~8 M' l! A7 P& y& r8 l$ x1 ~- C
int y = 3 * x + 4;% x1 y4 a- ~9 \( H1 |! h9 _9 ^9 K
return y;
J: N# v4 W8 n. \% Y' l }
/ J& G5 r% G( h# O2 z 4) 如果有返回值定义就必须有return语句, 返回和返回值类型5 _0 e4 ~* q! \0 C
兼容的数据
5 o; p+ c2 Z7 V v 5) 方法的参数和方法内部的变量 都是局部变量, S" w7 N- g% } X' F
这些变量作用域只在方法内部!$ m, H0 E8 ~% J" X1 P+ i
6) 实参: 方法调用时候实际传递的参数变量
* T+ c, ]. V* x9 {7 I* k& J 形参: 方法的参数定义,是临时变量.
5 m% T. k W+ I: O# i2 ?; z! [- I f5 \6 i! r: ]
2. Java 运算符
# C+ w, f G1 _) x 1) 数学运算符 + - * / %
3 x; x7 N( A/ e6 A9 u$ h3 ? A 运算的封闭性(补码运算的封闭性): + Z& z# B* V- l& m5 R% g
1.同种类型参与运算(可能需要自动类型转换)" L* h- W& `0 v8 t6 _
2.返回同种类型(可能发生:上溢出和下溢出)
: Q: T9 g; I0 O8 g. J 3.byte, short, char 按照int运算$ V3 k/ u5 d$ v0 P+ c6 K
如: int a = 1 + 'A';
8 K) U( @1 b& A% V8 d B. 整数的除法是整除" g+ G, g, U, {5 ?4 g1 n+ v
1.除以2相当于移位运算(移动小数点) 9 u8 V: E% b0 W; B$ t% n! g) P' M' p
C.Java中字面量的运算被Javac优化了, 优化为一个固定的常量.4 } w3 E4 S0 |
D. % 计算除法的余数! x. O4 H: h: I3 @( O
1. 0 对其他数的 余数 是0$ f* C# }: H l) `$ t: n: l
2. n%3 是 周期函数, 函数值 [0,3)
3 B& [- Z, V- \3 Y 3. 负数的余数是负数(考试可能出现, 工作中很少用)' U: v4 [$ Z, |: I: `
7 ~. i+ l, x! o$ F5 g
2) 自增(自减)运算 ++ --
9 D6 B% y# a+ c( P3 v 1. 可以将当前变量自我增加(减少)1
) F, Y! ~5 ]( F9 z 2 i++, 后++, 先将i的值作为整个表达的值, 然后将i增加1.
% P% x- \& f$ t" P/ m 3 ++i, 先++, 先将i增加1, 然后将i的值作为整个表达的值.
, q5 q) N7 I; [: h7 G% p int a = i++;4 F P. x: h3 x
(i++)%3
+ S. t4 n. o [, X# _
9 T) T# o) q g1 g% e# j) Q 3) 逻辑与比较运算
* q) d5 }3 a5 B: R& F% i 1.逻辑运算 与(并且)&& 或(或者)|| 非(否则)!
+ \4 e; V4 J" O 非短路的逻辑运算 & | , 比较少使用, 逻辑不合理
( c, A0 D1 [5 }/ u* | 2. 比较运算, 比较变量的值, 就是逐个"位"比较值: > >= < <= == !=7 C) ^: a4 A* l S3 o& U& T
基本类型变量的值就是基本值如: i=10 F: k. J( O( [8 ^8 n) t
引用类型变量的值是对象地址值.(在面向对象阶段详细讲解)6 A" d. D4 @& d1 i9 j
% M1 D: Z! @: P( q X$ B
int i = 1;' S& w& e$ x/ U( H9 T
long l = 1;
' }3 J6 y% ~4 A$ e9 q! [ System.out.println(i==l); //true8 b# B G; R4 f/ x4 E' G
4) 条件运算符(3元运算符)
) p, A' k3 J" H3 i1 t 语法: 条件表达式 ? 表达式1 : 表达式2- j3 B* L0 c5 b: m1 y
当"条件表达式"为true时候, 表达式1作为整个表达式的值, % v0 [( v0 J: V) X5 \
否则 表达式2作为整个表达式的值
* P+ F8 A" T, X7 E 如:
, O1 l0 [$ ?* n) I9 l8 Y boolean isBoy = true;
2 m5 |$ s3 r' n; `' B" i int level = isBoy ? 2 : 3 ;// 27 t6 ~1 w( Z; N, ?0 A
0 @5 K- J1 n/ I- d' g
3. 分支流程控制
$ C7 s1 |5 J# ?0 U* I 1) if ... else
) G3 ~- x# U/ @ 语法: if(布尔表达式){
; `9 l8 Z/ c5 @) A7 @) T //语句块..+ P, S) d$ _( q: M/ x& ^
}else{
! d3 H$ J( t- c //语句块, Z% k" _% y: D
}
% A6 q5 A v- m# `2 v 嵌套: if(布尔表达式){
, r) j) X% D2 s- A* S //... T$ y8 f5 k" B" ?6 Y$ B
}else if(布尔表达式){; I0 g- V; h9 q) H( Y" J1 d
//...
& C% ^6 i4 E) l1 [ }else if(布尔表达式){
0 p G/ ]1 A/ |0 S- |2 F9 B //...
4 g' _) [" m2 q3 x+ u }else{- C3 x. V' o' p K" @, Y
//.../ C4 Q. [. j' A1 z" H6 h6 F+ w
}. C5 g& c, N. C4 `9 b* L: ^
) Y# {1 v- J8 _4 ~& w$ [
2) switch ... case G: P: u; V1 q. Y
语法: switch: 开关, case: 情况下* ^" u, a; H' i! h; R& o8 ]* N) I
switch(整数表达式){
: u5 I9 F) G# G2 a& {% t; ` case 整数常量1:( K# \+ k C- l z
//语句序列
! u4 {1 M& d8 c: `$ m+ B break;
7 S: ~' \4 F7 [) I case 整数常量2:
2 |: p$ l5 R- K# M- K/ i9 n //语句序列
/ W! Z* o* l# i% E break;
% S) r% @3 i1 p' J: `8 m* M) r0 A default:
- t- ?# r0 W2 s0 Y& K* a. [5 l //语句序列
+ j$ m M: |) }( ^! E* U( J# x }
$ O, x# }' O) c3 `. P' f4 N A. switch条件: 只能是整数(int byte char short)表达式
W, R4 L( X! D switch 不能处理long 或其他类型. `/ G* Z8 O+ B; B) }1 ^
B. case 只能是整数(int byte char short)常量, 不能使用
9 W, S. M8 s5 ~# \: [. B' u# G 变量及表达式. 如: '中'
% P2 r6 p P1 ]3 g% g3 T S C. break 跳转到switch结束继续执行, 可以根据业务逻辑是否使用2 F" u" E% C9 U p/ R/ P
经常都写break7 h7 n. x) x: X1 y1 E
3 [, I/ y" F6 m7 B1 E- D4. 循环控制
% O+ x2 R2 d! i, T3 ]8 ^% K 1) While 循环控制5 `8 |5 C8 P; [# w, M- U+ s
语法:3 I0 b0 ^) B2 `$ M
while(布尔表达式){9 S6 k" I# n5 u' S* O
//循环体 语句序列
& O E: C7 g+ e: P: F: w2 q }
. `+ d- w/ M; {" @ D9 k! i9 _1 N/ N- P, h7 L
0 V8 d. U* C9 f% i# k, Q+ ]
|
|