Day7

一、笔记:

main():程序的入口,用来执行代码
main方法的代码越少越好,main看成你的客户,用来测试写的功能
方法:就是对功能、行为、动作的描述。方法就是一个功能,一个方法对应一个功能。称为:函数

认识、理解功能?

【注】
方法只能在其他方法的外部定义,方法内部只能使用其他方法
方法只能调用方法 ,而不能定义方法。
使用方法:调用方法的名字就可以 ,但是记住在调用方法名字后,一定要加上小括号();
方法的名字采用驼峰式命名法:fangFa
方法只有在调用时才会执行。

方法的好处:提高代码的复用性
定义方法:
 
权限修饰符 修饰符 返回值类型  方法名(参数类型 形式参数1,参数类型 形式参数2...){

    完成功能的代码;
    
    return 返回值;

}

权限修饰符:public
修饰符:static
返回值类型:方法执行后的结果的数据类型
方法名:给功能自定义的名字
参数类型:形式参数的数据类型     int
形式参数:用来接收传入的实际参数   a
实际参数:给形式参数传入的具体的值  5
return返回:用来结束方法,并将返回值返回给调用者
返回值:方法执行后的结果
【注】如果该方法没有结果,返回值类型为void,最后的return语句可以不写


学习方法:
1.无参数、无返回值
2.有参数、无返回值
3.有参数、有返回值

 

写方法:
1.有无参数    是否有未知的东西参与进来? 如果有:明确参数个数,明确参数类型  如果没有:什么都不写
2.有无返回值  方法执行后有没有结果? 如果有:结果是什么  明确返回值类型    如果没有:返回值类型为 void

理解、记死:
1.如果方法有返回值,可以使用输出语句直接打印
2.也可以使用返回值类型所对应的变量进行接收
3.如果方法没有返回值,可以直接拿过来用!
取钱
取经
买东西
卖东西


方法的特性:重载(overload)
概念:一个类中可以有多个同名方法,与返回值无关,只要参数列表(参数个数或者参数类型)不同即可。
重载的好处:提高代码的阅读性

 

 

 

方法

l 格式:

修饰符 返回值类型 方法名(参数类型 参数名1, 参数类型 参数名2, ...) {

方法体;

return 返回值;

}

l 方法使用的注意事项:

1,方法不调用,自己不执行

2,方法中不能定义方法, 但是,方法中可以调用方法

3, 方法定义的位置在类中,其他方法的外面

4, 如果方法没有明确的返回值类型,使用'空'类型, void表示

5,void只能在方法返回值类型位置使用,不能作为 普通的数据类型使用

6, 如果方法返回值类型为void类型,可以省略 return ;

l 方法调用方式:

有明确返回值类型的方法调用方式:

1,单独调用

2,输出调用

3,赋值调用

没有明确返回值类型的方法调用方式:

1, 单独调用

l 方法重载:

方法重载,在同一个类中,出现了多个同名的方法,他们的参数列表不同 (参数列表的个数不同,参数列表的数据类型不同,参数列表的顺序不同)。

方法重载特点:

与方法的返回值类型无关,与方法的参数名无关,只看方法名与参数列表;

方法重载,是通过JVM来完成同名方法的调用的,通过参数列表来决定调用的是哪一个方法。

二、一道题的传说

上图为登录界面,要求定义show方法用来显示登录界面,当登录成功后,显示下图的菜单:

要求上图中的菜单需要定义个menu方法,选择不同的选项实现不同的效果:

如果选则的为2,显示如下图:购物需要定义shopping方法

 

如果选择3,显示以下效果:真情回馈也定义huiKui方法

 

package com.qfedu.tom.grammar_method;

import java.util.Scanner;

public class GoShopping {

	static Scanner sc = new Scanner (System.in);
	static double gouWuJinE =0; 
	
	
	public static void main(String[] args) {
		
		show();
		
	}
	
