方法总结
方法的三要素
返回值类型
当前方法运行之后对外的数据产出
方法名
明确告知用户这里运行的方法是哪一个,执行的效果会怎么样。
小驼峰命名法,见名知意,动宾结构
形式参数列表
巧妇难为无米之炊,方法运行所需的外来数据,方法运行的必要条****件!!!
方法名
- 只能用英文字母(A ~ Z a ~ z), 数字(0 ~ 9),还有下划线 _
- 见名知意,动宾结构
好的代码从方法名开始 - 小驼峰命名法
行为规范
setXXX
getXXX
remove
add
delete
update
attribute
- 见名知意,动宾结构
返回值
1. 没有什么必要和不必要,需求分析过程!!!
2. 返回值的数据类型
3. 返回值的数据含义
4. 返回值每一次有且只能返回一个数据
形式参数列表
需求分析过程!!!
用户注册
用户名,手机号,密码....
用户购物下单
用户地址,money
方法完成过程
-
需求分析
方法名,形式参数列表,返回值类型 -
考虑方法的执行流程
可以采用注释辅助完成方法的执行流程 -
实现代码
按照注释完成代码
【不要头铁】【不要自大】【认清自我】
【知错就改】 -
验证
代码运行验证,正确参数情况,运行结果怎么样
错误参数是,代码反馈是什么
代码的稳定性,健壮性,安全性
【方法中需要使用参数合法性判断】
方法封装完成点菜
/**
-
根据用户的选择,返回对应菜品的价格,如果选择6下单
-
@param choose int数据类型,用户的选择
-
@return 这里返回的数据是菜品的价格,返回0表示用户退出选择
*/
public static int orderDishes(int choose) {
int price = 0;switch (choose) {
case 1:
System.out.println(“1. 青岛啤酒 8RMB”);
price = 8;
break;
case 2:
System.out.println(“2. 野格 88RMB”);
price = 88;
break;
case 3:
System.out.println(“3. 江小白 25RMB”);
price = 25;
break;
case 4:
System.out.println(“4. 乌苏 6RMB”);
price = 6;
break;
case 5:
System.out.println(“5. 1664 18RMB”);
price = 18;
break;
case 6:
System.out.println(“6. 下单”);
break;
default:
System.out.println(“选择错误”);
break;
}return price;
}
方法分析过程
方法1:
需求:
展示菜单固定格式:
public static 不要问
返回值类型:
不需要返回值
void
方法名:
展示菜单
showMenu
形式参数列表:
不需要参数
()
方法声明:
public static void showMenu()
方法2:
需求:
根据用户的选择,提示用户选择的菜品,并且返回菜品价格供计算使用
固定格式:
public static 不要问
返回值类型:
这里返回的数据类型是菜品的价格,菜品价格为int类型
int
方法名:
orderDishes
点菜
形式参数列表:
这里需要参数,为用户的选择!!!
(int choose)
import java.util.Scanner;
class HomeWork1 {
public static void main(String[] args) {
// 总价
int total = 0;
// 用户选择
int choose = 0;
// 准备一个Scanner扫描器变量
Scanner sc = new Scanner(System.in);
showMenu();
do {
choose = sc.nextInt();
total += orderDishes(choose);
} while (choose != 6);
System.out.println("总消费 : " + total);
}
/**
* 展示菜单给用户使用
*/
public static void showMenu() {
System.out.println("欢迎来到骚磊老酒馆");
System.out.println("1. 青岛啤酒 8RMB");
System.out.println("2. 野格 88RMB");
System.out.println("3. 江小白 25RMB");
System.out.println("4. 乌苏 6RMB");
System.out.println("5. 1664 18RMB");
System.out.println("6. 下单");
}
/**
* 根据用户的选择,返回对应菜品的价格,如果选择6下单
*
* @param choose int数据类型,用户的选择
* @return 这里返回的数据是菜品的价格,返回0表示用户退出选择
*/
public static int orderDishes(int choose) {
int price = 0;
switch (choose) {
case 1:
System.out.println("1. 青岛啤酒 8RMB");
price = 8;
break;
case 2:
System.out.println("2. 野格 88RMB");
price = 88;
break;
case 3:
System.out.println("3. 江小白 25RMB");
price = 25;
break;
case 4:
System.out.println("4. 乌苏 6RMB");
price = 6;
break;
case 5:
System.out.println("5. 1664 18RMB");
price = 18;
break;
case 6:
System.out.println("6. 下单");
break;
default:
System.out.println("选择错误");
break;
}
return price;
}
}
注意局部变量 作用域 生存期
局部变量概念
除class大括号之外,其他大括号以内的变量都可以认为是一个局部变量。
方法大括号以内,if分支结构以内,switch case结构大括号以内,循环大括号以内
以上大括号以内全部都是【局部变量】
作用域
当前局部变量能够使用的范围在什么地方
局部变量有且只能在当前所处大括号以内使用,超出范围无法使用
青岛校区刘磊 和 郑州校区刘磊,没有关系,跨区域
一个网吧充值会员100块,换一个网吧不能使用,作用域
生存期
局部变量的生存期也在大括号以内,和作用域一致。
例题中的两个choose即作用在不同的作用域