目录
概念: 在同一个类中,出现多个方法名相同,参数列表不同的方法。
这些方法称为方法重载.
调用时根据传递的参数而决定调用哪个方法。
import java.util.Random;
import java.util.Scanner;
public class Test01 {
public static void main(String[] args) {
add(10.5,15.0);
}
//求和--两个整数的和
public static int add(int a,int b){
System.out.println("~~~~~~~~add(int a,int b)~~~~~~");
int r=a+b;
return r;
}
//求和-两个小数的和
public static double add(double a,double b){
System.out.println("===============add(double a,double b)==============");
double r=a+b;
return r;
}
//求和-一个整数和一个小数
public static double add(double a,int b){
System.out.println("**************add(double a,int b)**************");
double r=a+b;
return r;
}
}
22.1可变参数的方法
调用方法时可以根据需要传递若干个参数值。
public static 返回类型 方法(数据类型... 参数名){
}
import java.util.Arrays;
public class Test02 {
public static void main(String[] args) {
// fun();
// fun(10);
// fun(10,15);
fun(10,15,158);
}
public static void fun(int... a){ //数组类型
System.out.println("~~~~~~~~~~~~~~~"+ Arrays.toString(a));
//遍历a数组
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
System.out.println("==================================");
for (int b : a) {
System.out.println(b);
}
}
}
22.2值传递和引用传递
public class Test03 {
public static void main(String[] args) {
// int b = 20;
// fun(b);
// System.out.println("b========" + b);
int[] c={1,10,20};
System.out.println(c);
fun(c);
System.out.println(c[0]);
}
//基本类型[byte short int long float double boolean char]传递: 相当于做了copy功能
public static void fun(int a) {
a = 15;
}
public static void fun(int[] a) {
a[0] = 15;
}
}
22.3储物柜系统(面试题)
1.控制语句
2. 数组
3. 随机数
4.Scanner
完成界面
//1.界面的展示
public static void view(){
System.out.println("~~~~~~~~~~~欢迎进入AAA超市储物柜系统~~~~~~~~~~~~~~~\n");
//循环一半储物柜
for(int i=0;i<box.length/2;i++){
//表示该储物柜里面没有存放内容
if(box[i]==0){
System.out.print("□\t");
}else{
System.out.print("■\t");
}
}
System.out.println();
//循环打印柜子的编号
for(int i=0;i<box.length/2;i++){
System.out.print(i+1+"\t");
}
System.out.println("\n");
//循环另一半柜子
for(int i=box.length/2;i<box.length;i++){
//表示该储物柜里面没有存放内容
if(box[i]==0){
System.out.print("□\t");
}else{
System.out.print("■\t");
}
}
System.out.println();
//循环打印柜子的编号
for(int i=box.length/2;i<box.length;i++){
System.out.print(i+1+"\t");
}
System.out.println("\n");
System.out.println("1.存包\t2.取包\t3.退出");
}
存包功能
//2. 存包
public static void save() {
boolean flag = true;//表示储物柜已满
for(int i=0;i<box.length;i++){
//表示该柜子空
if(box[i]==0){
//1.随机生成一个5位数的密码。10000~99999
Random random=new Random();
int pwd= random.nextInt(90000)+10000;
box[i]=pwd;
System.out.println("请使用"+(i+1)+"号箱,密码为:"+pwd);
flag=false;
break;
}
}
if(flag==true){
System.out.println("对不起,储物柜已满.");
}
}
22.4取包
//3.取包
public static void take(int num,int pwd){
if(num<0||num>box.length){
System.out.println("请输入正确的箱号");
}else{
//表示箱号和密码正确
if(box[num-1]==pwd){
box[num-1]=0;
System.out.println(num+"号箱被打开...");
}else{
System.out.println("箱号或密码错误.");
}
}
}