常用的API:
应用程序编程接口,程序员字典,好多类,好多方法,jdk提供好的现成的类
1.6版本简体中文版
包路径-----构造方法-----方法摘要
Scanner: 引用类型 导包--创建--使用
可以实现键盘输入数据到程序当中;
导包:import 包路径 类名称;
如果需要使用的目标和当前类属于同一个包下,可以省略导包语句不写
只有java.long包下的内容不需要导包,其他都需要
创建: 类名称 对象名 = new 类名称();
Scanner sc(input)变量名称 = new Scanner(System.in);
使用:对象名.成员方法名();
import java.util.Scanner;
Scanner sc=new Scanner(System.in); * System.in代表从键盘输入
int age = sc.nextInt(); 可以接收多种数据类型
====================================
public class Api {
public static void main(String[] args) {
//键盘录入两个数字求和.
/*
* 键盘录入两个数字,定义一个方法,参数传换这两个数字
* 定义一个带参有返回值的和一没有返回值的。
*/
Scanner input = new Scanner(System.in);
System.out.println("请输入顶一个数字");
int a = input.nextInt();
System.out.println("请输入第二个数字");
int b = input.nextInt();
int result = sum(a,b);
System.out.println("结果是"+result);
sub(a,b);
}
public static int sum(int a,int b){
return a+b;
}
public static void sub(int a,int b) {
System.out.println("差是"+(a-b));
}
}
------------------------------------------------------
/*
* 键盘录入三个数字求最大值:
* 键盘录入三个数字,进行接收
* 使用三元运算比较两次,第一次a和b进行比较,得出来的变量在和c进行比较
* 输出结果
*
* 定义一个比较的方法
* 使用三元运算先比较一次
* 然后使用if()判断在进行比较直接输出和返回结果都一样
* 返回结果一定要定义一个变量来接收。
*
*/
public class ScannerTest {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入第一个数字");
int a = sc.nextInt();
System.out.println("请输入第二个数字");
int b = sc.nextInt();
System.out.println("请输入第三个数字");
int c =sc.nextInt();
//方法一: 使用三元员孙比较两次出结果;
int temp = a>b? a:b;
int max = temp > c? temp:c;
System.out.println(max);
//方法二
int result = max(a,b,c);
System.out.println("最大的是"+result);
}
public static int max(int a,int b,int c){
int temp=a>b?a:b;
if(temp>c){
return temp;
}else{
return c;
}
}
}
匿名对象:
当对象只调用一次的时候使用
Random: 产生随机数的.
导包: import java.util.Random
创建: Random r = new Random();
使用:
获取一个随机的int数字: int num = r.nextInt(); 范围是int所有范围
===================================
/*
* 自定义对象Person
*
*/
public class Person {
private String name;
private int age;
public Person() {
// super();
}
public Person(String name, int age) {
super();
this.name = name;
this.age = 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 void show(){
System.out.println("我叫"+name+"今年"+age);
}
}
-----------------------------------
/*
* 匿名对象:
* 创建对象的标准格式
* 类名称 对象名 = new 类名称();
*
* 匿名对象只有右边的对象,没有左边的名字和赋值运算符.
* 匿名对象只能使用一次.
* 如果确定只需要使用唯一一次,那么就可以使用匿名对象.
*
*/
public class Anonymous {
public static void main(String[] args) {
Person ps = new Person();
ps.setAge(18);
ps.setName("张天爱");
System.out.println(ps.getAge());
System.out.println(ps.getName());
ps.show();
//匿名对象
//设置不进去,因为匿名对象使用的时候仅仅方法只调用一次,方法调用结束就会消失.
//这是三个全新的对象,每个地址自都不一样.
new Person().setAge(18);
new Person().setName("张无忌");
new Person().show();
}
}
--------------------------------------
import java.util.Scanner;
// 匿名对象作为方法的参数和返回值:
public class Anonymous02 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//普通使用的方式
// Scanner sc = new Scanner(System.in);
// System.out.println("请输入第一个数");
// int num = sc.nextInt();
// System.out.println("第一次输入的是"+num);
//
// //匿名对象的方式
// System.out.println("请输入");
// int num1 = new Scanner(System.in).nextInt();
// System.out.println("输入的是"+num1);
//一般写法.
// Scanner input = new Scanner(System.in);
// methodParam(input);
//匿名对象的写法来进行传参
System.out.println("请输入第一个数字");
//在这匿名对象进行输入,下面接收这个数据的变量是什么类型就输入什么类型
methodParam(new Scanner(System.in));
//返回值是一个Scanner对象
//接收这个Scanner对象,这个对象 返回值是一个数字,接收数字.
Scanner sc = methodReturn();
//返回的是一个扫描仪对象,接收这和个对象的类型是int,所以只能输入数字
int num = sc.nextInt();
System.out.println("输入的是???"+num);
}
//匿名对象作为方法的参数
public static void methodParam(Scanner sc){
String num = sc.next();
System.out.println("输入的字符串"+num);
}
public static Scanner methodReturn(){
// Scanner sc = new Scanner(System.in);
// return sc;
//返回一个键盘输入的对象;
return new Scanner(System.in);
}
}
对象数组:存储对象的容器;存放对象信息的地址值;
集合类 : ArrayList类
<>代表泛型,集合当中保存的类型都是地址值,基本数据类型没有地址值,所以不能保存基本数据类型;
如果希望向集合ArrayList当中存储基本数据类型,必须使用基本数据类型的包装类
Integer Byte Shot ........基本数据类型的包装类。
数组的长度不可以发生改变,但是ArrayList的长度是可以改变的.
常用方法:
public boolean add(E e) 向集合当中添加元素,参数类型和泛型一致;
public E get(int index) 从集合当中获取(读取)元素,参数是索引编号,返回值是对应未知的元素;
public E remove(int index) 从集合当中删除元素,参数是索引编号,返回值就是被删除的元素;
public int size() 获取结合的长度,返回值就是集合当中元素的个数;
集合的遍历for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
增强for循环。
for(String string : list){
System.out.println(string);
}
=====================================
/*
* 定义一个数组;用来存储Person对象
* 任何数据类型都可以作为数组;
* 刚才我们也看过了定义一个集合,里面存储的是自定义的Person类型
* 这个案例相同。
*/
public class DemoArray01 {
public static void main(String[] args) {
Person[] array = new Person[3];
System.out.println(array[0]);
//创建了三个person对象,这三个对象的地址值指向数组;
Person one = new Person("张天爱",26);
Person two = new Person("林志玲",46);
Person three = new Person("笑面虎",56);
//将地址值赋值给数组,赋值一定是右边的给左边的数字。
array[0]=one;
array[1]=two;
array[2]=three;
System.out.println(array[0]);
System.out.println(array[1]);
System.out.println(array[2]);
//定义一个对象,接收数组中的元素对象,因为数组类型是Person,所以接收的时候也是Person
Person person = array[1];
//得到这个对象,我们也能得到这个对象中构造方法对应的参数内容。
System.out.println(person.getName());
}
}
------------------------------------------------------
import java.util.ArrayList;
/*
* ArrayList:
* 对于ArrayList来说,当中有一个<E>代表泛型
* 泛型:也就是装在集合当中的元素全都是什么类型
* 泛型只能是引用类型,不能是基本类型
*
* 注意事项:对于ArrayList来说,直接打印得到的不是地址值,而是内容
* 如果内容是空,得到的是空的[];
*
* public boolean add(E e) 向集合当中添加元素,参数类型和泛型一致;
* 对于ArrayList集合来说,add添加一定是成功的,所以返回值可用可不用.,但是对于其它集合,不一定成功.
* public E get(int index) 从集合当中获取(读取)元素,参数是索引编号,返回值是对应未知的元素;
* public E remove(int index) 从集合当中删除元素,参数是索引编号,返回值就是被删除的元素;
* public int size() 获取结合的长度,返回值就是集合当中元素的个数;
*/
public class ArrayListDemo01 {
public static void main(String[] args) {
//创建了一个集合,集合的名称是list,里面的内容全都是String
//从jdk1.7开始右侧的尖括号可以不写内容,但是<>本身还是要保留的.
ArrayList<String> list = new ArrayList<>();
System.out.println(list);// [] 内容为空输出就是一个中括号,
//向集合和当中添加数据,当其中有多个数据的时候,会用逗号隔开;
//对象名称.方法名称 对象 list 方法名称 添加的方法add。
boolean ss = list.add("古天乐");
System.out.println("添加是否成功"+ss);
System.out.println(list);
list.add("张学友");
list.add("刘德华");
list.add("周杰伦");
System.out.println(list);
//从当中获取元素
String message = list.get(2);
System.out.println("拿到的是"+message);
//从集合当中删除元素
String success = list.remove(3);
System.out.println("删除的是"+success);
//获取集合长度,存储元素个数.
int len = list.size();
System.out.println(len);
//集合可以 直接 输出,这样输出的格式为,中括号包裹着。
System.out.println(list);
//for循环遍历,集合中一个一个输出出来,没有中括号,直接换行。
for(int i=0;i<list.size();i++){
System.out.println(list.get(i));
}
//集合的遍历 fore 增强for遍历list集合。
for (String string : list) {
System.out.println(string);
}
}
}
--------------------------------------------------------------------
import java.util.ArrayList;
/*
* 如果希望向集合ArrayList当中存储基本数据类型,必须使用基本数据类型的包装类
* 基本类型: 包装类:(引用类型,包装类都位于java.long包下)
* byte Byte
* short Short
* int Integer *
* long Long
* float Folat
* double Double
* char Character *
* boolean Boolean
*
* 从JDK1.5开始支持自动装箱,自动拆箱
* 自动装箱: 基本类型---->包装类型
* 包装类型---->基本类型
*
*/
public class ArrayListDemo02 {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
list.add(100);
list.add(200);
list.add(300);
list.add(400);
list.add(500);
System.out.println(list);
//这里可以用int进行接收,因为自动装箱和拆箱。
int a = list.get(1);
System.out.println(a);
}
}
--------------------------------------------------------
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Random;
/*
* 生成六个1-33的随机整数,添加到集合当中;
* 需要存储六个数字,创建一个集合;
* 产生随机数;
* 循环六次.次数确定,循环内调用产生随机数的方法;
* r.nextInt(32)+1;
* 相机和当中添加数据;
* 遍历集合;
*
* 首选创建一个集合 或者 数组
* 生成看六个随机数,随机数的范围自定义四
* 使用list.add方法,将数字添加到集合中。
* 遍历输出集合
* 数组中添加元素的方法
* 定义一个六个大小的容器,分别给下标索引赋予对应的值
*
*
*/
public class ArrayListDemo03 {
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<Integer> list = new ArrayList<>();
int[] what = new int[6];
Random r = new Random();
for(int i=0;i<6;i++){
int x = r.nextInt(33)+1;
//数组中添加元素,一定是数组[索引号] = x ,不能是 x = 数组[索引号]
//因为what[i]初始化的时候是没有值的, 默认为0,如果放到右边,则会把x也变成0,赋值无意义。
what[i]=x;
list.add(x);
}
System.out.println(Arrays.toString(what));
//不能等于集合的传长度,当等于时,没东西给它输出
for(int i=0;i < list.size();i++){
System.out.println(list.get(i));
}
}
}
------------------------------------------------------------
/*
* 自定义学生类
*
*/
public class Student {
private String name;
private int age;
public Student() {
super();
}
public Student(String name, int age) {
super();
this.name = name;
this.age = 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;
}
@Override
public String toString() {
// TODO Auto-generated method stub
return this.name+"\t"+this.age;
}
}
-------------------------------------------------
import java.util.ArrayList;
/*
* 自定义四个学生对象,添加到集合:并遍历
* 自定义学生类
* 创建一个集合,用来存储学生对象,泛型<Student>
* 将四个学生对象添加到集合当中
* 遍历集合
*
*/
public class ArrayListDemo04 {
public static void main(String[] args) {
// TODO Auto-generated method stub
/*
* 对象添加到数组中的方法
*/
ArrayList<Student> list = new ArrayList<>();
Student one = new Student("刘哲",17);
Student two = new Student("唐梦凡",17);
Student three = new Student("王其园",18);
Student four = new Student("赵士林",17);
list.add(one);
list.add(two);
list.add(three);
list.add(four);
for(int i=0;i<list.size();i++){
//字符串才有toString打印方法;集合可以直接输出。
System.out.println(list.get(i));
}
System.out.println("--------------");
for (Student student : list) {
System.out.println(student);
}
}
}
-------------------------------------------------
import java.util.ArrayList;
import javax.swing.text.StyledEditorKit.ForegroundAction;
/*
* 用集合作为参数:
* 以指定方式打印集合,使用{}括起来,使用@分割每一个元素
* {@元素@元素....}
*
*
*/
public class ArrayListDemo05 {
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<String> list = new ArrayList<>();
list.add("寒冰射手");
list.add("无极剑圣");
list.add("圣枪游侠");
list.add("法外狂徒");
System.out.println(list);
//自定义打印方法
//定义方法,返回值类型,方法名称,参数列表. void
//集合作为参数
printArrayList(list);
}
public static void printArrayList(ArrayList<String> list){
//方式一:
// System.out.print("{");
// for (Object object : list) {
System.out.println(object);
//
// System.out.print(object+"@");
//
// }
// System.out.print("}");
//方式二:
System.out.print("{");
for(int i=0;i<list.size();i++){
//上面参数不加类型着需要强转 String name = (String) list.get(i);
String name = list.get(i);
if(i==list.size()-1){
System.out.print(name+"}");
}else{
//需要包再循环之内,如果不加,循环完之后还会再走一次;
System.out.print(name+"@");
}
}
}
}
--------------------------------------------------------------
import java.util.ArrayList;
import java.util.Random;
/*
* 集合元素筛选:
* 用一个大集合存入20个随机数字,然后筛选其中的偶数元素,
* 放到小集合当中.
* 集合的筛选.
* 首先创建一个Integer类型的大集合
* 定义一个产生随机数的方法,随机数添加到大集合中
* 定义一个筛选的方法,这个方法的返回值就是小集合,参数传递大集合
* 定义一个小集合,吧筛选到的元素添加到小集合中
* 用到集合,我们使用增强for来遍历它,遍历出来的每一个元素对他进行处理,合格的我们添加到小集当中
* 最后我们返回这个 小集合。
*/
public class ArrayListDemo06 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//定义集合
ArrayList<Integer> list = new ArrayList<>();
//生成随机数
Random r = new Random();
for(int i=0;i<20;i++){
//产生随机数的对象调用相关的方法,使之完成操作
int num = r.nextInt(100)+1;
list.add(num);
}
ArrayList<Integer> listMin = listMin(list);
System.out.println("偶数中共有"+listMin.size());
for(int i=0;i<listMin.size();i++){
System.out.println(listMin.get(i));
}
}
//定义筛选的方法。
public static ArrayList<Integer> listMin(ArrayList<Integer> list){
ArrayList<Integer> minList = new ArrayList<>();
//遍历大集合
for (Integer integer : list) {
if(integer%2==0){
minList.add(integer);
}
}
return minList;
// ArrayList<Integer> minList = new ArrayList<>();
// for(int i=0;i<list.size();i++){
// int num = list.get(i);
// if(num%2==0){
// //*****添加数字
// minList.add(num);
// }
// }
// return minList;
}
}
Random
import java.util.Random;
/*
* 类名,别起随机数这种含有特殊含义的类,不然不让导包,会报错
* 即关键字不能当成类型名,导包的时候可能存在一定的错误。
* 生成一个随机数
* Random: 产生随机数的.
* 导包: import java.util.Random
* 创建: Random r = new Random();
* 使用:
* 获取一个随机的int数字: int num = r.nextInt(); 范围是int所有范围
* 获取一个随机数(参数代表范围) int num = r.nextInt(3);
* 在nextInt()里面可以指定范围
* 生成指定范围的随机数字: 左闭右开区间 [0,3) 0,1,2 右边的取不到.
* 在random()这个括号里面传入,参数会生成指定的随机数,下一次不会改变
*
*
*/
public class RandomDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
//产生随机数的方法
Random r = new Random();
//接收随机数的变量类型。
int a = r.nextInt();
System.out.println("随机数是"+a);
int b = new Random().nextInt(10);
System.out.println("匿名对象输入的随机数是"+b);
//随机生成指定个数的随机数
/*
* 使用for循环,每次循环接收数据,接收完数据输出。
*/
Random r1 = new Random();
for (int i = 0; i < 10; i++) {
int num = r1.nextInt(10);
System.out.println(num);
}
}
}
---------------------------------------------------
import java.util.Random;
import java.util.Scanner;
/*
* 生成1-n之间的随机数
* 键盘录入随机数的范围
* 这种范围作为参数传递进入到随机数的nextInt(参数)当中
* 一定要自己掌握一些基本的方法,编程思维很重要。
*
*/
public class RandomTest01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
//键盘录入
Scanner sc = new Scanner(System.in);
System.out.println("请输入那个范围的随机数");
int number = sc.nextInt();
System.out.println("请输入生成的次数");
int num = sc.nextInt();
Random r = new Random();
//使用匿名对象,匿名对象只能使用一次,这是生成一个随机数。
int x = new Random().nextInt(number);
System.out.println("匿名对象的生成方式"+x);
//本来范围是0,整体加一.
for (int i = 0; i < num; i++) {
//注意不能写在括号里面.
int result = r.nextInt(number)+1;
System.out.println(result);
}
}
}
-------------------------------------------------------
import java.util.Random;
import java.util.Scanner;
/*
* 猜数字小游戏:
* 用代码模拟猜数字的小游戏
* 首先产生一个数字,并且一旦产生就不能再发生变化;
* 需要键盘输入,进行获取,获取键盘输入的数据;
* 得到两个数字,if判断三种情况,如果猜大猜小输出提示输出,如果猜到结束方法的调用,输出恭喜您,猜中了
* 循环次数不确定;
*
* 这个游戏的原理是。产生一个1-100之间的随机数
* 键盘录入一个我猜测的数据
* 进行比对
* 如果连个数字相同,游戏结束
* 如果不相容,我们输出提示语言,游戏继续,使用while(true) 死循环
* 游戏结束使用break结束程序的运行。
*/
public class RandomTest02 {
public static void main(String[] args) {
// int number = new Random().nextInt(100) + 1;
//产生随机数
Random r = new Random();
int number = r.nextInt(100)+1;
//调用方法进行判断
resUlt(number);
}
public static void resUlt( int number) {
while (true) {
//把while
Scanner sc = new Scanner(System.in);
System.out.println("请输入数字");
int num = sc.nextInt();
if (num > number) {
System.out.println("猜大了");
} else if (num < number) {
System.out.println("猜小了");
} else {
System.out.println("恭喜您,猜中了");
break;
}
}
System.out.println("游戏结束");
}
}
---------------------------------------------------------
import java.util.Random;
import java.util.Scanner;
/*
* 猜拳小游戏原版
*
*
*/
public class RandomTest03 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Random r = new Random();
int num = r.nextInt(100)+1;
Scanner sc = new Scanner(System.in);
//直接进行判断。
while(true){
System.out.println("请输入您猜测的数字");
int number = sc.nextInt();
//如果我输入的数字没有随机数大,说明我猜小了
if(num>number){
System.out.println("猜小了");
}else if(num<number){
System.out.println("猜大了");
}else{
System.out.println("恭喜您,猜中了");
break;
}
}
System.out.println("游戏结束");
}
}