Java学习之路-day08

今天学习了API、Scanner类、Random类和ArrayList集合类的相关知识、总结如下:
1、什么是API?
就是Java中的新华字典,里面包含了成千上万的类和方法,我们不需要知道其中的方法或者类的底层代码是什么,会根据需要查询和使用就可以了;
通常我们查阅API时,要看三个地方:1、类属于什么包下 2、构造方法 3、方法
2、Scanner类
【Scanner类有很多功能】目前这里只学习了Scanner的键盘输入方法;
引用类型的一般使用步骤:
【1】导包
import 包路径.类名称;
如果需要使用的目标类,和当前类位于同一个包下,则可以省略导包语句不写;
【注意】只有java.lang包下的内容不需要导包,其他的包都需要import语句进行导包操作;
【2】创建
类名称 对象名 = new 类名称(参数);
【3】使用
对象名.成员方法名();

Scanner类键盘输入步骤:
1、导包 
import java.util.Scanner;//Scanner类在util包下的
2、创建 
Scanner sc = new Scanner(System.in);//代表从键盘输入
3、使用  【获取键盘输入的数据】
int num = sc.nextInt();//输入一个int类型的数据
String str = sc.next();//输入一个String类型的数据

3、什么是匿名对象?
创建对象的标准格式:
类名称 对象名 = new 类名称();
【匿名对象】:就是只有右边的对象,没有左边的名字和赋值运算符;
格式:
new 类名称();
new Person().name = “老王”;//使用匿名对象设置属性信息
new Person().showName();//因为是重新new了新的对象,所以name是默认值
【特别注意事项】:匿名对象只能使用唯一的一次,下次使用不得不再创建一个新的对象
【使用建议】:如果【确定有一个对象只需要使用唯一的一次,就可以使用匿名对象】;
4、匿名对象作为方法的参数和返回值

public class DemoAnonymous{
	public static void main(String[] args){
		//普通方法
		Scanner sc = new Scanner(System.in);
		int num = sc.nextInt();
		//匿名对象
		int num = new Scanner(System.in).nextInt();
		//一般传入参数形式
		Scanner sc = new Scanner(System.in);
		methodParam(sc);
		//匿名对象作为方法的参数
		method(new Scanner(System.in));
		public static void methodParam(Scanner sc){
			int num = sc.nextInt();
		}
		//匿名对象作为返回值
		Scanner sc = methodReturn();
		int num = sc.nextInt();
		public static Scanner methodReturn(){
			//一般形式
			Scanner sc = new Scanner(System.in);
			return sc;
			//使用匿名对象
			return new Scanner(System.in);//直接new进行作为返回值
		}
	}	
}

