学习目标:
了解如何使用数组返回多个值,导包和方法重载
学习内容:
1、 使用数组返回多个值
2、 导包
3、 方法重载
学习步骤:
1、使用数组返回多个值
代码如下:
package com.hg.day15.demo01;
public class Demo01ArrayParam {
public static void main(String[] args) {
int[] array = {10,20,30,40,50};
System.out.println(array);//地址的哈希值
printArray(array);
}
//数组作为参数 传递的始终是地址值
public static void printArray(int[] arrayTemp) {
System.out.println("printArray方法接收到的参数是:");
System.out.println(arrayTemp);//接收的地址
for (int i = 0; i < arrayTemp.length; i++)
{
System.out.println(arrayTemp[i]);
}
}
}
运行结果:
代码如下:
package com.hg.day15.demo01;
public class Demo02ArrayReturn {
public static void main(String[] args) {
int[] result = calculate(10,20,30);
System.out.println("main 方法接收到的返回值:");
System.out.println(result);
System.out.println("总和:"+result[0]);
System.out.println("平均值:"+result[1]);
System.out.println("=================");
}
//这个写法始终只能返回一个值 使用数组返回多个值
public static int[] calculate(int a,int b,int c)
{
int sum=a+b+c;
int avg = sum/3;
int[] array = new int[2];
array[0] = sum;
array[1] = avg;
System.out.println("calculate 方法内部数组是:");
System.out.println(array);
return array;
}
}
运行结果:
2、导包
概念:
为了更好地组织类,Java提供了包机制,用于区别类名的命名空间。
其实可以理解为就是文件夹,并且使用树形目录的存储方式。
定义格式:
improt 包路径.类名称
如果需要使用的目标类,和当前类位于同一个包下,则可以省略导包语句
默认只有java.lang包下的内容可以不导包 其他路径下都需要improt 导包
代码如下:
package com.hg.day15.demo02;
//导包
import java.util.Scanner;
/*
1、导包
improt 包路径.类名称
如果需要使用的目标类,和当前类位于同一个包下,则可以省略导包语句
默认只有java.lang包下的内容可以不导包 其他路径下都需要improt 导包
2、创建对象
3、使用成员方法
获取键盘输入的int数字 int num=sc.nextInt();
获取键盘输入的字符串 String str=sc.next();
*/
public class Demo01Scanner {
public static void main(String[] args) {
//创建对象
Scanner sc=new Scanner(System.in);
System.out.println("请输入一个整数:");
int num = sc.nextInt();
System.out.println("输入的INT 数字是"+num);
System.out.println("请输入一个字符串:");
String str= sc.next();
System.out.println("输入的字符串是"+str);
}
}
运行结果:
求两个数的和:
import java.util.Scanner;
/*
题目:
求输入两个int数字的和
思路:
1、既然要输入,就要用到scanner
2、scanner 三步骤 导包、创建、使用方法
3、需要两个int数字,应该使用nextint()
4、得到两个数字后,直接相加
5、打印输出结果
*/
public class Demo02ScannerSum {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个数字:");
int a=sc.nextInt();
System.out.println("请输入第二个数字:");
int b=sc.nextInt();
int result = a+b;
System.out.println("结果是"+result);
}
}
运行结果:
package com.hg.day15.demo03;
import java.util.Random;
/*
Random 类用来生成随机数,
使用三步骤
1、导包
2、创建
3、使用方法
说明
直接只用int num=rand.nextInt();
参数的随机数是整个int范围 有正负两种
如果有参数使用int num=rand.nextint(10);
*/
public class Demo01Random {
public static void main(String[] args) {
Random rand = new Random();
int num = rand.nextInt();
System.out.println("无参随机数:"+num);
System.out.println("=========");
for (int i = 0; i <100;i++)
{
int num1 = rand.nextInt(10);//[0,10)---->[0,9]整数
System.out.println("有参随机数:"+num1);
}
System.out.println("=========");
for (int i = 0; i <100;i++)
{
int num1 = rand.nextInt(10)+1;//[0,9]---->[1,10]整数
System.out.println("有参随机数:"+num1);
}
}
}
运行结果:
猜数字游戏,1~100之间的数字
package com.hg.day15.demo03;
import java.util.Random;
import java.util.Scanner;
//猜数字1~100之间的数字
public class Demo02RandandomGame {
public static void main(String[] args) {
Random r = new Random();
int random = r.nextInt(100)+1;//[1,100]
Scanner sc = new Scanner(System.in);
while(true) {
System.out.println("请输入你猜的数字:");
int guessNum = sc.nextInt();
if(guessNum>random)
{
System.out.println("您猜大了,请重试!");
}else if(guessNum<random)
{
System.out.println("您猜小了,请重试!");
}else
{
System.out.println("猜对了");
break;
}
}
}
}
3、方法重载
1、为什么需要方法的重载
对于功能类似的方法来说,因为参数列表不一样,却需要记住很多不同的参数的方法,太麻烦
方法的重载(Oberload):多个方法的名称一样,但是参数列表不一样
好处:只需要记住唯一一个方法名称,就可以实现多个功能
package com.hg.day15.demo04;
/*
重载与下列因素有关
1、参数个数不同
2、参数类型不同
3、参数顺序不同
重载与下列因素无关
1、与参数的名称无关
2、与返回值类型无关
*/
public class Demo01MetodOver {
public static void main(String[] args) {
System.out.println(sum(10,20));
System.out.println(sum(10,20.0));
System.out.println(sum(10.0,20));
System.out.println(sum(10.0,20.0));
System.out.println(sum(10,20,30));
}
public static int sum(int a,int b) {
System.out.println("参数为int,int");
return a+b;
}
public static double sum(int a,double b) {
System.out.println("参数为int,double");
return a+b;
}
public static double sum(double a,int b) {
System.out.println("参数为double,int");
return a+b;
}
public static double sum(double a,double b) {
System.out.println("参数为double,double");
return a+b;
}
public static int sum(int a,int b,int c) {
System.out.println("参数为int,int,int");
return a+b+c;
}
}