Java匿名对象&集合&随机数

常用的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("游戏结束");
		
	}

}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值