Java 基礎(chǔ):基礎(chǔ)知識

目錄:
一棍现、Java 概述
1. Java體系
2. 常用的DOS命令
3. JDK调煎、JRE、跨平臺己肮、Java平臺
4. Java代碼的編寫執(zhí)行過程
5. 注釋
6. 關(guān)鍵字士袄、標(biāo)識符
7. Java中的數(shù)據(jù)類型
8. Java中的常量
二、變量和運算符
1. 變量和計算機(jī)存儲單元
2. 數(shù)據(jù)類型和常量
3. 數(shù)據(jù)類型轉(zhuǎn)換
4. 運算符 和 優(yōu)先級
三谎僻、引用數(shù)據(jù)類型娄柳、流程控制語句 和 數(shù)組
1. 引用數(shù)據(jù)類型
2. 流程控制語句
3. 數(shù)組
四、方法
1. 引入
2. 語法格式
3. 方法調(diào)用
4. 注意事項
5. 方法重載
6. 可變參數(shù)列表


一艘绍、Java 概述

1. Java體系

  • java是一個體系赤拒,包含

  • java語言

  • 運行在各種平臺上的虛擬機(jī)

  • class字節(jié)碼文件格式

  • java api(jdk中提供的api),類庫

  • 商業(yè)的或者三方優(yōu)秀開源類庫

1.jpg

Java體系

2. 常用的DOS命令

2.jpg

常用的DOS命令

3. JDK诱鞠、JRE挎挖、跨平臺、Java平臺

  • JDK:它是Java開發(fā)運行環(huán)境航夺,在程序員的電腦上當(dāng)然要安裝JDK蕉朵;

JDK = JRE + 開發(fā)工具集(例如Javac編譯工具等)

  • JRE:Java Runtime Environment它是Java運行環(huán)境,如果你不需要開發(fā)只需要運行Java程序阳掐,那么你可以安裝JRE

JRE = JVM + JavaSE標(biāo)準(zhǔn)類庫

  • JDK 包含 JRE 包含 JVM

  • 跨平臺特性

  • 平臺指的是操作系統(tǒng) (Windows始衅,Linux,Mac)缭保。

  • Java程序可以在任意操作系統(tǒng)上運行汛闸,一次編寫到處運行

  • 實現(xiàn)跨平臺需要依賴Java的虛擬機(jī) JVM (Java Virtual Machine)
    為什么可以跨平臺?因為JAVA程序運行依賴虛擬機(jī)艺骂,而針對不同操作系統(tǒng)有不同版本的虛擬機(jī)

  • Java語言是跨平臺的诸老,Java虛擬機(jī)不是跨平臺的

  • Java平臺

  • Java SE (桌面程序)標(biāo)準(zhǔn)版

  • Java EE (Web程序)企業(yè)版

  • Java ME(移動設(shè)備)微型版 -- Android,IOS興起后就很少使用了

4. Java代碼的編寫執(zhí)行過程

  • 源文件:編寫Java源文件(我們也稱之為源代碼文件)彻亲,它的擴(kuò)展名為.java孕锄;
  • 編譯:然后通過編譯器把源文件編譯成字節(jié)碼文件,字節(jié)碼文件擴(kuò)展名為.class苞尝;
    為什么要編譯?JAVA程序是由虛擬機(jī)運行的,我們所寫的代碼虛擬機(jī)不認(rèn)識宦芦,我們要把自己寫的代碼翻譯成虛擬機(jī)所認(rèn)識的語言
  • 運行:最后使用解釋器來運行字節(jié)碼文件宙址。
3.jpg

Java代碼的編寫執(zhí)行過程

