Scanner类的功能:可以实现键盘输入数据到程序中
引用类型的一般步骤:
1.导包
import 包路径.类名称;
如果需要使用的目标类,和当前类位于同一个包中,则可以省略导入语句
只有java.lang包下的内容不需要导包,其他的都需要import语句。
2.创建
类名称 对象名 = new 类名称();
3.使用
对象名.成员方法名()
package cn.itcast.day07.demo01;
import java.util.Scanner;
/*获取键盘输入的一个数字:int num = sc.nextInt();
获取键盘输入的一个字符串:String str=sc.next();
*/
public class Demo01Scanner {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);//System.in代表从键盘输入
int num=sc.nextInt();
System.out.println("输入的Int数字是:"+num);
String str=sc.next();
System.out.println("输入的字符串是:"+str);
}
}
匿名对象
package cn.itcast.day07.demo02;
/*
匿名对象就是只有右边的对象,没有左边的名字和赋值运算符。
new类名称();
注意事项:匿名对象只能使用唯一的一次,下次再用不得不再创建一个新对象
使用建议:如果确定一个对象只是用唯一一次,就可以使用匿名对象
*/
public class Demo01Anonymous {
public static void main(String[] args) {
Person one = new Person();
one.name="高圆圆";
one.showName();
//匿名对象
new Person().name="赵又廷";
new Person().showName();//我叫:null
}
}
用匿名对象作为方法的参数和返回值
package cn.itcast.day07.demo02;
import java.util.Scanner;
public class Demo02Anonymous {
public static void main(String[] args) {
// Scanner sc=new Scanner(System.in);
// int num=sc.nextInt();
//匿名对象的方式
int num1=new Scanner(System.in).nextInt();
System.out.println("输入的是"+num1);
//使用一般方式传参
Scanner sc=new Scanner(System.in);
methodParam(sc);
//使用匿名对象传参
methodParam(new Scanner(System.in));
}
public static void methodParam(Scanner sc){
int num=sc.nextInt();
System.out.println("输入的是:"+num);
}
}
public static Scanner methodReturn(){
//一般的返回
// Scanner sc=new Scanner(System.in);
// return sc;
//匿名对象返回
return new Scanner(System.in);
}
Random类
package cn.itcast.day07.demo03;
import java.util.Random;
/*
Random类用来生成随机数字,使用起来三个步骤
1.导包:
import java.util.Random;
2.创建
Random r=new Random();
3.使用
获取一个随机的Int数字(范围是Int所有范围,有正负两种):int num=r.nextInt();
*/
public class Demo01Random {
public static void main(String[] args) {
Random r=new Random();
int num=r.nextInt();
System.out.println("随机数是:"+num);
}
}
package cn.itcast.day07.demo03;
import java.util.Random;
/*
输出一定范围内的随机数
*/
public class Demo02Random {
public static void main(String[] args) {
Random r = new Random();
for (int i = 0; i < 100; i++) {
int num=r.nextInt(10);//范围是左闭右开0-9
System.out.println(num);
}
}
}
在这里插入代码片
package cn.itcast.day07.demo03;
import java.util.Random;
/*
题目要求:
根据int变量n的值,来获取随机数字,范围是[1,n]
思路:
1.定义一个int变量n,随意赋值
2.要使用Random,三个步骤:导包,创建,使用
3.如果写10,那么就是0-9,然而想要1-10.可以发现,整体加一即可
4.打印随机数字
*/
public class Demo03Random {
public static void main(String[] args) {
int n=5;
Random r=new Random();
for (int i = 0; i < 100; i++) {
//本来范围是[0,n),整体+1之后就变成了[1,n+1),也就是[1,n]
int result=r.nextInt(n)+1;
System.out.println(result);
}
}
}
package cn.itcast.day07.demo03;
/*
题目:用代码模拟猜数字的小游戏
思路:
1.首先需要产生一个随机数字,并且一旦产生不再变化。用Random的nextInt方法
2.需要键盘输入,所以用到了Scanner
3.获取键盘输入的数字,用Scanner中的nextInt方法
4.已经得到了两个数字,判断(if)一下:
如果太大了,提示太大,并且重试
如果太小了,提示太小,并且重试
如果猜中了,游戏结束
5.重试就是再来一次,循环次数不确定,用while(true)
*/
import java.util.Random;
import java.util.Scanner;
public class Demo04 {
public static void main(String[] args) {
Random r = new Random();
int randomNum = r.nextInt(100) + 1;//1-100
Scanner sc = new Scanner(System.in);
int i;
for ( i = 1; i <=3; i++) {
System.out.println("请输入你猜测的数字");
int guessNum = sc.nextInt();//alt+回车 选择Local一项,会自动出int i=
if(i<3){
if (randomNum < guessNum) {
System.out.println("猜的大了,重试");
} else if (randomNum > guessNum) {
System.out.println("猜的小了,重试");
} else {
System.out.println("猜对");
break;
}
}
if(i==3&&(randomNum!=guessNum))
System.out.println("猜错,次数用完");
}
}
}
对象数组
题目:定义一个数组,用来存储3个Person对象
数组有一个缺点,一旦创建,程序运行期间长度不可以发生改变
package cn.itcast.day07.demo04;
public class Demo01Array {
public static void main(String[] args) {
Person[] array=new Person[3];
Person one = new Person("迪丽热巴",18);
Person two = new Person("古力娜扎",28);
Person three = new Person("马尔扎哈",38);
//将one当中的地址赋值到数组的0号元素
array[0]=one;
array[1]=two;
array[2]=three;
System.out.println(array[0].getName());
}
}
ArrayList
package cn.itcast.day07.demo04;
import java.util.ArrayList;
/*
数组的长度不可以发生变化
但是ArrayList集合的长度是可以随意变化的
对于Arraylist来说,有一个尖括号<E>代表泛型
泛型:也就是装在集合当中的所有元素,全都是统一的什么类型。
注意:泛型只能是引用类型,不能是基本类型
注意事项:
对于Arraylist集合来说,直接打印得到的不是地址值,而是内容
如果内容是空,得到的是空的中括号:[]
*/
public class Demo02ArrayList {
public static void main(String[] args) {
//创建了一个ArrayList集合,集合的名称是List,里面装的全都是String字符串类型
ArrayList<String> list=new ArrayList<>();
System.out.println(list);//[]
//向集合添加数据,需要用add方法
list.add("赵丽颖");
System.out.println(list);
}
}
package cn.itcast.day07.demo04;
import java.util.ArrayList;
/*
ArrayList当中的常用方法有:
public boolean add(E e):向集合当中添加元素,参数的类型和泛型一致。
注意:对于ArrayList集合来说,add添加动作一定是成功的,所以返回值可用可不用。
但是对于其他集合(今后学习)来说,add添加动作不一定成功。返回值代表添加是否成功。
public E get(int index):从集合当中获取元素,参数是索引编号,返回值就是被删除掉的元素
public E remove(int index):从集合当中删除元素,参数是索引编号,返回值就是被删除掉的元素
public int size():获取集合的尺寸长度,返回值就是集合当中包含的元素个数
*/
public class Demo03ArrayListMethod {
public static void main(String[] args) {
ArrayList<String> list=new ArrayList<>();
//向集合中添加元素:add
boolean success=list.add("柳岩");
System.out.println(list);
System.out.println("添加动作是否成功:"+success);
list.add("高圆圆");
list.add("赵又廷");
list.add("李小璐");
System.out.println(list);//[柳岩, 高圆圆, 赵又廷, 李小璐]
//从集合中获取元素:get 索引值从0开始
String name = list.get(2);
System.out.println("第2号索引位置:"+name);
//从集合中删除元素:remove。索引值从0开始。
String del=list.remove(3);
System.out.println("被删除的元素是:"+del);
System.out.println("集合中元素个数为"+list.size());
}
}
package cn.itcast.day07.demo04;
import java.util.ArrayList;
/*
集合的遍历
*/
public class ArrayListEach {
public static void main(String[] args) {
ArrayList<String> list=new ArrayList<>();
list.add("迪丽热巴");
list.add("古力娜扎");
list.add("马尔扎哈");
//遍历集合
for (int i = 0; i < list.size(); i++) {//list.fori
System.out.println(list.get(i));
}
}
}
package cn.itcast.day07.demo04;
import java.lang.reflect.Array;
import java.util.ArrayList;
/*
如果希望向集合ArrayList当中存储基本类型数据,必须使用基本类型对应的“包装类”
基本类型 包装类(引用类型,包装类都位于java.lang包下)
byte Byte
short Short
int Integer
long Long
float Float
double Double
char character
boolean Boolean
从JDK1.5+开始,支持自动装箱、自动拆箱
自动装箱:基本类型——>包装类型
自动拆箱:包装类型——>基本类型
*/
public class Demo05ArrayListBasic {
public static void main(String[] args) {
ArrayList<String> listA=new ArrayList<>();
//错误写法,泛型只能是引用类型,不能是基本类型
// ArrayList<int> listB=new ArrayList<int>();
ArrayList<Integer> listC=new ArrayList<>();
listC.add(100);
listC.add(200);
System.out.println(listC);//[100,200]
System.out.println(listC.get(1));//200
int num=listC.remove(1);
System.out.println(listC);
System.out.println("被删除的数字是"+num);
}
}
package cn.itcast.day07.demo05;
import java.util.ArrayList;
import java.util.Random;
/*
题目:生成6个1-33之间的随机整数,添加到集合,并遍历集合。
*/
public class Demo01ArrayListRandom {
public static void main(String[] args) {
Random r=new Random();
ArrayList<Integer> list=new ArrayList<>();
for (int i = 0; i < 6; i++) {
int num=r.nextInt(33)+1;
list.add(num);
}
for (int j = 0; j < list.size(); j++) {
System.out.println(list.get(j));
}
}
}
package cn.itcast.day07.demo05;
import java.util.ArrayList;
/*
定义4个学生对象,添加到集合,并遍历
*/
public class Demo02ArrayListStudent {
public static void main(String[] args) {
Student one=new Student("张三",18);
Student two=new Student("李四",19);
Student three = new Student("王五",20);
Student four=new Student("空空",21);
ArrayList<Student> list=new ArrayList<>();
list.add(one);
list.add(two);
list.add(three);
list.add(four);
for (int i = 0; i < list.size(); i++) {
Student stu=list.get(i);
System.out.println("姓名:"+stu.getName()+" 年龄:"+stu.getAge());
}
}
}
package cn.itcast.day07.demo05;
import java.util.ArrayList;
/*
联系ArrayList类型作为方法参数
定义指定格式打印集合的方法(ArrayList类型作为参数),使用{}括起集合,使用@分隔
每个元素。格式参照{元素@元素@元素}。
*/
public class Demo03ArrayListPrint {
public static void main(String[] args) {
ArrayList<Integer> list=new ArrayList<>();
list.add(2);
list.add(3);
list.add(4);
printList(list);
}
public static void printList(ArrayList<Integer> list){
String str=new String();
int i;
for (i = 0; i < list.size()-1; i++) {
str+=list.get(i)+"@";
}
System.out.println("{"+str+list.get(i)+"}");
}
}
package cn.itcast.day07.demo05;
import java.util.ArrayList;
import java.util.Random;
/*
练习
ArrayList作为返回值
题目:
用一个大集合存入20个随机数字,然后筛选其中的偶数,放到小集合中。
要求使用自定义的方法实现筛选。
*/
public class demo04ArrayListReturn {
public static void main(String[] args) {
ArrayList bigList=new ArrayList<>();
Random r=new Random();
for (int i = 0; i < 20; i++) {
int num=r.nextInt(100)+1;
bigList.add(num);
}
for (int i = 0; i < bigList.size(); i++) {
System.out.println(bigList.get(i));
}
System.out.println("========");
ArrayList<Integer> smallList=getSmallList(bigList);
for (int i = 0; i < smallList.size(); i++) {
System.out.println(smallList.get(i));
}
}
public static ArrayList<Integer> getSmallList(ArrayList<Integer> bigList){
ArrayList<Integer> smallList = new ArrayList<>();
for (int i = 0; i < bigList.size(); i++) {
int num=bigList.get(i);
if(num%2==0){
smallList.add(num);
}
}
return smallList;
}
}
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/100200.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...