方法学习

2020.4.22 方法总结

1.返回值
1.1返回值定义
调用方法之后返回来的信息
e.g
去餐厅吃饭,端上来的菜品
去ATM取钱,ATM给我们的钱
	以上都是返回值的一个生活解释
1.2 代码中返回值需要使用的关键字
return 
	返回
作用:
	1. 结束当前方法的执行
	2. 返回return之后的数据,到方法之外,要求返回值的数据和方法声明位置告知调用者的返回值数据类型一致
	【数据类型一致化】
1.3 完成一个无参数有返回值的方法
1.3.1 方法分析
需求
	give me five
	返回一个5

方法分析:
	固定格式:
		public static 不要问
	返回值类型【重点】:
		返回值是一个55是什么数据类型?
		int类型
	方法名:
		giveMeFive 
	形式参数列表:
		这里是返回一个数据5,不需要参数
		()

方法声明:
	public static int giveMeFive()
1.3.2 方法实现和文档注释
/*
@return 
	在文档注释中告知调用者,当前方法的返回值是什么类型,怎么解释,什么含义
*/
/**
* 该方法返回一个5,一个整数
*
* @return 返回一个整数5
*/
public static int giveMeFive() {
    return 5;
}
1.3.3 方法调用过程
class Method1 {
	public static void main(String[] args) {
		/*
		调用一个带有返回值的方法
			返回值怎么用???
			赋值,运算,打印
			
			方法的返回值返回到之外,调用者决定当前结果的
			使用方式。
		*/
		int ret = 0;
		
		System.out.println("调用方法之前 ret : " + ret);
		
		ret = giveMeFive();
		System.out.println("直接调用方法:" + giveMeFive());
		
		System.out.println("调用方法之后 ret : " + ret);
	}
	
	/**
	* 该方法返回一个5,一个整数
	*
	* @return 返回一个整数5
	*/
	public static int giveMeFive() {
		return 5;
	}
}
1.3.4 执行过程图例

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-poCyc0oE-1587712309865)(D:\BaiduNetdiskDownload\img\带有返回值方法执行图例.png)]

1.3.5 小总结
1. 返回值使用的关键字 return关键字
2. 带有返回值的方法,需要在文档注释中加入@return 告知调用者方法返回值的类型,含义...
3. 方法返回值类型和方法体内返回数据的类型必须一致,如果不一致报错,【数据类型一致化】
4. 方法的返回值处理方式,由程序员自己决定,因为我们现在只会sout,但是不代表只有sout。后期数据的处理方式有很多,传递,展示,发送,保存。。。。
1.4.1 方法分析
/*
需求:
	计算两个int类型数据之和,通过返回值返回到方法外
	1. 可以从需求中获取到当前方法需要两个参数
	2. 方法的返回值可以考虑使用int类型,或者long类型

方法分析:	
	固定格式:
		public static 不要问
	返回值类型:
		int 可以使用,没有问题,符合人之常情的理解
		long 可以满足如果出现两个int类型数据相加之后,结果超出了int类型范围,可
			以使用long
	方法名:
		 getSumOfTwoNumber
		 小驼峰命名法,见名知意,动宾结构
	形式参数列表:
		两个int类型数据之和,多个参数的情况下使用 逗号隔开
		(数据类型1 参数名1, 数据类型2 参数名2 ...)
		(int num1, int num2) 正确格式

方法声明:
	public static int getSumOfTwoNumber(int num1, int num2)
*/
1.4.2 方法实现和文档注释
/**
* 该方法是传入两个int类型的数据,返回值是两数之和
*
* @param num1 int类型数据
* @param num2 int类型数据
* @return 返回值类型为int类型,是两个int类型数据之和
*/
public static int getSumOfTwoNumber(int num1, int num2) {
    return num1 + num2;
}
class Method3 {
	public static void main(String[] args) {
		/*
		当前方法需要两个参数,并且有返回值
		这里需要参数类型是int类型,给予当前方法两个int类型
		实际参数
		调用带有多参数的方法,要求传入的参数数据类型,个数和
		顺序必须和方法声明一致
		*/
		int sum = 0;
		
		System.out.println("方法运行之前 sum : " + sum);
		sum = getSumOfTwoNumber(30, 20);
		System.out.println("方法运行之后 sum : " + sum);
		
	}
	