5、Random类
Random类:用来生成随机数字,三步走
1、导包
import java.util.Random;
2、创建
Random r = new Random();
3、使用
获取一个随机int数字
int num = r.nextInt();//范围是int所有范围,是有正负的
int num1 = r.nextInt(10);
//参数代表了范围,【左闭右开区间】,[0,10),包括0不包括10
int num2 = r.nextInt(10)+1;->>[1,11)–>[1,10]
6、对象数组
—》定义一个数组用来储存3个person对象
Person[] array = new Person[3];
【数组有一个缺点,一旦创建,程序运行期间长度不可以发生改变】
首先创建一个长度为3的数组,用来存放Person类的对象
Person[] array = new Person[3];
Person one = new Person(“A”,18);//one当中存放的是对象的地址值
array[0] = one;//将one当中的地址值赋值给数组的0号元素位置
System.out.println(array[0])//打印输出的是一个地址值;
Person person = array[0];//将array[0]的地址值赋值给person对象
System.out.println(person.getName());//通过地址获取person对象的名字
System.out.println(array[0].getName());//通过对象的地址值进行访问
7、ArrayList集合类
因为数组在程序运行期间,数组的长度是不可改变的;但是ArrayList集合的长度是可以随意改变的;
ArrayList–>Element
【泛型】用于统一ArrayList集合中的数据类型,同时特别注意,泛型只能是引用类型,不能是基本数据类型的,如果要想要存储基本数据类型的集合,就必须将基本数据类型变成包装类;
ArrayList:代表存储在ArrayList集合中的数据,都是String类型的;
【泛型只能是引用类型,不能是基本数据类型】
1、导包 lang包
2、创建
ArrayList<数据类型> 集合名称= new ArrayList<数据类型>();
ArrayList<数据类型> 集合名称= new ArrayList<>();//省略格式,右边的<>中可以省略不写数据类型
ArrayList list = new ArrayList<>();
//代表创建了一个Arraylist,集合的名称是list,里面装的全都是String类型的数据
【特别注意】
1、ArrayList集合:System.out.println(list);//直接打印得到的【不是地址值,而是内容】
2、打印【数组的名称】,将得到数组的内存地址值;
【注意事项】:对于ArrayList集合来说,直接打印得到的【不是地址值,而是内容;】如果内容为空,得到的是空的中括号:[]
3、向集合类当中添加一些数据,需要add()方法,
【ArrayList集合打印输出时,集合中的每个元素会用逗号,自动的隔开】
list.add(添加的数据);//添加的数据必须和泛型要求的数据类型保持一致
list.add(“aaa”);//正确
list.add(100);//错误写法,因为ArrayList集合中定义的是String类型数据,现在向集合中添加一个int类型的数据,与定义的类型不一致
4、ArrayList当中的常用方法【重点】:
【1】public boolean add(E e);//向集合当中添加元素,参数的类型和泛型一致;
【注意】:对于ArrayList集合来说,add添加动作一定是成功的,返回值代表添加是否成功;但是对于其他的集合来说,add添加动作不一定成功;
boolean b = list.add(“A”);–》list.add(“A”);因为添加一定会成功,所以可以省略boolean返回值
System.out.println(list);
System.out.println(b);//代表是否添加成功
【2】public E get(int index);//从集合当中获取元素,参数是ArrayList集合类的索引值,返回值就是对应位置的元素
list.get(2);//索引值从0开始,返回值一个指定索引值的元素
【3】public E remove(int index);//从集合当中删除元素,参数是集合类的索引值,返回值就是被删除掉的元素
list.remove(2);//索引值从0开始,返回一个指定索引值被删除掉的元素
【4】public int size();//获取集合的长度,返回值时集合中包含的的元素个数;
list.size();//返回一个int类型的数字,代表list集合的元素个数
【5】遍历ArrayList集合

ArrayList<String> list = new ArrayList<>();//创建一个集合list
list.add("a");//向集合list中添加数据
list.add("b");
list.add("c");
for(int i = 0;i<list.size();i++){//list.fori ->自动生成for循环
	System.out.println(list.get(i));//通过get(int index)方法,打印输出集合中的元素
}

8、ArrayList集合存储基本数据类型
1、ArrayList listA = new ArrayList<>();//正确写法
ArrayList listB = new ArrayList<>();//错误写法 泛型只能是引用类型,不能是基本类型

因为集合里面保存的都是地址值,基本数据类型没有地址值

如果希望向集合ArrayList当中存储基本数据类型,必须使用基本类型对应的包装类
基本类型 包装类 --》都是位于java.Lang包下
|基本数据类型|对应的包装类 |
byte >>> Byte
short >>> Short
【int >>> Integer】
long >>> Long
float >>> Float
double >>> Double
char >>> Character
【boolean >>> Boolean】
其中int和char数据类型需要特别记忆,其他都是单词的首字母大写;
//创建一个集合存放Integer类型的数据:
ArrayList listC = new ArrayList<>();
listC.add(100);//将数值100添加到集合listC中
int num = listC.get(1);//通过get方法,将集合中的第二元素内容赋值给num

从JDK1.5+开始,支持自动装箱和自动拆箱
【自动装箱】:基本类型自动变成了包装类型
【自动拆箱】:包装类型自动变成了基本类型
习题没有做,已经两天了,每天要将每个知识点搞明白,不求快,只求掌握学习,因为学到自己手里的,别人是拿不走的,共勉!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值