5. 注釋

  • 定義:用來解釋和說明程序的文字,注釋是不會被執(zhí)行的

  • 分類

  • 單行注釋: //注釋內(nèi)容

  • 多行注釋: /注釋內(nèi)容/

  • 文檔注釋: /*注釋內(nèi)容/

  • 注意

  • 對于單行和多行注釋调卑,被注釋的文字抡砂,不會被JVM解釋執(zhí)行

  • 對于文檔注釋大咱,可以被JDK提供的工具 javadoc 所解析,生成一套以網(wǎng)頁文件形式體現(xiàn)的該程序的說明文檔

  • 單行注釋可以嵌套使用注益,多行注釋不能嵌套使用

6. 關(guān)鍵字碴巾、標(biāo)識符

  • 關(guān)鍵字

  • 定義:是被Java語言賦予特殊含義,具有專門用途的單詞丑搔,比如之前接觸的class厦瓢,int,double均為Java已經(jīng)預(yù)設(shè)好的

  • 特點:字母全部小寫, 注意String不是關(guān)鍵字

  • 注意事項:goto 與 const 是Java中的保留字啤月,即沒有賦予特殊含義卻仍被Java占用的單詞

  • 標(biāo)識符

  • 定義:就是給類,接口,方法,變量等起名字時使用的字符序列

  • 組成規(guī)則(只能包含下面的內(nèi)容,不能有其它內(nèi)容):

  • 英文大小寫字母

  • 數(shù)字字符

  • $和_

  • 注意事項:

  • 數(shù)字不能開頭

  • 不可以使用關(guān)鍵字

  • 嚴(yán)格區(qū)分大小寫煮仇,不限制長度

  • 起名時,盡量達(dá)到見名知意

  • 標(biāo)識符中常見的命名規(guī)則(這些規(guī)定是不受語法約束的):

  • 包名:多單詞組成時所有字母均小寫谎仲,使用.連接,域名反寫 aaa.bbb.ccc

  • 類名&接口名:大駝峰式 Aaa AaaBbbCcc

  • 變量名&方法名:小駝峰式 aaa aaaBbbCcc

  • 常量名:多單詞組成是所有字母均大寫浙垫,使用_連接 AAA_BBB_CCC

7. Java中的數(shù)據(jù)類型

為什么有數(shù)據(jù)類型?
Java語言是強(qiáng)類型語言,對于每一種數(shù)據(jù)都定義了明確的具體數(shù)據(jù)類型

  • Java中數(shù)據(jù)類型的分類

  • 基本數(shù)據(jù)類型: 基本數(shù)據(jù)類型是Java語言中內(nèi)置的類型郑诺,分別是整數(shù)類型夹姥、小數(shù)類型、字符類型辙诞、布爾類型辙售。這四類基本類型是最簡單、最基礎(chǔ)的類型倘要。

  • 引用數(shù)據(jù)類型: 是強(qiáng)大的數(shù)據(jù)類型圾亏,它是基于基本數(shù)據(jù)類型創(chuàng)建的。

  • JavaSE中提供了一個超級類庫封拧,類庫中包含了近萬種引用數(shù)據(jù)類型志鹃。

  • 基本類型:類 接口 數(shù)組 枚舉

8. Java中的常量

  • 定義:常量就是不變的數(shù)據(jù)量, 在程序執(zhí)行的過程中其值不可以發(fā)生改變
  • 整形常量默認(rèn)是 int類型

在Java中,定義長整形數(shù)據(jù)如果值超過int取值范圍后面要+L泽西,否則是錯誤的

  • 小數(shù)常量默認(rèn)是 double類型

D后綴為double曹铃,F后綴為float
定義float類型的數(shù)據(jù)后面要 + f ,否則默認(rèn)是double

  • 常量分類

  • 整數(shù)類型

  • 十進(jìn)制表示方式:正常數(shù)字。 如 13捧杉、25等

  • 二進(jìn)制表示方式:以 0b(0B) 開頭陕见。 如0b1011 、0B1001

  • 十六進(jìn)制表示方式:以 0x(0X) 開頭味抖。 數(shù)字以0-9及A-F組成 如0x23A2评甜、0xa、0x10

  • 八進(jìn)制表示方式:以 0 開頭仔涩。 如01忍坷、07、0721

  • 小數(shù)類型:如1.0、-3.15佩研、3.168等

  • 布爾類型:true柑肴、false ,注意嚴(yán)格區(qū)分大小寫

  • 字符類型:

  • 如 'a','A', '0', '家'

  • 字符必須使用 '' 包裹旬薯,并且其中只能且僅能包含一個字符

  • 字符串類型:

  • 字符串String類型是一種引用類型晰骑,我們先了解作為常量類型的使用方式

  • 如 "我愛Java","0123"绊序,""硕舆,"null"

  • 字符串必須使用 "" 包裹,任意長度

  • 在計算機(jī)內(nèi)政模,有符號數(shù)有3種表示法:原碼岗宣、反碼和補(bǔ)碼。所有數(shù)據(jù)的運算都是采用 補(bǔ)碼 進(jìn)行的

  • 原碼: +8: 0 000 1000 -8: 1 000 1000

就是二進(jìn)制定點表示法淋样,即最高位為符號位耗式,0表示正,1表示負(fù)趁猴,其余位表示數(shù)值的大小刊咳。

  • 反碼: +8: 0 000 1000 -8: 1111 0111

正數(shù)的反碼與其原碼相同;負(fù)數(shù)的反碼是對其原碼逐位取反儡司,但符號位除外娱挨。

  • 補(bǔ)碼: +8: 0 000 1000 -8: 1111 1000

正數(shù)的補(bǔ)碼與其原碼相同;負(fù)數(shù)的補(bǔ)碼是在其反碼的末位加 1


二捕犬、變量和運算符

1. 變量和計算機(jī)存儲單元

  • 變量是內(nèi)存中裝載數(shù)據(jù)的小盒子跷坝,你只能用它來存數(shù)據(jù)和取數(shù)據(jù)

  • 變量名是標(biāo)識符,這說明只要是合法的標(biāo)識符都可以用來做變量名碉碉。

  • 變量使用的注意事項

  • 變量定義后可以不賦值柴钻,使用時再賦值。不賦值不能使用

  • 變量使用時有作用域的限制垢粮。(局部變量和全局變量)

  • 變量不可以重復(fù)定義

  • 計算機(jī)存儲單元

  • 計算機(jī)中儲存和運算的最小單位:一個字節(jié)贴届,也就是1個字節(jié)(byte)

  • 常用儲存單位1B(字節(jié)) = 8bit(比特位)

1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB
1PB = 1024TB

2. 數(shù)據(jù)類型和常量

  • 四類八種

byte: 1個字節(jié) : -128~127 (數(shù)據(jù)表示范圍)
short: 2個字節(jié): -32768~32767
int: 4個字節(jié): -2147483648~2147483648
long: 8個字節(jié): -263~263-1
float: 4個字節(jié): -3.403E38~3.403E38
double: 8個字節(jié): -1.798E308~1.798E308
char: 2個字節(jié): 表示一個字符,如('a'蜡吧,'A'毫蚓,'0','家')
boolean: 1個字節(jié): 只有兩個值true與false

  • 變量必須要有明確的類型昔善,什么類型的變量裝載什么類型的數(shù)據(jù)
  • 數(shù)據(jù)類型范圍從小到大排序:

byte < char < short < int < long < float < double,
布爾類型boolean不能參與類型轉(zhuǎn)換

3. 數(shù)據(jù)類型轉(zhuǎn)換

  • 自動類型轉(zhuǎn)換:表示范圍小的數(shù)據(jù)類型轉(zhuǎn)換成范圍大的數(shù)據(jù)類型元潘,這種方式稱為自動類型轉(zhuǎn)換
    自動類型轉(zhuǎn)換格式范圍大的數(shù)據(jù)類型 變量 = 范圍小的數(shù)據(jù)類型值;

默認(rèn)轉(zhuǎn)換:byte、short君仆、char —> int —> long —> float —> double
byte柬批、short啸澡、char 相互之間不轉(zhuǎn)換袖订,他們參與運算首先轉(zhuǎn)換為 int類型

  • 強(qiáng)制類型轉(zhuǎn)換:表示范圍大的數(shù)據(jù)類型轉(zhuǎn)換成范圍小的數(shù)據(jù)類型氮帐,這種方式稱為強(qiáng)制類型轉(zhuǎn)換

強(qiáng)制類型轉(zhuǎn)換格式范圍小的數(shù)據(jù)類型 變量 = (范圍小的數(shù)據(jù)類型) 范圍大的數(shù)據(jù)類型值;

4. 運算符 和 優(yōu)先級

算數(shù)運算符

+ - * / % ++ --

+: 正號、加洛姑、連接字符串
++上沐,--運算符后置時,先使用變量a原有值參與運算操作楞艾,運算操作完成后参咙,變量a的值自增1或者自減1;
++硫眯,--運算符前置時蕴侧,先將變量a的值自增1或者自減1,然后使用更新后的新值參與運算操作两入。

  • 注意事項

  • 加法運算符在連接字符串時要注意净宵,只有直接與字符串相加才會轉(zhuǎn)成字符串。

  • 除法當(dāng)兩邊為整數(shù)時裹纳,取整數(shù)部分择葡,舍余數(shù)。當(dāng)其中一邊為浮點型時剃氧,按正常規(guī)則相除敏储。

  • % 為整除取余符號,小數(shù)取余沒有意義朋鞍。結(jié)果符號與被取余符號相同已添。

  • 整數(shù)做被除數(shù),0不能做除數(shù)滥酥,否則報錯更舞。

  • 小數(shù)做被除數(shù),整除 0 結(jié)果為 Infinity恨狈,對 0 取模結(jié)果為 NaN

賦值運算符

*+= -= = /= %=

  • *+=, -=, =, /=這樣的賦值運算符包含了一個 強(qiáng)制轉(zhuǎn)換 的操作疏哗,會將左右兩邊運算后的結(jié)果,強(qiáng)制類型轉(zhuǎn)換后賦值給左邊
  • 注意:賦值運算符左邊必須是變量
int n = 10;
byte by = 20;
by += n; // 運算完畢后禾怠,by的值為byte類型30返奉, 相當(dāng)于代碼 by = (byte)(by + n);

比較運算符

== != < > <= >=

  • 結(jié)果只能是true 和 false
  • 字符間的比較,比較的是其 ASCII 值
  • 浮點數(shù) 與 整數(shù) 比較吗氏,只要值相等芽偏,就返回 true

邏輯運算符

&與-----false&true-----False
|或-----false|true-----True
異或-----trueflase-----True
!非-----!true-----Flase
&&短路與-----false&&true-----False
||短路或-----false||true-----True

  • && : 又叫短路運算符,A&&B弦讽,如果A為假污尉,不會去計算B的值膀哲,直接得到結(jié)果為 false
    & : A & B,即使A為假被碗,也會計算B的值某宪。
  • || : 也是短路運算符,A || B锐朴,如果A為真兴喂,不會去計算B的值,直接得到結(jié)果為 true
    | : A | B焚志,即使A為真衣迷,也會計算 B 的值。
  • 異或^ : 左右兩邊條件結(jié)果相同酱酬,結(jié)果就為false壶谒,左右兩邊條件結(jié)果不同,結(jié)果就為true膳沽;

三目運算符

  • 語法:布爾表達(dá)式 ? 表達(dá)式1 : 表達(dá)式2
  • 當(dāng)布爾表達(dá)式的值為true汗菜,則返回表達(dá)式1的值,否則返回表達(dá)式2的值

運算符優(yōu)先級

優(yōu)先級 描述 運算符
1 括號 ()贵少、[]
2 正負(fù)號 +呵俏、-
3 自增自減,非 ++滔灶、--普碎、!
4 乘除,取余 录平、/麻车、%
5 加減 +、-
6 移位運算 <<斗这、>>动猬、>>>
7 大小關(guān)系 >、>=表箭、<赁咙、<=
8 相等關(guān)系 ==、!=
9 按位與 &
10 按位異或 ^
11 按位或 |
12 邏輯與 &&
13 邏輯或 ||
14 條件運算 ?:
15 賦值運算 =免钻、+=彼水、-=、=极舔、/=凤覆、%=

16 位賦值運算 &=、|=拆魏、<<=盯桦、>>=慈俯、>>>=

位運算符

4.jpg

位運算符

  • 位運算是直接對 二進(jìn)制 進(jìn)行運算

  • 在位運算中,操作數(shù)必須是 整型

  • 位異或運算符的特點

  • 一個數(shù)據(jù)對另一個數(shù)據(jù)位異或兩次拥峦,該數(shù)本身不變贴膘。

  • 任何數(shù)和自身異或,結(jié)果為0

  • 任何數(shù)和0異或事镣,結(jié)果為本身

  • << 左移一位步鉴,相當(dāng)于乘以2: 3 << 2 = 12 --> 322=12

  • >> 右移一位,相當(dāng)于除以2: 3 >> 1 = 1 --> 3/2=1

  • 3 >>> 1 = 1 --> 3/2=1

  • 同樣的運算璃哟,位運算的效率高于算術(shù)運算


三、引用數(shù)據(jù)類型喊递、流程控制語句 和 數(shù)組

1. 引用數(shù)據(jù)類型

  • 引用數(shù)據(jù)類型的變量定義及賦值格式:數(shù)據(jù)類型 變量名 = new 數(shù)據(jù)類型();

  • 調(diào)用該類型實例的功能:變量名.方法名();

  • Scanner類

  • 導(dǎo)包import java.util.Scanner;

  • 創(chuàng)建對象實例Scanner sc = new Scanner(System.in);

  • 調(diào)用方法

int  i = sc.nextInt(); //用來接收控制臺錄入的數(shù)字
String s = sc.next(); //用來接收控制臺錄入的字符串
  • 隨機(jī)數(shù)類Random
  • 方法簡介
public int nextInt(int maxValue)    //產(chǎn)生 [0,maxValue) 范圍的隨機(jī)整數(shù)随闪,包含0,不包含maxValue骚勘;
public double nextDouble()          //產(chǎn)生 [0,1) 范圍的隨機(jī)小數(shù)铐伴,包含0.0,不包含1.0俏讹。

Random使用方式:

  • import導(dǎo)包import java.util.Random
  • 創(chuàng)建實例格式Random 變量名 = new Random();
  • 賦值a = 變量名.nextInt(maxValue);

2. 流程控制語句

1. if
2. if...else...
3. if...else if...else...
4. while
5. for
6. do...while...
7. switch case default break
//case 穿透性:如果多個case條件后面的執(zhí)行語句是一樣的当宴,則該執(zhí)行語句只需書寫一次即可,這是一種簡寫的方式

break語句

  • 作用:跳出所在的循環(huán)體

  • 使用方式

  • 無法單獨使用泽疆,必須將break關(guān)鍵字置于 switch循環(huán)語句

  • 運行規(guī)律

  • 不需要判斷任何條件户矢,只要遇到break變直接跳出執(zhí)行后續(xù)代碼。會完全跳出選擇或者循環(huán)結(jié)構(gòu)

  • 只能跳出 最近的 代碼塊殉疼,不能跨越多級代碼塊

  • 標(biāo)記

  • 當(dāng)break語句出現(xiàn)在嵌套循環(huán)中的內(nèi)層循環(huán)時梯浪,它只能跳出內(nèi)層循環(huán),如果想使用break語句跳出外層循環(huán)則需要對外層循環(huán)添加標(biāo)記

  • 使用方式:在外層循環(huán)外的某行前邊使用瓢娜,后邊跟有冒號:的標(biāo)識符挂洛,即定義完畢。

  • 使用時當(dāng)在內(nèi)層循環(huán)使用 breakcontinue 時后邊緊跟之前定義的標(biāo)號即可

itcast: for (i = 1; i <= 9; i++) { // 外層循環(huán),itcast是標(biāo)記
    for (j = 1; j <= i; j++) { // 內(nèi)層循環(huán)
        if (i > 4) { // 判斷i的值是否大于4
        break itcast; // 跳出外層循環(huán)
    }
}

continue語句

  • 作用:提前結(jié)束本次循環(huán)眠砾,繼續(xù)進(jìn)行下次循環(huán)
  • 使用方式: 無法單獨使用虏劲,必須將continue關(guān)鍵字置于 循環(huán)語句
  • 運行規(guī)律: 不需要判斷任何條件,只要遇到continue變直接跳出本輪循環(huán)進(jìn)行下次循環(huán)

return 褒颈、break柒巫、continue 跳出控制語句的區(qū)別

  • break:結(jié)束當(dāng)前整個循環(huán),執(zhí)行當(dāng)前循環(huán)下邊的語句哈肖。
  • continue:結(jié)束本次循環(huán)吻育,繼續(xù)進(jìn)行下次循環(huán)
  • return: 用于結(jié)束一個方法,返回給上層調(diào)用者淤井,如果位于main方法內(nèi)布疼,相當(dāng)于結(jié)束了程序摊趾。

return也可以用于結(jié)束循環(huán),因為return用于結(jié)束一個方法游两,如果方法中有循環(huán)的話砾层,不管return嵌套于多少層循環(huán)之內(nèi),循環(huán)都結(jié)束贱案。
不會再執(zhí)行循環(huán)后面的語句

3. 數(shù)組

一維數(shù)組

  • 概述長度不可變肛炮、元素類型相同

  • 一組數(shù)據(jù)的集合,數(shù)組中的每個數(shù)據(jù)被稱作'元素'

  • 在數(shù)組中可以存放'任意類型'的元素

  • 但'同一個數(shù)組'里存放的元素類型必須一致宝踪。

  • 數(shù)組是'恒定, 定長的

  • 數(shù)組的定義1

  • 格式: 數(shù)據(jù)類型[] 數(shù)組名 = new 數(shù)據(jù)類型[長度]; int[] x = new int[100];

  • 使用屬性數(shù)組名.length

  • 數(shù)組的最小索引是 0, 最大索引是 數(shù)組.length-1

  • 數(shù)組的定義2

  • 數(shù)組初始化:在定義數(shù)組時只指定數(shù)組的長度侨糟,由系統(tǒng)自動為元素 賦初值 的方式稱作動態(tài)初始化。

  • 格式:

  • 數(shù)據(jù)類型[] 數(shù)組名 = new 類型[長度]; int[] arr = new int[4];

  • 類型[] 數(shù)組名 = new 類型[]{元素瘩燥,元素秕重,……}; int[] arr = new int[]{1,2,3,4};

  • 類型[] 數(shù)組名 = {元素,元素厉膀,元素溶耘,……}; int[] arr = { 1, 2, 3, 4 };

JVM內(nèi)存劃分

  • 寄存器:內(nèi)存和CUP之間
  • 本地方法棧: JVM調(diào)用了系統(tǒng)中的功能
  • 方法和數(shù)據(jù)共享: 運行時期class文件進(jìn)入的地方
  • 方法棧:所有的方法運行的時候進(jìn)入內(nèi)存
  • :存儲的是容器和對象

數(shù)組中常見的異常

  • 數(shù)組的索引越界異常
  • 空指針異常

二維數(shù)組

  • 定義格式
//第一種定義格式
//相當(dāng)于定義了一個3*4的二維數(shù)組,即二維數(shù)組的長度為3服鹅,二維數(shù)組中的每個元素又是一個長度為4的數(shù)組
- int[][] arr = new int[3][4];//不推薦

//第二種定義格式
//第二種方式和第一種類似凳兵,只是數(shù)組中每個元素的長度不確定,必須要new:arr[0] = new int[5];...
int[][] arr = new int[3][];

//第三種定義格式
//二維數(shù)組中定義了三個元素,這三個元素都是數(shù)組企软,分別為{1,2}庐扫、{3,4,5,6}、{7,8,9}
int[][] arr = {{1,2},{3,4,5,6},{7,8,9}};

二維數(shù)組內(nèi)存

  • 比如:int[][] arr = new int[3][2];
  • 外層數(shù)組長在內(nèi)存開辟連續(xù)的3個大的內(nèi)存空間,每一個內(nèi)存空間都對應(yīng)的有地址值
  • 每一個大內(nèi)存空間里又開辟連續(xù)的兩個小的內(nèi)存空間.

打印數(shù)組

//打印一維數(shù)組五種方法
Arrays.toString(arr)

for(int n: arr)   
   System.out.println(n+", ");  

for (int i = 0; i < arr.length; i++) {  
   System.out.print(arr[i] + ", ");  
}  

System.out.println(Arrays.asList(arr));  

Arrays.asList(arr).stream().forEach(s -> System.out.println(s));//java8  

//打印二維數(shù)組三種
for(int i=0;i<arr.length;i++) {  
    for(int j=0;j<arr[i].length;j++) {  
        System.out.print(arr[i][j]+" ");  
    }  
    System.out.println();  //換行  
}  

for(int[] a:arr) {  
    for(int b:a){  
        System.out.print(b+" ");  
    }  
    System.out.println();//換行  
} 

for(int i=0;i<arr.length;i++)  
    System.out.println(Arrays.toString(arr[i]));  

//打印三維數(shù)組三種
int [][][] arrays=new int[4][3][2];//在椑骄耄空間創(chuàng)建一個空間  

for(int i=0;i<arrays.length;i++) {  
    for(int i1=0;i1<arrays[i].length;i1++) {  
        for(int i2=0;i2<arrays[i][i1].length;i2++) {  
        System.out.print(arrays[i][i1][i2]);  
    }  
    System.out.println();//二維換行  
}  
System.out.println();//三維換行  
}  

四聚蝶、方法

1. 引入

為什么要有方法:提高代碼的復(fù)用性
什么是方法:完成特定功能的代碼塊

2. 語法格式

  • 訪問修飾符:方法允許被訪問的權(quán)限范圍。( public藻治,protected碘勉,private,無修飾符 )
  • 返回類型:void桩卵、任何數(shù)據(jù)類型
  • 方法名:同變量名規(guī)則验靡。小寫;多個單詞雏节,第一個單詞首字母小寫胜嗓,其余首字母大寫 。myMethod
  • 參數(shù)列表:可以省略钩乍。參數(shù)類型 + 參數(shù)名辞州,...

3. 方法調(diào)用

  • 可以使用 對象名 調(diào)用方法,靜態(tài)方法是使用 類名 調(diào)用的

  • 方法包括在類中,調(diào)用時先創(chuàng)建包含方法的類的對象寥粹,然后用對象再去調(diào)用方法变过。

  • 創(chuàng)建對象:類名 對象名 = new 類名();

  • 調(diào)用:對象名.方法名();

4. 注意事項

  • 方法參數(shù)是 基本類型 埃元,傳遞的是值。(包含String類型)媚狰,形式參數(shù)的改變對實際參數(shù)不影響
  • 方法參數(shù)是 引用類型岛杀,傳遞的是內(nèi)存地址值。(String類型除外)崭孤,形式參數(shù)的改變對實際參數(shù)有影響
  • 方法的定義只能放在類里面类嗤,不能嵌套定義。故而不能在主方法內(nèi)直接定義方法
  • 方法返回值是void辨宠,方法中可以省略return
  • 方法一般在主方法的前面定義
  • 調(diào)用方法的時候遗锣,返回值是void, 不能寫在輸出語句中

5. 方法重載

  • 方法的重載:在同一個類中,方法名相同彭羹,參數(shù)列表不同黄伊。與返回值類型無關(guān)。

  • 參數(shù)列表不同

  • 參數(shù)個數(shù)不同

  • 參數(shù)類型不同

  • 參數(shù)的順序不同(算重載,但是在開發(fā)中不用)派殷,注意:必須是不同數(shù)據(jù)類型。相同類型不存在順序不同

  • 方法重載注意事項

  • 重載和參數(shù)變量名無關(guān)

  • 重載和返回值類型無關(guān)如void method(int x)與int method(int y)不是方法重載墓阀,不能同時存在

  • 重載和修飾符無關(guān)

  • 重載看 方法名參數(shù)列表

6. 可變參數(shù)列表

  • 例:public void sum(int... n){}
  • 參數(shù)列表中如果有兩個以上的參數(shù)毡惜,可變參數(shù)一定在最后
  • 可以將數(shù)組傳遞給可變參數(shù)列表
  • 數(shù)組作為參數(shù)時,不能將多個值傳遞給數(shù)組的
  • 一個方法的形式參數(shù)列表斯撮,只能有一個可變參數(shù)列表
  • 方法名相同经伙,一個參數(shù)是可變參數(shù),一個參數(shù)是一維數(shù)組勿锅,這兩個方法不是重載帕膜,因為 一個可變參數(shù)等價于相應(yīng)類型的一維數(shù)組
    就可以對可變參數(shù)列表,進(jìn)行相應(yīng)的數(shù)組操作溢十,比如求長度
  • 可變參數(shù)列表所在的方法垮刹,是最后被執(zhí)行訪問的
  • 方法重載的時候,既可以定義有可變參數(shù)的同名方法张弛,也可以定義有確定參數(shù)個數(shù)的方法荒典,jvm調(diào)用方法時,會優(yōu)先調(diào)用 有確定參數(shù)個數(shù) 的方法
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末吞鸭,一起剝皮案震驚了整個濱河市寺董,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌刻剥,老刑警劉巖遮咖,帶你破解...
    沈念sama閱讀 219,427評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異造虏,居然都是意外死亡御吞,警方通過查閱死者的電腦和手機(jī)麦箍,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,551評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來魄藕,“玉大人内列,你說我怎么就攤上這事”陈剩” “怎么了话瞧?”我有些...
    開封第一講書人閱讀 165,747評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長寝姿。 經(jīng)常有香客問我交排,道長,這世上最難降的妖魔是什么饵筑? 我笑而不...
    開封第一講書人閱讀 58,939評論 1 295
  • 正文 為了忘掉前任埃篓,我火速辦了婚禮,結(jié)果婚禮上根资,老公的妹妹穿的比我還像新娘架专。我一直安慰自己,他們只是感情好玄帕,可當(dāng)我...
    茶點故事閱讀 67,955評論 6 392
  • 文/花漫 我一把揭開白布部脚。 她就那樣靜靜地躺著,像睡著了一般裤纹。 火紅的嫁衣襯著肌膚如雪委刘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,737評論 1 305
  • 那天鹰椒,我揣著相機(jī)與錄音锡移,去河邊找鬼。 笑死漆际,一個胖子當(dāng)著我的面吹牛淆珊,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播灿椅,決...
    沈念sama閱讀 40,448評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼套蒂,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了茫蛹?” 一聲冷哼從身側(cè)響起操刀,我...
    開封第一講書人閱讀 39,352評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎婴洼,沒想到半個月后骨坑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,834評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,992評論 3 338
  • 正文 我和宋清朗相戀三年欢唾,在試婚紗的時候發(fā)現(xiàn)自己被綠了且警。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,133評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡礁遣,死狀恐怖斑芜,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情祟霍,我是刑警寧澤杏头,帶...
    沈念sama閱讀 35,815評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站沸呐,受9級特大地震影響醇王,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜崭添,卻給世界環(huán)境...
    茶點故事閱讀 41,477評論 3 331
  • 文/蒙蒙 一寓娩、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧呼渣,春花似錦棘伴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,022評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽州刽。三九已至撩银,卻和暖如春腺逛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背帅容。 一陣腳步聲響...
    開封第一講書人閱讀 33,147評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留伍伤,地道東北人并徘。 一個月前我還...
    沈念sama閱讀 48,398評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像扰魂,于是被迫代替她去往敵國和親麦乞。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,077評論 2 355

推薦閱讀更多精彩內(nèi)容