	/**
	* 该方法是传入两个int类型的数据,返回值是两数之和
	*
	* @param num1 int类型数据
	* @param num2 int类型数据
	* @return 返回值类型为int类型,是两个int类型数据之和
	*/
	public static int getSumOfTwoNumber(int num1, int num2) {
		return num1 + num2;
	}
}
1.4.4 小总结
调用带有多参数的方法,要求传入的参数数据类型,个数和顺序必须和方法声明一致
2 .局部变量问题
2.1 思考代码
class Method9 {
	public static void main(String[] args) {
        int num = 5;
        test(num);
        
        // 5 为什么是5
        System.out.println(num);
    }
    
    public static void test(int num) {
        num = 10;
    }
}
2.2 局部变量概念
局部变量概念
	除class大括号之外,其他大括号以内的变量都可以认为是一个局部变量。
	方法大括号以内,if分支结构以内,switch case结构大括号以内,循环大括号以内
	以上大括号以内全部都是【局部变量】
	
作用域
	当前局部变量能够使用的范围在什么地方
	局部变量有且只能在当前所处大括号以内使用,超出范围无法使用
	
	青岛校区刘磊 和 郑州校区刘磊,没有关系,跨区域
	一个网吧充值会员100块,换一个网吧不能使用,作用域	
	
生存期
	局部变量的生存期也在大括号以内,和作用域一致。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-17iG40tR-1587712309868)(D:\BaiduNetdiskDownload\img\值传递.png)]

3.作业
/*a. 尝试完成对于循环点菜代码的方法封装,要求功能单一化
*/
  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 {
			// 从键盘上获取用户输入的int类型数据,用户选择
			// 保存到choose变量中
            choose = sc.nextInt();
			
			
			
			// orderDishes方法,传入用户的选择,返回值是菜品的价格
			int price = orderDishes(choose);
			
			// 总价 + 菜品的价格
			total = total + price;
            
			// 开发中常用写法
			// 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;
    }
}
4.总结
4.1 方法的三要素
返回值类型	
	当前方法运行之后对外的数据产出
方法名
	明确告知用户这里运行的方法是哪一个,执行的效果会怎么样。
	小驼峰命名法,见名知意,动宾结构
形式参数列表
	巧妇难为无米之炊,方法运行所需的外来数据,方法运行的必要条件!!!
4.1.1 方法名
规矩
	1. 只能用英文字母(A ~ Z a ~ z), 数字(0 ~ 9),还有下划线 _
	2. 见名知意,动宾结构
		好的代码从方法名开始
	3. 小驼峰命名法
		行为规范
		setXXX
		getXXX
		remove
		add
		delete
		update
		attribute
4.1.2 返回值类型
返回值
	1. 没有什么必要和不必要,需求分析过程!!!
	2. 返回值的数据类型
	3. 返回值的数据含义
	4. 返回值每一次有且只能返回一个数据
4.1.3 形式参数列表
巧妇难为无米之炊!
	需求分析过程!!!
	
	用户注册
		用户名,手机号,密码....
	
	用户购物下单
		用户地址,money
		
	做菜
		酱牛肉
		牛肉,葱,姜,蒜,料酒,八角,花椒,麻椒,辣椒,小茴香,香叶,桂皮,
		山奈,老抽,冰糖,耗油,黄豆酱
	
	形式参数实际上是在对于方法分析过程中,了解方法运行需要必要参数,并且在参数使用必要性上做论证。
4.2 方法的完成过程
1. 需求分析
    方法名,形式参数列表,返回值类型
   
2. 考虑方法的执行流程
    可以采用注释辅助完成方法的执行流程
   
3. 实现代码
    按照注释完成代码
    【不要头铁】【不要自大】【认清自我】
    【知错就改】
   
4. 验证
    代码运行验证,正确参数情况,运行结果怎么样
    错误参数是,代码反馈是什么
    代码的稳定性,健壮性,安全性
    【方法中需要使用参数合法性判断】

		用户地址,money
		
	做菜
		酱牛肉
		牛肉,葱,姜,蒜,料酒,八角,花椒,麻椒,辣椒,小茴香,香叶,桂皮,
		山奈,老抽,冰糖,耗油,黄豆酱
	
	形式参数实际上是在对于方法分析过程中,了解方法运行需要必要参数,并且在参数使用必要性上做论证。
4.2 方法的完成过程
1. 需求分析
    方法名,形式参数列表,返回值类型
   
2. 考虑方法的执行流程
    可以采用注释辅助完成方法的执行流程
   
3. 实现代码
    按照注释完成代码
    【不要头铁】【不要自大】【认清自我】
    【知错就改】
   
4. 验证
    代码运行验证,正确参数情况,运行结果怎么样
    错误参数是,代码反馈是什么
    代码的稳定性,健壮性,安全性
    【方法中需要使用参数合法性判断】
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值