该用户从未签到
|
1. java 的方法Method (函数 Function), 功能, 动作" {7 `8 [2 Q5 @, j" e
1) 方法就是函数: y=f(x)=3x+6;
/ @- M* d7 o0 t M3 r 2) 方法的语法6 j0 C6 }# ?1 a' Q# t
(修饰词)(返回值类型)(方法名)(参数列表){$ U+ U) |# [- ~) j; y4 B& R) _
//方法体: k7 g d2 |9 C* S @, I
}7 U8 X2 }) p2 l% n. F
public static void main(String[] args){}
0 S' S. n6 |1 [! [' _# @ 如:. d8 T* e( t) L( l
public static int f(int x){
* ~: F6 b( F9 h! |5 t( f0 |8 C int y = 3 * x + 4;* a" b, _" t% E! f9 q) a8 q
return y;
1 C1 x5 L0 P: T4 w' L/ x$ a }
2 u; ~4 z& }: k3 w/ q8 ] 4) 如果有返回值定义就必须有return语句, 返回和返回值类型
+ q. w/ q; o6 b7 I. N 兼容的数据
5 B) I. V* S5 ~+ G$ f 5) 方法的参数和方法内部的变量 都是局部变量,
# |$ q$ Q/ E; I# h# w 这些变量作用域只在方法内部!4 c* W$ U0 r1 [! c
6) 实参: 方法调用时候实际传递的参数变量9 e, c3 z1 {9 s9 L9 G
形参: 方法的参数定义,是临时变量.+ j$ x: F1 X1 F2 z
6 d! P* T3 t+ X) r7 k, _2. Java 运算符$ _$ m3 d" r8 e) n' @# U8 K2 D
1) 数学运算符 + - * / %. Q. c! T% X' U2 N# `
A 运算的封闭性(补码运算的封闭性):
9 r. C8 d" n4 ]& @+ j5 t" R+ Y 1.同种类型参与运算(可能需要自动类型转换)2 `% m/ a, `3 }9 U! X& ^7 j8 \
2.返回同种类型(可能发生:上溢出和下溢出) E* U% h; ^2 E7 p$ L! r
3.byte, short, char 按照int运算$ Y9 J0 x1 k; h! s
如: int a = 1 + 'A';6 h$ I, v1 G% t, t0 p9 U$ J
B. 整数的除法是整除5 g4 b7 v3 ]- B3 `
1.除以2相当于移位运算(移动小数点)
; @3 M* f+ Q" i' i6 g: h C.Java中字面量的运算被Javac优化了, 优化为一个固定的常量.
" O: e# F+ I! B0 i D. % 计算除法的余数
8 B" \0 C) x% e$ ]# ?8 e 1. 0 对其他数的 余数 是0# v3 [" [. p2 f# k2 N1 K; i7 W: p
2. n%3 是 周期函数, 函数值 [0,3)
1 m& b" u- I/ `0 r8 v 3. 负数的余数是负数(考试可能出现, 工作中很少用)
7 k0 ? J- |! r z/ V
: X. f, |% m+ g 2) 自增(自减)运算 ++ --! Z+ t/ E% n. ~/ F. ^
1. 可以将当前变量自我增加(减少)1 [5 f" y# f: S( R, ^! v% n
2 i++, 后++, 先将i的值作为整个表达的值, 然后将i增加1.
$ V6 k+ X) E/ Q 3 ++i, 先++, 先将i增加1, 然后将i的值作为整个表达的值.
/ a3 v' L! m5 ^4 @+ x, ] int a = i++;; F4 o/ l" s: u
(i++)%3
( i4 g1 U) }; T0 ]4 ^+ e! ~
, J$ r3 n0 [* B- X 3) 逻辑与比较运算 1 E9 ?- I& h6 ]% E
1.逻辑运算 与(并且)&& 或(或者)|| 非(否则)! $ D7 m: B" w \* u! T
非短路的逻辑运算 & | , 比较少使用, 逻辑不合理
P/ d7 s: |( I: D- {; I. r8 H! s 2. 比较运算, 比较变量的值, 就是逐个"位"比较值: > >= < <= == !=
8 c' l. r+ ?- A+ L8 z$ T! E 基本类型变量的值就是基本值如: i=1
# h, ?8 g3 C( m; @ 引用类型变量的值是对象地址值.(在面向对象阶段详细讲解)5 ?( o' ^$ ? `. u& D, ?' K
% T) O0 `( F2 l: g# N int i = 1;4 J) f( e3 |7 ?) I. p+ V) \8 o
long l = 1;6 R/ z9 P h* g5 g- I! f, Y6 \
System.out.println(i==l); //true
4 F) W V7 F7 l$ [7 ?, T8 Q" U 4) 条件运算符(3元运算符) ! p1 f a7 P' d8 x: i8 s
语法: 条件表达式 ? 表达式1 : 表达式2
" ^# I( a `5 R9 A4 ^; [3 L: T 当"条件表达式"为true时候, 表达式1作为整个表达式的值,
5 |! C- i' _$ ?3 o* L% C) | 否则 表达式2作为整个表达式的值
/ q8 q, D. y J2 ?# d* t 如:
( m2 y5 B& H& w1 q& {4 ^ boolean isBoy = true;
' C: ?5 r0 f; i. b0 z- u2 X int level = isBoy ? 2 : 3 ;// 2
( w _) X" \ C& ^$ C% `5 C, ]6 b T N5 X
3. 分支流程控制
. z2 \% V2 M* B+ ?) }4 J( W 1) if ... else0 N# t! f3 ~0 S1 y3 Q
语法: if(布尔表达式){
% x7 r1 w7 i7 l% K //语句块..
% M! e4 \8 t0 ` }else{( w1 t+ u; A1 m* t0 X; b, n9 T
//语句块# w7 g1 ?& e3 l- N6 F3 F
}1 t: f8 T' ~8 ?6 e$ G2 `
嵌套: if(布尔表达式){5 B/ r; T3 w7 C0 Q/ K6 Q
//...
; C' B* e/ |, K8 U8 q2 u }else if(布尔表达式){9 x' p2 f3 _1 n2 `
//.... T9 |6 S* T& }3 _) m5 w5 Z1 D7 W
}else if(布尔表达式){6 J% r( L# K' X5 n
//...
: i! k- Q1 Z6 Y2 { }else{ o' Q2 D+ o \- I, H
//.../ i% C% E8 B* m1 A# i$ }
}; }% n* H6 u/ ~/ w u
2 `/ O3 c# k$ W5 u( @0 }3 C+ }
2) switch ... case& m6 o6 L+ k' C8 K/ @
语法: switch: 开关, case: 情况下& `. v. ~% {/ \( S# @
switch(整数表达式){ ' W6 ?# J' a v5 s
case 整数常量1:
: F8 O& y& H7 T0 o //语句序列
- j, r0 N- K6 @, y a/ M/ H2 ~ break;8 I' h! F& B3 `0 o( j
case 整数常量2:' O/ W. [, n! Y/ s
//语句序列
: Q- I! l) i P/ S break;7 b7 O# V/ d5 m! k0 Z
default:
* Q" E/ n5 W. ~ P/ O, c8 e/ a //语句序列# |$ ?9 q# x9 E6 J
}' m/ v8 y" r. C/ t! V/ y- Q
A. switch条件: 只能是整数(int byte char short)表达式
4 _9 }/ a8 B7 q switch 不能处理long 或其他类型
, M4 X3 w, D/ r$ Q9 L% _ B. case 只能是整数(int byte char short)常量, 不能使用2 ~$ o2 y3 u1 B2 w" U
变量及表达式. 如: '中'
' J& g. }; \& w! Q! ` C. break 跳转到switch结束继续执行, 可以根据业务逻辑是否使用" v2 y3 o+ Y; G- n! r' h3 J5 N
经常都写break
& B; v1 ]; O0 d" n
# K2 A6 f9 E; Z6 U- q4. 循环控制6 c: z' h5 h7 p8 U% ~5 _: R
1) While 循环控制6 v, j% w8 `) B( w' O8 G
语法:0 m5 P* u2 \8 j4 L3 g
while(布尔表达式){
" h& r5 I6 O( k6 V4 b //循环体 语句序列# }' q& B5 e; S0 h* m
}
+ y) [8 F9 w4 _) ~! h k6 L& T* `: W! G0 b
* x0 A8 b3 _; g+ V4 p1 W
|
|