阿狸写代码 2019-12-02
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类的使用步骤
package com.yc.page4; import java.util.Scanner; //1.导包 public class ScannerDemo { public static void main(String[] args) { Scanner sc=new Scanner(System.in); //2、创建 int num=sc.nextInt(); //3、使用 System.out.println("输入的是"+num); //输入数字 String str=sc.next(); System.out.println("输入的字符串是"+str); //输入字符串 } }
1.4 匿名对象
创建对象的格式是: 类名称 对象名=new 类名称();
匿名对象只有后面的new 类名称()
注意事项: 匿名对象只能使用一次。
public class Human { String name; public void show() { System.out.println("我叫"+name); } } public static void main(String[] args) { new Human().name="张三"; new Human().show(); }结果为:null;因为进行了两次new,说明创建了两个对象,所以证明匿名对象只能使用一次。
1.5 匿名对象作为方法的参数
public static void main(String[] args) { //1、普通使用方法 /* Scanner sc=new Scanner(System.in); int num=sc.nextInt(); System.out.println("输入的是:"+num); */ //2、匿名对象使用方法 /* int num=new Scanner(System.in).nextInt(); System.out.println("输入的是:"+num); */ //3、匿名对象作为方法的参数 // methodDemo(new Scanner(System.in)); //4、匿名对象作为方法的返回参数 Scanner sc=returnDemo(); int num=sc.nextInt(); System.out.println("输入的是:"+num); } public static void methodDemo(Scanner sc) { int num=sc.nextInt(); System.out.println("输入的是:"+num); } public static Scanner returnDemo() { return new Scanner(System.in); }
1.6 random的概述和基本使用
random类用来生成随机数。使用起来也是三步骤。
1 导包
2 创建
3 使用
(1)不带参数生成的随机数
public static void main(String[] args) { Random r=new Random(); //创建 int num=r.nextInt(); //使用,不带参数的生成的是int型的任意一个数字 System.out.println(num); }
(2)生成指定范围的数字
public static void main(String[] args) { Random r=new Random(); //创建 int num=r.nextInt(10); //使用,带参数的生成左开右闭的数字[0,9) System.out.println(num); }
1.7 对象数组
public class Person { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Person(String name, int age) { this.name = name; this.age = age; } public Person() { } public static void main(String[] args) { Person one=new Person("张三",24); //创建对象 Person two=new Person("李四",25); Person three=new Person("王五",26); Person []arry=new Person[3]; //创建对象数组 arry[0]=one; //把对象的地址值赋值给数组 arry[1]=two; arry[2]=three; System.out.println(arry[0]); //打印地址值 System.out.println(arry[1]); System.out.println(arry[2]); System.out.println(arry[0].getName()); //get方法获取对象值 System.out.println(arry[1].getName()); System.out.println(arry[2].getName()); System.out.println(arry[0].getAge()); System.out.println(arry[1].getAge()); System.out.println(arry[2].getAge()); }
对象数组的弊端就是,一旦确定了数组的大小,就不能更改了。如果事先不知道对象有几个用数组会显得很麻烦。所以引出了ArrayList集合。
1.8 ArrayList集合
数组的长度不可以发生改变,但是ArrayList集合的长度是可以随意变化的。
在观察API的时候发现有一个<E>;<E>代表的是泛型;也就是在集合中所有的元素,全都是统一类型的数据。(泛型只能是引用类型,不能装基本数据类型)。
对于ArrayList集合来说,直接打印得到的不是地址值,而是内容;如果内容是空,得到的是空的中括号:[]。
public static void main(String[] args) { ArrayList<String> list=new ArrayList<String>(); System.out.println(list); }结果:[]
1.8.1 ArrayList常用方法
(1)add方法
往集合里添加元素。
(2)get方法
从集合里取元素,参数是索引编号,返回的是对应位置的元素。
(3)remove方法
从集合里删除元素,参数是索引编号,返回的是对应位置的元素。
(4)size方法
获取集合的长度。
public static void main(String[] args) { ArrayList<String> list=new ArrayList<String>(); list.add("a"); //添加元素 list.add("b"); list.add("c"); list.add("d"); list.add("e"); System.out.println(list); String name=list.get(3); //获取元素 System.out.println(name); String remove=list.remove(3); //删除元素 System.out.println(remove); System.out.println(list); int num=list.size(); //获取集合长度 System.out.println(num); }
1.8.2 ArrayList集合的遍历
遍历首先想到的是for循环,数组的长度是length方法,集合是size方法,所以代码为
public static void main(String[] args) { ArrayList<String> list=new ArrayList<String>(); list.add("a"); //添加元素 list.add("b"); list.add("c"); list.add("d"); list.add("e"); for(int i=0;i<list.size();i++) { System.out.println(list.get(i)); }
1.8.3 ArrayList集合存储基本数据类型
ArrayList只能存储引用数据类型,不能存储基本数据类型。如果ArrayList想存储基本数据类型;这里引出了包装类。8种基本数据类型对应的包装类分别为:
byte Byte short Short int Integer long Long floot Floot double Double char Character boolean Boolean
从JDK1.5以后,支持自动装箱和自动拆箱。
自动装箱:基本数据类型---》包装类型
自动拆箱:包装类型---》基本数据类型