為什么要用帶參數(shù)的方法
-
定義帶參數(shù)的方法
參數(shù)列表:
(數(shù)據(jù)類(lèi)型 參數(shù)1栏饮,數(shù)據(jù)類(lèi)型 參數(shù)2…)
-
調(diào)用帶參數(shù)的方法
定義帶參數(shù)的方法
<訪問(wèn)修飾符> 返回類(lèi)型 <方法名>(<形式參數(shù)列表>) {
//方法的主體
}
調(diào)用帶參數(shù)的方法
對(duì)象名.方法名(參數(shù)1, 參數(shù)2,……砸捏,參數(shù)n)
public class StudentsBiz {
String[] names = new String[30];
int index = 0;//記錄數(shù)組中學(xué)員的個(gè)數(shù)岛杀,也就是下一個(gè)需要插入數(shù)組的下標(biāo)位置
public void addName(String name)
{
names[index] = name;
index++;
}
public void showNames()
{
for(int i = 0; i < index; i++)
{
System.out.println(names[i]);
}
}
}
public class Test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
StudentsBiz studentsBiz = new StudentsBiz();
for(int i = 0; i < 3; i++)
{
System.out.println("請(qǐng)輸入姓名");
String name = scanner.next();
studentsBiz.addName(name);
}
studentsBiz.showNames();
}
}
帶多個(gè)參數(shù)的方法
在保存了多個(gè)學(xué)生姓名的數(shù)組中呛伴,指定查找區(qū)間粪牲,查找某個(gè)學(xué)生姓名并顯示是否查找成功
設(shè)計(jì)方法猎拨,通過(guò)傳遞三個(gè)參數(shù)(開(kāi)始位置搁凸、結(jié)束位置葱轩、查找的姓名)來(lái)實(shí)現(xiàn)
public class StudentsBiz {
String[] names = {"zhangsan","lisi","wangwu","liudehua"};
public boolean searchName(String name,int start, int end)
{
if(end > names.length)
{
end = names.length;
}
if(start < 0)
{
start = 0;
}
for(int i = start; i < end; i++)
{
if(names[i].equals(name))
{
return true;
}
}
return false;
}
}
調(diào)用方法
public class Main {
public static void main(String[] args) {
// write your code here
// zhangsan,lisi,wangwu,zhaobensan,liudehua
StudentsBiz studentsBiz = new StudentsBiz();
boolean b = studentsBiz.searchName("liudehua2",-5,8);
System.out.println(b);
}
}
數(shù)組作為參數(shù)的方法
有5位學(xué)員參加了Java知識(shí)競(jìng)賽的決賽睦焕,輸出決賽的平均成績(jī)和最高成績(jī)
將5位學(xué)員的決賽成績(jī)保存在數(shù)組中
設(shè)計(jì)求平均成績(jī)藐握、最高成績(jī)的方法,并把數(shù)組作為參數(shù)
public class ScoreCalc {
public int getTotalScore(int[] scores)
{
int totalScore = 0;
for(int i = 0; i < scores.length; i++)
{
totalScore += scores[i];
}
return totalScore;
}
public double getAvgScore(int[] scores)
{
int totalScore = getTotalScore(scores);
return (double) totalScore/scores.length;
}
public int getMaxScore(int[] scores)
{
int max = scores[0];//假設(shè)數(shù)組的第一個(gè)元素是最大
for(int i = 1; i < scores.length; i++)
{
if(max < scores[i])
{
max = scores[i];
}
}
return max;
}
}
public class Main {
public static void main(String[] args) {
// write your code here
ScoreCalc scoreCalc = new ScoreCalc();
int[] arrays = {67,76,88,86,99};
int total = scoreCalc.getTotalScore(arrays);
System.out.println(total);
double avg = scoreCalc.getAvgScore(arrays);
System.out.println(avg);
int max = scoreCalc.getMaxScore(arrays);
System.out.println(max);
}
}
對(duì)象作為參數(shù)的方法
在實(shí)現(xiàn)了增加一個(gè)學(xué)生姓名的基礎(chǔ)上垃喊,增加學(xué)生的學(xué)號(hào)猾普、年齡和成績(jī),并顯示這些信息本谜,如何實(shí)現(xiàn)初家?
方式一:設(shè)計(jì)帶四個(gè)參數(shù)(學(xué)號(hào)、姓名乌助、年齡溜在、成績(jī))的方法
方式二:將學(xué)生學(xué)號(hào)、姓名他托、年齡掖肋、成績(jī)封裝在學(xué)生對(duì)象中,設(shè)計(jì)方法赏参,以學(xué)生對(duì)象作為參數(shù)
可以將多個(gè)相關(guān)的信息封裝成對(duì)象志笼,作為參數(shù)傳遞,避免方法有太多的參數(shù)把篓!
為什么需要包
Windows樹(shù)形文件系統(tǒng)
文檔分門(mén)別類(lèi)纫溃,易于查找和管理
使用目錄解決文件同名沖突問(wèn)題
包命名規(guī)范
包名由小寫(xiě)字母組成,不能以圓點(diǎn)開(kāi)頭或結(jié)尾
包名之前最好加上唯一的前綴纸俭,通常使用組織倒置的網(wǎng)絡(luò)域名
package net.javagroup.mypackage;
包名后續(xù)部分依不同機(jī)構(gòu)內(nèi)部的規(guī)范不同而不同
用intelij創(chuàng)建包和類(lèi)
包與目錄的關(guān)系
創(chuàng)建好的包和Java源文件是如何存儲(chǔ)的皇耗?
創(chuàng)建包c(diǎn)n.company.classandobject ,
即創(chuàng)建了目錄結(jié)構(gòu):cn\company\classandobject
如何導(dǎo)入包
為了使用不在同一包中的類(lèi)揍很,需要在Java程序中使用import關(guān)鍵字導(dǎo)入這個(gè)類(lèi)
本節(jié)練習(xí)
創(chuàng)建包bank.com郎楼,
編寫(xiě)Account類(lèi),添加帶參
方法實(shí)現(xiàn)存款和取款業(yè)務(wù)窒悔,
存款時(shí)帳戶初始金額為0元呜袁,
取款時(shí)如果余額不足給出提示
public class Main {
public static void main(String[] args) {
// write your code here
Scanner scanner = new Scanner(System.in);
int command = 0;//命令
//初始化賬戶對(duì)象
Account account = new Account();
while (true)
{
System.out.println("1 存款 2 取款 0 退出");
System.out.println("請(qǐng)選擇要辦理的業(yè)務(wù)");
command = scanner.nextInt();
if(command == 1)//存款
{
System.out.println("請(qǐng)輸入金額");
//獲取用戶輸入的金額
int value = scanner.nextInt();
account.saveMoney(value);
account.showMoney();
}
else if(command == 2)
{
System.out.println("請(qǐng)輸入金額");
//獲取用戶輸入的金額
int value = scanner.nextInt();
account.getMoney(value);
account.showMoney();
}
else if(command == 0)
{
break;
}
else
{
System.out.println("錯(cuò)誤的命令");
}
}
System.out.println("程序退出");
}
}