学习目标
1:数组
2:JavaAPI导包
3:Random
4:方法重载
一:数组
例一:
package com.hg.demo01;
public class Demo01ArrayParam {
public static void main (String[] args) {
int[] array = new int [] {1,2,3,4,5};
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.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]);
}
//这个写法始终只能返回一个值
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;
}
}
二:导包
API(Application Programming Interface),应用程序编程接口。Java API是一本程序员的字典),是JDK中提供给我们使用的类的说明文档。这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何形成的,这些类如何使用即可。所以我们可以通过查询API的方式,来学习Java提供的类,并得知如何使用它们。
2、API使用步骤:
1.打开帮助文档。
2.点击显示,找到索引,看到输入框。
3.你要找谁?在输入框里输入,然后回车。
4.看
包。java.lang 下的类不需要导包,其他需要。
5.看类的解释和说明。
6.学习构造方法。
3、引用类型使用步骤
1.导包
import 包路径.类名称
注意:如果需要使用目标类 和 当前类位于同一个包下,则可以省略导包语句。
默认只有java.long包下的内容可以不导包,其他路径下都需要 import 导包。
import java.util.Scanner;//包名,变量名;
2.创建对象
数据类型 变量名=new 数据类型(参数列表)
调用方法:
调用该类的成员方法,完成指定功能
3.使用成员方法
获取键盘输入的int关键字 int num = sc.nextInt();
获取键盘输入的字符串 String str = sc.next();
例如:
package com.hg.demo02;
//导包
import java.util.Scanner;
/**
* 1导包
* import 包路径
* 如果需要使用的目标类 ,相当于前类位于同一包下,则可以省略导包语句
* 默认只有Java。long包下的内容可以不导包,其他路径下都需要import导包
* 2:创建对象
*
* 3:使用成员方法
*
* 获取键盘输入的int数字 int
* 获取键盘输入的字符串 **/
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);
}
}
package com.hg.demo02;
import java.util.Scanner;
/**
* 题目:
* 求输入两个int数字的和
*
*
* 思路:
* 1:既然要用到键盘输入,就要用到Scanner
* 2: Scanner 三步骤: 导包、创建、使用方法
* 3:需要两个int数字,应该使用nextInt()
* 4:在得到两个数字后,直接相加
* 5:打印输出结果**/
public class demo01ScannerSum {
public static void main (String[] args) {
Scanner sc= new Scanner(System.in);
System.out.println("请输入一个数字是:");
int a=sc.nextInt();
System.out.println("输入的int 数字是"+a);
System.out.println("请输入一个数字是:");
int b=sc.nextInt();
System.out.println("输入的int 数字是"+b);
int result=a+b;
System.out.println("结果是:"+result);
}
}
三:Random 类
Random 类,用来生产随机数字
使用三步骤
1、导包
import java
2、创建对象
3、使用成员方法
说明:
直接只用int unm = ran.nextInt();
参数的随机数是整个int 范围,有正负两种。
如果有参使用int num = ran.nextInt(3);
例如:
package com.hg.demo03;
import java.util.Random;
/**
*Random 类用来生产随机数字
*使用三步骤: 导包、创建、使用方法
*如果有参使用 **/
public class Demo01Random {
public static void main (String[] args) {
Random ran= new Random();
int num=ran.nextInt();
System.out.println("产生的无参数字是:"+num);
System.out.println("============");
for(int i=0;i<100;i++) {
int num1=ran.nextInt(10);//[0,10}---->[0,9]整数
System.out.println("产生的有参数字是:"+num1);
}
System.out.println("==========================");
//错误写法
for(int i=0;i<100;i++) {
int num1=ran.nextInt(10+1);//[0,11}---->[0,10]整数
System.out.println("产生的有参数字是:"+num1);
}}}
练习:
package com.hg.demo03;
import java.util.Random;
import java.util.Scanner;
/**
* 猜数字0~~100之间
* 75
*
*
* **/
public class Demo01RandomGame {
public static void main (String[] args) {
Random ran= new Random();
int num=ran.nextInt();
int num1=ran.nextInt(100)+1;//[0,100]
Scanner sc= new Scanner(System.in);
while(true) {
System.out.println("请输入你猜的数字是:");
int guessNum=sc.nextInt();
int randomNum = 75;
if(guessNum>randomNum) {
System.out.println("太大了请重试");
}
else if(guessNum<randomNum) {
System.out.println("太小了,请重试");}
else {
System.out.println("恭喜你答对了");
break;
}
}
}
}
四: 方法重载
package com.hg.demo04;
/*
1、为什么需要方法的重载
对于功能类似的方法来说,因为参数列表不一样,却需要记住很多不同的参数的方法,太麻烦
方法的重载(Oberload):多个方法的名称一样,但是参数列表不一样
好处:只需要记住唯一一个方法名称,就可以实现多个功能
重载与下列因素有关
1、参数个数不同
2、参数类型不同
3、参数顺序不同
重载与下列因素无关
1、与参数的名称无关
2、与返回值类型无关
*/
public class Demo01MethodOverload {
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;
}
}
课后练习
求三个数中的最大数
package com.hg.demo02;
import java.util.Scanner;
//求输入三个数字的最大数
public class MaxNumber {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入三个整数:");
int a= sc.nextInt();
int b= sc.nextInt();
int c= sc.nextInt();
int max;
if(a<b)
max=b;
else
max=a;
if(max<c)
max=c;
System.out.println("这三个数中最大值为:"+max);
}
}
上述代码运行结果展示:
2020080605041