一、笔记:
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( "大兄弟,你是来捣乱的吧?!");
}
}
}
别说自己尽力了,那只是自欺欺人的假话!!!