	/*
	 * 显示
	 */
	public static void  show(){
		
		for(int a =3;a>=1;a--){
			System.out.print("请输入用户名:");
			String user = sc.next();
			System.out.print("请输入密码:");
			String pwd = sc.next();
			if(user.equals("jim") && pwd.equals("666666")){
				menu();
				break;
			}else{
				System.out.println("登录失败,你还有"+(a-1)+"次机会");
			}
		}
	}
	/*
	 * 菜单
	 */
	public static void menu(){
		
		System.out.println("1.客户信息");
		System.out.println("2.购物结算");
		System.out.println("3.回馈");
		System.out.println("4.注销");
		System.out.println("请选择:");
		int xuanZe=sc.nextInt();
		switch(xuanZe){
			case 1:
				System.out.println("客户信息");
				break;
			case 2:
				//调用购物方法
				gouWuJinE = shopping();//购物完成后花的钱存到另一个变量
				menu();
				break;
			case 3:
				huiKui(gouWuJinE);
				break;
			case 4:
				System.out.println("注销");
				break;
			default:
				System.out.println("输入错误");
		}
	}
	
	
	/*
	 * 购物
	 */
	public static  double shopping(){
		double tX  = 100;//T恤价格
		double wQP = 20;//网球拍价格
		double wQX = 300;//网球鞋价格
		double jinE = 0;//打折前的金额
		double zheK = 0.8;//折扣
		double zheHou = 0;//打折后的金额
		System.out.println("1.T恤  2.网球拍  3.网球鞋");
		System.out.println("---------------------");
		while(true){	
			System.out.print("请选择购买的商品编号:");
			int shangPing = sc.nextInt();//选择商品
			System.out.print("请选择购买的件数:");
			int jianShu = sc.nextInt();//商品的件数
			switch(shangPing){
			case 1:
				jinE = jinE+(tX*jianShu);
				System.out.println("T恤¥"+tX +" 数量:"+jianShu+" 合计:"+ jinE);
				break;
			case 2:
				jinE = jinE+(wQP*jianShu);
				System.out.println("网球拍¥"+wQP +" 数量:"+jianShu+" 合计:"+ jinE);
				break;
			case 3:
				jinE = jinE+(wQX*jianShu);
				System.out.println("网球鞋¥"+wQX +" 数量:"+jianShu+" 合计:"+ jinE);
				break;
			default:
				System.out.println("对不起,没有此商品");
			}
			System.out.println("是否继续?y/n");
			String s =sc.next();
			if(s.equals("n")){
				System.out.println("折扣:"+zheK);
			    zheHou = jinE*zheK;//折后价
				System.out.println("应付金额:"+zheHou);
				System.out.print("实付金额:");
				double shiF = sc.nextDouble();//实际付款
				System.out.println("找钱:"+(shiF-zheHou));
				break;
			}
		
		}
		return zheHou;	
	}
	
	
	/*
	 * 回馈
	 */
	public static void huiKui(double jinE){
		double xiaoFeiJinE =jinE;
		double zongJinE = 0;
		System.out.println("您的消费金额为:"+xiaoFeiJinE);
		System.out.println("1.满50加2块换购洗衣粉一袋");
		System.out.println("2.满100加10块换购洗衣粉一桶");
		System.out.println("3.满200加20块换购洗衣粉一箱");
		System.out.println("4.满300加100块换购洗衣粉一车");
		System.out.println("0.不换购");
		System.out.println("请选择:");
		int xuanZe  =sc.nextInt();
		switch(xuanZe){
			case 1:
				if(xiaoFeiJinE<50){
					System.out.println("换不了,拜拜!");
				}else{
					zongJinE += xiaoFeiJinE+2;
					System.out.println("本次消费总金额:"+zongJinE);
					System.out.println("成功换购洗衣粉一袋");
				}
				break;
			case 2:
				if(xiaoFeiJinE<100){
					System.out.println("换不了,拜拜!");
				}else{
					zongJinE += xiaoFeiJinE+10;
					System.out.println("本次消费总金额:"+zongJinE);
					System.out.println("成功换购洗衣粉一瓶");
				}
				break;
			case 3:
				if(xiaoFeiJinE<200){
					System.out.println("换不了,拜拜!");
				}else{
					zongJinE += xiaoFeiJinE+20;
					System.out.println("本次消费总金额:"+zongJinE);
					System.out.println("成功换购洗衣粉一箱");
				}
				break;
			case 4:
				if(xiaoFeiJinE<300){
					System.out.println("换不了,拜拜!");
				}else{
					zongJinE += xiaoFeiJinE+100;
					System.out.println("本次消费总金额:"+zongJinE);
					System.out.println("成功换购洗衣粉一车");
				}
				break;
			case 0:
				System.out.println("本次消费总金额:"+zongJinE);
				break;
			default:
				System.out.println( "大兄弟,你是来捣乱的吧?!");
		}
		
		
	}
}

别说自己尽力了,那只是自欺欺人的假话!!!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值