這一節我們學習在實際開發中如何定義一個函數,也就是如何定義一個功能.
要定義一個功能,就要用兩個明確來完成:
明確一:這個功能的結果是什么;
明確二:這個功能實現過程中是否需要未知內容參與運算.
我們直接看下面代碼:
~~~
class FunctionDemo2 //兩個明確
{
public static void main(String[] args)
{
int num = 65;
System.out.println(num+"分對應的等級:"+getLevel(num));
print99();
}
/*
需求1:定義一個功能,完成兩個整數的和的獲取
思路:
既然定義功能,就是可以用函數來實現
如何定義一個函數呢?
通過兩個明確來完成
明確一:這個功能的結果是什么? 是和,是功能的結果,所以該功能的返回值類型是int
其實就是在明確函數的返回值類型
明確二:這個功能實現過程是否需要未知內容參與運算? 有,加數和被加數,這就是函數的參數列表(參數的個數+參數的類型)
其實就明確參數列表
*/
public static int add(int a,int b)
{
return a+b;
}
/*
需求2:定義一個功能,畫一個矩形在控制臺
思路:
明確一:這個功能的結果是什么? 沒有結果,直接打印到控制臺,并未返回給調用者,用void表示
明確二:這個功能實現過程是否需要未知內容參與運算? 有,行和列不確定.兩個整數int
*/
public static void draw(int row,int col)
{
for(int x=1;x<=row;x++)
{
for(int y=1;y<=col;y++)
{
System.out.print("*");
}
System.out.println();
}
}
/*
需求3:定義一個功能,比較兩個數年是否相等
思路:
明確一:這個功能的結果是什么?
有,比較結果boolean
明確二:這個功能實現過程是否需要未知內容參與運算?
有,兩個整數
*/
public static boolean equals(int a,int b)
{
/*
if(a==b)
return true;
else
return false;
*/
//(a==b)?true:false;
return a==b;
}
/*
需求4:定義一個功能,獲取兩個數中較大的數
思路:
明確一:這個功能的結果是什么?
有,兩個整數中較大的數
明確二:這個功能實現過程是否需要未知內容參與運算?
有,參與比較的兩個參數
*/
public static int getMax(int a,int b)
{
/*if(a>b)
return a;
else
return b;
*/
return (a>b)?a:b;
}
/*
需求5:定義一個功能,打印99乘法表
思路:
明確一:這個功能的結果是什么?
沒有,直接在控制臺輸出99乘法表
明確二:這個功能實現過程是否需要未知內容參與運算?
沒有
*/
public static void print99()
{
for(int x=1;x<=9;x++)
{
for(int y=1;y<=x;y++)
{
System.out.print(y+""+x+"="+y*x+"\t");
}
System.out.println();
}
}
/*
需求6:根據考試成績獲取學生分數對應的等級
90~100 A
80~89 B
70~79 C
60~69 D
60以下 E
思路:
明確一:這個功能的結果是什么?
有,返回等級char
明確二:這個功能實現過程是否需要未知內容參與運算?
有,學生的分數int
*/
public static char getLevel(int num)
{
if(num>=90&&num<100)
return 'A';
else if(num>=80&&num<89)
return 'B';
else if(num>=70&&num<79)
return 'C';
else if(num>=60&&num<69)
return 'D';
else
return 'E';
}
}
~~~
我們在上面的幾個不同功能中都運用了兩個明確來分析,實現不同的功能.
- 前言
- 1.1 基本常識
- 1.2 Java語言概述
- 1.3 Java語言的環境搭建
- 1.4 Java程序開發之初體驗--Hello World
- 2.1 關鍵字
- 2.2 標識符
- 2.3 注釋
- 2.4 常量
- 2.5 進制掃盲
- 2.6 變量和數據類型(1)
- 2.7 變量和數據類型(2)
- 2.8 運算符
- 3.1 if語句
- 3.2 switch語句
- 3.3 while和do-while語句
- 3.4 for語句
- 3.5 for循環的嵌套
- 3.6 break語句與continue語句
- 4.1 函數的定義
- 4.2 定義函數的兩個明確
- 4.3 函數的內存加載過程
- 4.4 函數的重載
- 5.1 數組的定義
- 5.2 數組的內存分配及特點
- 5.3 數組操作中常見問題
- 5.4 數組常用操作(1)
- 5.5 數組常用操作(2)
- 5.6 二維數組
- 6.1 面向對象的概述
- 6.2 類與對象的關系
- 6.3 對象的內存體現
- 6.4 成員變量與局部變量
- 6.5 類類型參數與匿名對象
- 6.6 基本數據類型參數與引用數據類型參數的傳遞過程
- 6.7 封裝
- 7.1 構造函數概述與默認構造函數
- 7.2 構造函數與一般函數的區別
- 7.3 構造函數的重載
- 7.4 構造函數的內存加載
- 7.5 構造函數需要注意的幾個細節
- 7.6 this關鍵字的原理
- 7.7 this關鍵字的細節與應用
- 8.1 static關鍵字之特點
- 8.2 成員變量與靜態變量的區別
- 8.3 static關鍵字使用的注意細節
- 8.4 main函數的解析與細節
- 8.5 static關鍵字的使用場景
- 8.6 靜態的內存加載
- 8.7 靜態代碼塊
- 8.8 構造代碼塊
- 9.1 繼承
- 9.2 單繼承與多重繼承
- 9.3 子父類中成員變量特征體現