1. 可变参数
在JDK1.5之后,如果我们定义一个方法需要接受多个参数,并且多个参数类型一致,我们可以对其简化.
格式:
修饰符 返回值类型 方法名(参数类型... 形参名){ }
2025/1/6大约 11 分钟
在JDK1.5之后,如果我们定义一个方法需要接受多个参数,并且多个参数类型一致,我们可以对其简化.
格式:
修饰符 返回值类型 方法名(参数类型... 形参名){ }
格斗游戏,每个游戏角色的姓名,血量,都不相同,在选定人物的时候(new 对象的时候),这些信息就应该被确定下来。
举例:
程序运行之后结果为:
姓名为:乔峰 血量为:100
姓名为:鸠摩智 血量为:100
乔峰举起拳头打了鸠摩智一下,造成了 XX 点伤害,鸠摩智还剩下 XXX 点血。
鸠摩智举起拳头打了鸠摩智一下,造成了 XX 点伤害,乔峰还剩下 XXX 点血。
乔峰举起拳头打了鸠摩智一下,造成了 XX 点伤害,鸠摩智还剩下 XXX 点血。
next()、nextLine()、nextInt()、nextDouble()。
可以接受任意数据,但是都会返回一个字符串。
比如:键盘录入 abc,那么会把 abc 看做字符串返回。
键盘录入 123,那么会把 123 看做字符串返回。
Scanner sc = new Scanner(System.in);
String s = sc.next();//录入的所有数据都会看做是字符串
System.out.println(s);
需求:
机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。
按照如下规则计算机票价格:旺季(5-10 月)头等舱 9 折,经济舱 8.5 折,淡季(11 月到来年 4 月)头等舱 7 折,经济舱 6.5 折。
代码示例:
package com.itheima.test;
import java.util.Scanner;
public class Test1 {
public static void main(String[] args) {
/* 机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。
按照如下规则计算机票价格:旺季(5-10月)头等舱9折,经济舱8.5折,淡季(11月到来年4月)头等舱7折,经济舱6.5折。*/
//分析:
//1.键盘录入机票原价、月份、头等舱或经济舱
Scanner sc = new Scanner(System.in);
System.out.println("请输入机票的原价");
int ticket = sc.nextInt();
System.out.println("请输入当前的月份");
int month = sc.nextInt();
System.out.println("请输入当前购买的舱位 0 头等舱 1 经济舱");
int seat = sc.nextInt();
//2.先判断月份是旺季还是淡季
//ctrl + alt + M 自动抽取方法
if (month >= 5 && month <= 10) {
//旺季 //3.继续判断当前机票是经济舱还是头等舱
//ticket = getPrice(ticket, seat, 0.9, 0.85);
ticket = getTicket(ticket, seat, 0.9, 0.85);
} else if ((month >= 1 && month <= 4) || (month >= 11 && month <= 12)) {
//淡季
//ticket = getPrice(ticket, seat, 0.7, 0.65);
ticket = getTicket(ticket, seat, 0.7, 0.65);
} else {
//表示键盘录入的月份是一个非法数据
System.out.println("键盘录入的月份不合法");
}
System.out.println(ticket);
}
public static int getTicket(int ticket, int seat, double v, double v2) {
if (seat == 0) {
//头等舱
ticket = (int) (ticket * v);
} else if (seat == 1) {
//经济舱
ticket = (int) (ticket * v2);
} else {
System.out.println("没有这个舱位");
}
return ticket;
}
//1.我要干嘛?根据舱位和折扣来计算最终的票价
//2.我干这件事,需要什么才能完成?原价 舱位 头等舱的折扣 经济舱的折扣
//3.方法的调用处是否需要继续使用这个结果 需要
/* public static int getPrice(int ticket, int seat, double v0, double v1) {
if (seat == 0) {
//头等舱
ticket = (int) (ticket * v0);
} else if (seat == 1) {
//经济舱
ticket = (int) (ticket * v1);
} else {
System.out.println("没有这个舱位");
}
return ticket;
}*/
}