摘要:案例不帶可變參數(shù)列表的方法被調(diào)用帶可變參數(shù)列表的方法被調(diào)用和為可變參數(shù)列表和數(shù)組同時(shí)作為方法參數(shù)
Lecture1 方法簡(jiǎn)介
方法:所謂方法,就是用來(lái)解決一類(lèi)問(wèn)題的代碼的有序組合,是一個(gè)功能模塊
方法在類(lèi)的內(nèi)部定義,不能嵌套定義(即不能定義在另一個(gè)方法里)
方法的聲明:語(yǔ)法格式
訪問(wèn)修飾符 返回類(lèi)型 方法名(參數(shù)列表){ 方法體; }
方法分類(lèi):
無(wú)參無(wú)返回值
無(wú)參帶返回值
帶參無(wú)返回值
帶參帶返回值
Lecture2 方法類(lèi)型無(wú)參無(wú)返回值方法案例:
/** * 使用方法進(jìn)行星號(hào)打印 */ public class MethodDemo { //打印輸出星號(hào) public void printStar() { System.out.println("**********************"); } public static void main(String[] args) { //創(chuàng)建MethodDemo類(lèi)的對(duì)象methodDemo MethodDemo methodDemo = new MethodDemo(); //使用對(duì)象名.方法名()調(diào)用方法 methodDemo.printStar(); System.out.println("歡迎來(lái)到Java的世界"); methodDemo.printStar(); } }
無(wú)參帶返回值方法案例:
/** * 使用方法計(jì)算矩形面積 */ public class RectangleArea { //求矩形面積的方法 public int area() { int length = 10; int width = 5; int calArea = length * width; return calArea;//返回語(yǔ)句返回面積 } public static void main(String[] args) { RectangleArea rectangleArea = new RectangleArea(); System.out.println("矩形的面積為:" + rectangleArea.area()); } }
帶參無(wú)返回值方法案例:
/** * 使用方法求兩個(gè)float類(lèi)型數(shù)據(jù)的最大值,并在方法中將最大值輸出 */ public class MaxDemo { //求最大值的方法 public void max(float a, float b) { float max; if (a > b) { max = a; } else { max = b; } System.out.println("最大值是:" + max); } public static void main(String[] args) { MaxDemo maxDemo = new MaxDemo(); float m = 2.1f, n = 3.7f; maxDemo.max(m, n); } }
帶參帶返回值方法案例:
/** * 定義一個(gè)求n!的方法 * 然后計(jì)算1!+2!+3!+4!+5! */ public class FacDemo { //求n!的階乘 public int fac(int n){ int s = 1; for(int i = 1; i <= n; i++){ s *= i; } return s; } public static void main(String[] args) { FacDemo facDemo = new FacDemo(); //求1!+2!+3!+4!+5! int sum = 0; for(int i = 1; i <= 5; i++){ sum += facDemo.fac(i); } System.out.println("階乘結(jié)果為:"+sum); } }Lecture3 數(shù)組作為方法參數(shù)
數(shù)組作為方法參數(shù)案例一:
/** * 使用方法打印輸出數(shù)組的元素 */ public class ArrayMethod { //輸出數(shù)組元素的方法 public void printArray(int[] arr) { for (int n : arr) { System.out.print(n + " "); } System.out.println();//格式調(diào)整 } public static void main(String[] args) { ArrayMethod arrayMethod = new ArrayMethod(); int[] array = {10, 20, 30, 40, 50}; arrayMethod.printArray(array); } }
數(shù)組作為方法參數(shù)案例二:
import java.util.Scanner; /** * 使用方法查找數(shù)組元素的值 */ public class ArraySearch { //查找數(shù)組元素值的方法 public boolean search(int n, int[] arr) { boolean flag = false;//默認(rèn)沒(méi)找到 for (int m : arr) { if (m == n) { flag = true; break;//使用break語(yǔ)句提高程序的效率 } } return flag; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); ArraySearch arraySearch = new ArraySearch(); int[] array = {1, 2, 3, 4, 5}; System.out.println("請(qǐng)輸入要查詢(xún)的值:"); int n = sc.nextInt(); boolean flag = arraySearch.search(n, array); if (flag) { System.out.println("找到了"); } else { System.out.println("沒(méi)找到"); } } }Lecture4 方法重載
方法重載:方法名相同,參數(shù)列表不同
方法重載案例:
/** * 定義三個(gè)方法,實(shí)現(xiàn)int、double和數(shù)組類(lèi)型和的問(wèn)題 */ public class MathDemo { //求兩個(gè)int類(lèi)型數(shù)的和 public int plus(int a, int b) { return a + b; } //求兩個(gè)double類(lèi)型的數(shù)的和 public double plus(double a, double b) { return a + b; } //求數(shù)組元素的累加和 public int plus(int[] arr) { int sum = 0; for (int n : arr) { sum += n; } return sum; } public static void main(String[] args) { int m = 5, n = 10; int[] array = {1, 2, 3, 4, 5, 6}; MathDemo mathDemo = new MathDemo(); System.out.println("int類(lèi)型的和:" + mathDemo.plus(m, n)); System.out.println("double類(lèi)型的和:" + mathDemo.plus(m, n)); System.out.println("數(shù)組元素的累加和:" + mathDemo.plus(array)); } }Lecture5 方法傳值
基本數(shù)據(jù)類(lèi)型的傳值:基本數(shù)據(jù)類(lèi)型傳值,形式參數(shù)的改變對(duì)實(shí)際參數(shù)沒(méi)有影響(傳遞的是值)
案例一:
public class ExchangeDemo1 { //定義交換方法 public void swap(int a, int b) { int temp; System.out.println("交換前: a = " + a + ", b = " + b); temp = a; a = b; b = temp; System.out.println("交換后: a = " + a + ", b = " + b); } public static void main(String[] args) { int m = 4, n = 5; ExchangeDemo1 swapDemo = new ExchangeDemo1(); System.out.println("交換前: m = " + m + ", n = " + n); swapDemo.swap(m, n); System.out.println("交換后: m = " + m + ", n = " + n); }
案例二:
public class ExchangeDemo2 { public void add(int n) { n++; System.out.println("方法中n的值:" + n); } public static void main(String[] args) { int n = 10; System.out.println("方法調(diào)用前n的值:" + n); ExchangeDemo2 exchangeDemo2 = new ExchangeDemo2(); exchangeDemo2.add(n); System.out.println("方法調(diào)用后n的值:" + n); } }
數(shù)組的傳值:數(shù)組類(lèi)型傳值,形式參數(shù)的改變對(duì)實(shí)際參數(shù)有影響(傳遞的是地址 -- 數(shù)組第一個(gè)元素的地址)
public class ArrayDemo { //定義一個(gè)用于修改數(shù)組某個(gè)元素值的方法 public void update(int[] arr) { arr[3] = 15; System.out.println("修改后數(shù)組arr的元素為:"); for (int n : arr) { System.out.print(n + " "); } System.out.println(); } public static void main(String[] args) { ArrayDemo arrayDemo = new ArrayDemo(); int[] array = {1, 2, 3, 4, 5}; System.out.println("方法調(diào)用前數(shù)組array的元素為;"); for (int n : array) { System.out.print(n + " "); } System.out.println(); arrayDemo.update(array); System.out.println("方法調(diào)用后數(shù)組array的元素為;"); for (int n : array) { System.out.print(n + " "); } System.out.println(); } }Lecture6 可變參數(shù)列表
可變參數(shù)列表:又稱(chēng)為可變?cè)獏?shù)或者可變參數(shù)類(lèi)型
案例一:
public class ArgsDemo1 { //求和 public void sum(int... n) { int sum = 0; for (int i : n) { sum += i; } System.out.println("sum = " + sum); } public static void main(String[] args) { ArgsDemo1 argsDemo = new ArgsDemo1(); argsDemo.sum(1); argsDemo.sum(1, 2); argsDemo.sum(1, 2, 3); } }
案例二:參數(shù)列表中如果有兩個(gè)以上的參數(shù),可變參數(shù)一定是在最后;可以將數(shù)組傳遞給可變參數(shù)列表,但是數(shù)組作為參數(shù)時(shí),是不能將多個(gè)值傳遞給數(shù)組的
public class ArgsDemo2 { //查找 public void search(int n, int... a) { boolean flag = false; for (int i : a) { if (i == n) { flag = true; break; } } if (flag) { System.out.println("找到了"); } else { System.out.println("沒(méi)找到"); } } public static void main(String[] args) { ArgsDemo2 argsDemo2 = new ArgsDemo2(); argsDemo2.search(3, 1, 2, 3, 4, 5); int[] a = {4, 5, 6, 7, 8}; argsDemo2.search(3, a); } }
Tips:若此時(shí)定義另一個(gè)search方法 -- public void search(int n, int[] array),并不是方法重載而是重復(fù)定義
可變參數(shù)列表作為方法參數(shù)的重載問(wèn)題:可變參數(shù)列表所在的方法是最后被訪問(wèn)的;可變參數(shù)列表和數(shù)組可以同時(shí)作為方法參數(shù)。
案例:
public class ArgsDemo3 { public int plus(int a, int b) { System.out.println("不帶可變參數(shù)列表的方法被調(diào)用"); return a + b; } public int plus(int... a) { int sum = 0; for (int i : a) { sum += i; } System.out.println("帶可變參數(shù)列表的方法被調(diào)用"); return sum; } public int plus(int[] arr, int... a) { int sum1 = 0, sum2 = 0; for (int i : arr) { sum1 += i; } for (int i : a) { sum2 += i; } return sum1 + sum2; } public static void main(String[] args) { ArgsDemo3 argsDemo3 = new ArgsDemo3(); System.out.println("和為:" + argsDemo3.plus(1, 2)); int[] arr = {1, 2, 3}; System.out.println("可變參數(shù)列表和數(shù)組同時(shí)作為方法參數(shù)" + argsDemo3.plus(arr, 1, 2, 3, 4)); } }
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/68524.html
摘要:相比它支持存儲(chǔ)的類(lèi)型相對(duì)更多字符哈希集合有序集合列表,同時(shí)是線程安全的。基于的連接實(shí)例,可以在多個(gè)線程間并發(fā)訪問(wèn),且線程安全,滿足多線程環(huán)境下的并發(fā)訪問(wèn),同時(shí)它是可伸縮的設(shè)計(jì),一個(gè)連接實(shí)例不夠的情況也可以按需增加連接實(shí)例。 SpringBoot 是為了簡(jiǎn)化 Spring 應(yīng)用的創(chuàng)建、運(yùn)行、調(diào)試、部署等一系列問(wèn)題而誕生的產(chǎn)物,自動(dòng)裝配的特性讓我們可以更好的關(guān)注業(yè)務(wù)本身而不是外部的XML...
摘要:一般差異簡(jiǎn)單來(lái)說(shuō),是一個(gè)用于線程同步的實(shí)例方法。暫停當(dāng)前線程,不釋放任何鎖。用來(lái)線程間通信,使擁有該對(duì)象鎖的線程等待直到指定時(shí)間或。執(zhí)行對(duì)該對(duì)象加的同步代碼塊。 在JAVA的學(xué)習(xí)中,不少人會(huì)把sleep和wait搞混,認(rèn)為都是做線程的等待,下面主要介紹下這倆者是什么,及了解它們之間的差異和相似之處。 一般差異 簡(jiǎn)單來(lái)說(shuō),wait()是一個(gè)用于線程同步的實(shí)例方法。因?yàn)槎x在java.l...
摘要:很多網(wǎng)站都有登錄功能,對(duì)于的應(yīng)用我們?cè)趺磳?shí)現(xiàn)權(quán)限的控制呢本篇將為你演示一個(gè)最常用的權(quán)限控制例子用戶(hù)登錄。升級(jí)后使用的版本是。修改這兩個(gè)文件后執(zhí)行命令升級(jí)。到目前為止我們還沒(méi)使用過(guò)任何有關(guān)插件的內(nèi)容。目前官方提供了三種常用的驗(yàn)證器。 很多網(wǎng)站都有登錄功能,對(duì)于Ember的應(yīng)用我們?cè)趺磳?shí)現(xiàn)權(quán)限的控制呢?本篇將為你演示一個(gè)最常用的權(quán)限控制例子:用戶(hù)登錄。 要實(shí)現(xiàn)登錄最常用的方式是通過(guò)判斷se...
摘要:適配器是將接口轉(zhuǎn)換為不同接口,而外觀模式是提供一個(gè)統(tǒng)一的接口來(lái)簡(jiǎn)化接口。 外觀模式(Facade Pattern)屬于結(jié)構(gòu)型模式的一種,為子系統(tǒng)中的一組接口提供一個(gè)統(tǒng)一的入口,它通過(guò)引入一個(gè)外觀角色來(lái)簡(jiǎn)化客戶(hù)端與子系統(tǒng)之間的交互... 概述 外觀模式是一種使用頻率非常高的結(jié)構(gòu)型設(shè)計(jì)模式,當(dāng)你要為一個(gè)復(fù)雜子系統(tǒng)提供一個(gè)簡(jiǎn)單接口時(shí)。子系統(tǒng)往往因?yàn)椴粩嘌莼兊迷絹?lái)越復(fù)雜。大多數(shù)模式使用時(shí)...
閱讀 2767·2021-11-24 10:23
閱讀 1164·2021-11-17 09:33
閱讀 2512·2021-09-28 09:41
閱讀 1427·2021-09-22 15:55
閱讀 3649·2019-08-29 16:32
閱讀 1916·2019-08-29 16:25
閱讀 1065·2019-08-29 11:06
閱讀 3431·2019-08-29 10:55