java学习第十五天
数组
package lj;
public class demo1 {
public static void main(String[] args) {
int [] array= {10,20,30};
System.out.println(array);//地址的哈希值
printArray(array);
}
//数组作为参数 传递的始终是数组地址值
public static void printArray(int[] arrayTemp) {
System.out.println("printlArray方法接受到的参数是");
System.out.println(arrayTemp);//接受的是地址
for(int i=0;i<arrayTemp.length;i++) {
System.out.println(arrayTemp[i]);
}
}
}
package lj;
public class demo2 {
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]);
demo1.printArray(result);
}
//这个写法始终只能返回一个值
private 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;
}
}
Scanner
package lj1;
import java.util.Scanner;
/*
* 导包
* import java.util.Scanner;
* 1.import包路径,类名称
* 如果需要使用的目标类,和当前类位于同一个包下,则可以省略导包语句
* 默认只有java.long包下的内容可以不导包 其他路径都需要import导包
* 2.创建对象
* 3.使用方法
*
*获取键盘输入的int数字 int num=sc.nextInt()
*获取键盘输入的字符串 String str=sc.next()
*/
public class demo1 {
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);
}
}
使用Scanner求输入两个int数字的和
package lj1;
import java.util.Scanner;
public class demo2 {
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);
}
}
Random 生产随机数字
使用三步骤1.导包 2.创建对象 3.使用成员方法
说明
直接只用int num=ran.nextInt();
参数的随机数是整个int 范围 有正负两种
如果有参使用int num=ran.nexttInt(3);
[0,3) 0,1,2
package lj2;
import java.util.Random;
public class demo1 {
public static void main(String[] args) {
Random ran=new Random();
int num=ran.nextInt();
System.out.println("无参随机数是:"+num);
for(int i=0;i<100;i++) {
int num1=ran.nextInt(10);
System.out.println("有参随机数是:"+num1);
}
for(int i=0;i<100;i++) {
int num1=ran.nextInt(10)+1;
System.out.println("有参随机数是:"+num1);
}
//错误写法
for(int i=0;i<100;i++) {
int num1=ran.nextInt(10+1);
System.out.println("有参随机数是:"+num1);
}
}
}
猜数字游戏(0~100)
package lj2;
import java.util.Random;
import java.util.Scanner;
public class demo2 {
public static void main(String[] args) {
Random r=new Random();
int randomNum=r.nextInt(100)+1;
Scanner sc=new Scanner(System.in);
while(true) {
System.out.println("请输入你猜的数字:");
int guessNum=sc.nextInt();
if(guessNum>randomNum) {
System.out.println("太大了,请重试");
}else if(guessNum<randomNum) {
System.out.println("太小了,请重试");
}else {
System.out.println("恭喜你猜中了");
break;
}
System.out.println("游戏结束!");
}
}
}
方法重载
package lj23;
/*
* 1.为什么需要方法重载
* 对于功能类似的方法来说,因为参数列表不一样,却需要记住很多不同参数的方法,太麻烦了
* 方法的重载(Overload):多个方法名称一样,但是参数列表却不一样
* 好处:只需要记住唯一一个方法名称,就可以实现多个功能
* 重载与下列因数相关
* 1.参数个数不同
* 2.参数类型不同
* 3.参数顺序不同
*
* 重载与下列因素无关
* 1.与参数名称无关
* 2.与返回值无关
*/
public class demo {
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(sum1(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("参数为int,double");
return a+b;
}
public static double sum(double a,double b) {
System.out.println("参数为double,double");
return a+b;
}
public static int sum1(int a,int b, int c) {
System.out.println("参数为int,int, int");
return a+b;
}
}