1 Scanner类
1.1 API的概述
API (Application Program Interface):应用程序接口;是Java提供很多类和接口以来帮助我们编程。我们在拿到一个API文档的时候,第一个要看包路径;第二看构造方法;第三看方法摘要。
1.2 引用类型的使用步骤
功能:可以实现键盘输入数据。
引用类型的一般使用步骤:(除了基本数据类型,都是引用类型,所以scanner也是一个引用类型)
(1)导包import包路径.包名称;
特殊情况:在java的API中,只有java.lang包下的内容不需要导包,可以直接使用;比如String类。
(2)创建
类名称 对象名=new类名称();
(3)使用
对象名.成员方法名();
1.3 Scanner类的使用步骤
packagecom.yc.page4;importjava.util.Scanner; //1.导包public classScannerDemo {public static voidmain(String[] args) {
Scanner sc=newScanner(System.in); //2、创建int num=sc.nextInt(); //3、使用
System.out.println("输入的是"+num); //输入数字
String str=sc.next();
System.out.println("输入的字符串是"+str); //输入字符串
}
}
1.4 匿名对象
创建对象的格式是: 类名称 对象名=new 类名称();
匿名对象只有后面的new 类名称()
注意事项: 匿名对象只能使用一次。
1 public classHuman {2 String name;3 public voidshow() {4 System.out.println("我叫"+name);5 }6 }7
8 public static voidmain(String[] args) {9 new Human().name="张三";10 newHuman().show();11
12 }
结果为:null;因为进行了两次new,说明创建了两个对象,所以证明匿名对象只能使用一次。
1.5 匿名对象作为方法的参数
1 public static voidmain(String[] args) {2 //1、普通使用方法
3 /*Scanner sc=new Scanner(System.in);4 int num=sc.nextInt();5 System.out.println("输入的是:"+num);*/
6
7 //2、匿名对象使用方法
8 /*int num=new Scanner(System.in).nextInt();9 System.out.println("输入的是:"+num);*/
10
11 //3、匿名对象作为方法的参数12 //methodDemo(new Scanner(System.in));13
14 //4、匿名对象作为方法的返回参数
15 Scanner sc=returnDemo();16 int num=sc.nextInt();17 System.out.println("输入的是:"+num);18 }19 public static voidmethodDemo(Scanner sc) {20 int num=sc.nextInt();21 System.out.println("输入的是:"+num);22 }23 public staticScanner returnDemo() {24 return newScanner(System.in);25
26 }
1.6 random的概述和基本使用
random类用来生成随机数。使用起来也是三步骤。
1 导包
2 创建
3 使用
(1)不带参数生成的随机数
public static voidmain(String[] args) {
Random r=new Random(); //创建
int num=r.nextInt(); //使用,不带参数的生成的是int型的任意一个数字
System.out.println(num);
}
(2)生成指定范围的数字
public static voidmain(String[] args) {
Random r=new Random(); //创建
int num=r.nextInt(10); //使用,带参数的生成左开右闭的数字[0,9)
System.out.println(num);
}
1.7 对象数组
1 public classPerson {2 privateString name;3 private intage;4 publicString getName() {5 returnname;6 }7 public voidsetName(String name) {8 this.name =name;9 }10 public intgetAge() {11 returnage;12 }13 public void setAge(intage) {14 this.age =age;15 }16 public Person(String name, intage) {17 this.name =name;18 this.age =age;19 }20 publicPerson() {21
22 }23
24 public static voidmain(String[] args) {25 Person one=new Person("张三",24); //创建对象
26 Person two=new Person("李四",25);27 Person three=new Person("王五",26);28 Person []arry=new Person[3]; //创建对象数组
29 arry[0]=one; //把对象的地址值赋值给数组
30 arry[1]=two;31 arry[2]=three;32 System.out.println(arry[0]); //打印地址值
33 System.out.println(arry[1]);34 System.out.println(arry[2]);35 System.out.println(arry[0].getName()); //get方法获取对象值
36 System.out.println(arry[1].getName());37 System.out.println(arry[2].getName());38 System.out.println(arry[0].getAge());39 System.out.println(arry[1].getAge());40 System.out.println(arry[2].getAge());41 }
对象数组的弊端就是,一旦确定了数组的大小,就不能更改了。如果事先不知道对象有几个用数组会显得很麻烦。所以引出了ArrayList集合。
1.8 ArrayList集合
数组的长度不可以发生改变,但是ArrayList集合的长度是可以随意变化的。
在观察API的时候发现有一个;代表的是泛型;也就是在集合中所有的元素,全都是统一类型的数据。(泛型只能是引用类型,不能装基本数据类型)。
对于ArrayList集合来说,直接打印得到的不是地址值,而是内容;如果内容是空,得到的是空的中括号:[]。
1 public static voidmain(String[] args) {2 ArrayList list=new ArrayList();3 System.out.println(list);4
5 }
结果:[]
1.8.1 ArrayList常用方法
(1)add方法
往集合里添加元素。
(2)get方法
从集合里取元素,参数是索引编号,返回的是对应位置的元素。
(3)remove方法
从集合里删除元素,参数是索引编号,返回的是对应位置的元素。
(4)size方法
获取集合的长度。
1 public static voidmain(String[] args) {2 ArrayList list=new ArrayList();3 list.add("a"); //添加元素
4 list.add("b");5 list.add("c");6 list.add("d");7 list.add("e");8 System.out.println(list);9 String name=list.get(3); //获取元素
10 System.out.println(name);11 String remove=list.remove(3); //删除元素
12 System.out.println(remove);13 System.out.println(list);14 int num=list.size(); //获取集合长度
15 System.out.println(num);16 }
1.8.2 ArrayList集合的遍历
遍历首先想到的是for循环,数组的长度是length方法,集合是size方法,所以代码为
1 public static voidmain(String[] args) {2 ArrayList list=new ArrayList();3 list.add("a"); //添加元素
4 list.add("b");5 list.add("c");6 list.add("d");7 list.add("e");8 for(int i=0;i
1.8.3 ArrayList集合存储基本数据类型
ArrayList只能存储引用数据类型,不能存储基本数据类型。如果ArrayList想存储基本数据类型;这里引出了包装类。8种基本数据类型对应的包装类分别为:
byteByteshortShortintIntegerlongLong
floot FlootdoubleDoublecharCharacterboolean Boolean
从JDK1.5以后,支持自动装箱和自动拆箱。
自动装箱:基本数据类型---》包装类型
自动拆箱:包装类型---》基本数据类型