1.API:类和方法的解释 JDK中类的说明文档
注意思考引用类型 和基本数据类型 除了基本的四类八种 其他的都是引用数据类型 其实都是类
2.Scanner:---是一个类 ----引用类型
2.1使用步骤
public class Demo01Scanner {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in); //从键盘输入 还可以从网络输入等
//获取键盘输入的int数据
int num = sc.nextInt();
//获取键盘输入的字符串
String str = sc.next();
//还要注意 只要写了两个方法 就要输入两次按两次enter才会执行下面的代码
System.out.println("输入的数字是"+num);
System.out.println("输入的字符串是"+str);
}
2.2scanner练习:
nextInt(); 获取int
next();获取字符串
public class text01 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入数字");
int num1 = sc.nextInt();
System.out.println("请输入数字");
int num2 = sc.nextInt();
System.out.println("两数的和为"+(num1+num2));
}
public class text01 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
System.out.println("请输入数字");
int num1 = sc.nextInt();
System.out.println("请输入数字");
int num2 = sc.nextInt();
System.out.println("请输入数字");
int num3 = sc.nextInt();
int[] arr={num1,num2,num3};
int max=arr[0];
for (int i = 1; i < arr.length; i++) {
if (arr[i]>max){
max=arr[i];
}
}
System.out.println("输入的最大值为"+max);
}
3.匿名对象 --省略起名字的对象
3.1匿名对象只能使用唯一一次 再使用只能再创建 如果确定一个对象只会使用唯一一次就可以使用匿名对象
package 匿名对象;
public class Person {
String name;
public void showName(){
System.out.println("我叫"+name);
}
}
public class Demo01 {
public static void main(String[] args) {
//左边的one就是对象的名字
Person one=new Person();
one.name="tt";
one.showName();
//匿名对象
new Person().name="yy"; //new 一次新的对象就创建了
//但是匿名对象没有对象名 调用showName();方法 不能打印出名字 因为new一次就是一个新对象
new Person().showName();//我叫null
}
3.2匿名对象作为方法的参数和返回值----任何数据类型都可以作为方法的参数和返回值
public class Demo02 {
public static void main(String[] args) {
/* System.out.println("请输入数字");
int num = new Scanner(System.in).nextInt();
System.out.println(num);*/
method(new Scanner(System.in)); //注意这里传的是对象
int num2 = method02().nextInt();
System.out.println(num2);
}
public static void method(Scanner sc){
int num = sc.nextInt();
System.out.println("输入的是"+num);
}
public static Scanner method02(){
return new Scanner(System.in);
}
4.Random
nextInt(); 可以获取随机数有正负两种 范围是int的所有范围之内 而且有正负 随机产生一个数
public class Random01 {
public static void main(String[] args) {
Random random = new Random();
int num = random.nextInt();
System.out.println("随机数是"+num);
}
4.1生成指定范围的随机数
随机获取一个int数字(参数代表了范围 左闭右开区间 int num=r.nextInt(3)) 代表表示【0,3)
public class Random01 {
public static void main(String[] args) {
Random random = new Random();
int num = random.nextInt();
System.out.println("随机数是"+num); //范围是int的所有范围之内 而且有正负 随机产生一个数
//随机获取一个int数字(参数代表了范围 左闭右开区间 int num=r.nextInt(3)) 代表表示【0,3)
int num02 = random.nextInt(3);
System.out.println("随机数是"+num02);
}
4.2练习 -生成1到n之间的随机数
public class text01 {
public static void main(String[] args) {
int a=10;
Random r = new Random();
System.out.println(r.nextInt(a)+1);
}
4.2 猜数字小游戏
public class test02 {
public static void main(String[] args) {
Random r= new Random();
int num = r.nextInt(100);
while(true){
Scanner sc = new Scanner(System.in);
System.out.println("请输入");
int num02 = sc.nextInt();
if (num>num02){
System.out.println("往大的输入");
}else if (num<num02){
System.out.println("往小的输入");
}else{
System.out.println("猜对啦");
break;//注意这里的break 否则猜对了也会循环
}
}
}
5.对象数组:这里好好看 注意看
/*
数组一旦创建,数组的长度 数据类型不能改变
*/
public class Demo01Array {
public static void main(String[] args) {
Person[] arr = new Person[3];
System.out.println(arr[0]); //默认值是null
arr[0]= new Person("tt",20);
arr[1]=new Person("yy",15);
arr[2]=new Person("TT",16);
System.out.println(arr[0]);//random.Person@2d98a335 里面存的是对象的地址
System.out.println(arr[0].getAge());//20
}
}
6.ArrayList集合类
/*
ArrayList集合的长度是可以随意变化的
对于ArrayList来说 有一个尖括号<>代表泛型
泛型就是装在集合中的所有元素统一都是一个什么类型的
注意:泛型只能是引用类型不能是基本类型
*/
public class Demo01ArrayList {
public static void main(String[] args) {
//创建了一个ArrayList集合 集合名称是list 里面装的是String字符串类型的数据
ArrayList<String> list = new ArrayList<>();
System.out.println(list); //【】 对于ArrayList来说直接打印不是地址值 而是内容
//向集合添加数据用add方法
list.add("tt");
list.add("yy");
System.out.println(list);//[tt,yy]
}
6.1ArrayList常用方法和遍历
/* 常用方法 public boolean add(E e); 其实是ArrayList类中成员方法 public E get(int index); index从0开始 返回值是对应位置的元素 public E remove(int index); 从集合中删除元素 参数是索引编号 返回的是被删掉的元素 public E size(); 获取集合的尺寸长度 返回值是集合包含的元素个数 */
/*
常用方法
public boolean add(E e); 其实是ArrayList类中成员方法
public E get(int index); index从0开始 返回值是对应位置的元素
public E remove(int index); 从集合中删除元素 参数是索引编号 返回的是被删掉的元素
public E size(); 获取集合的尺寸长度 返回值是集合包含的元素个数
*/
public class Demo02ArrayList {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
System.out.println(list);//[]
boolean tt = list.add("tt");
System.out.println(list);//[tt]
System.out.println(tt); //true 对于ArrayList集合来说 add添加方法一定成功 其他的集合添加有可能不成功
list.add("yy");
list.add("ii");
String list1 = list.get(1);
System.out.println(list1); //yy
System.out.println(list);//[tt, yy, ii]
String remove = list.remove(0);
System.out.println(remove);//tt
System.out.println(list);//[yy, ii]
System.out.println("集合的长度为"+list.size());//集合的长度为2
//遍历list集合
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i)); //yy //ii
}
//增强for iter
for (String s : list) {
System.out.println(s);
}
}
6.2ArrayList存储基本数据类型
因为之前说了ArrayList集合只能存储引用数据类型 比如String这种 呢如何存储基本数据类型呢?
byte short int long flloat double char boolen
泛型只能是引用类型 因为集合保存的都是地址值 基本数据类型没有地址值
如果想往集合中存储基本数据类型需要借助包装类
6.3集合练习
ArrayList存储随机数
public class test01 {
public static void main(String[] args) {
Random r= new Random();
ArrayList<Integer> list = new ArrayList<>();
for (int i = 0; i < 5; i++) {
int num = r.nextInt(33)+1;
list.add(num);
}
for (Integer integer : list) {
System.out.println(integer);
}
}
}
存储自定义对象
注意集合中存储的是地址值
public class Demo01Student {
public static void main(String[] args) {
ArrayList<Student> list = new ArrayList<>();
list.add(new Student("TT",18));
list.add(new Student("YY",20));
list.add(new Student("II",21));
for (Student student : list) {
System.out.println(student.getName()+student.getAge()); //注意这里因为集合中存储的是地址值
}
}
}
public class test03 {
public static void main(String[] args) {
ArrayList<Integer> list_int = new ArrayList<>();
list_int.add(10);
list_int.add(20);
list_int.add(30);
System.out.print("["); //注意print
for (int i = 0; i < list_int.size(); i++) {
if (i<list_int.size()-1){
System.out.print(list_int.get(i)+"@");
}else{
System.out.print(list_int.get(i));
}
}
System.out.print("]");
}
}
public class test04 {
public static void main(String[] args) {
ArrayList<Integer> list_big = new ArrayList<>();
ArrayList<Integer> list_small = new ArrayList<>();
Random r= new Random();
for (int i = 0; i < 20; i++) {
list_big.add(r.nextInt());
}
System.out.println(list_big);
for (Integer num : list_big) {
if (num%2==0){
list_small.add(num);
}
}
System.out.println(list_small);
}
}