栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

包装类和math的使用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

包装类和math的使用

spackage cn.ekgc.javasenior.day20210623;

public class MathDemo {
	public static void main(String[] args) {
		// Java 提供了 Math 这个数学计算的工具类
		// Math 提供了两个常量值,分别是 E 和 PI
		System.out.println("PI = " + Math.PI);
		System.out.println("E = " + Math.E);
		System.out.println("abs() 获得任意数字的绝对值:" + Math.abs(-101));
		// 对于 floor() 来说,是对于一个浮点数进行向下取整,也就是直接将小数点去掉
		System.out.println("floor() 能够获得靠近这个值的最大值:" + Math.floor(55.9));
		System.out.println("pow() 能够计算任意数字的任意幂次的值:" + Math.pow(3, 2));
		// 使用 Math 的 random() 能够获得一个 [0, 1) 之间的随机数
		System.out.println("使用 Math 的 random() 获得随机数:" + Math.random());
		System.out.println("Math 的 round() 能够对一个浮点型进行四舍五入:" + Math.round(55.1));
	}
}
package cn.ekgc.javasenior.day20210623;

import java.util.ArrayList;
import java.util.List;

public class WrapperClassDemo {
	public static void main(String[] args) {
		
		// 要想获得一个包装类,可以通过 new 的形式来创建对象
		Integer num1 = new Integer(1);
		System.out.println(num1);
		// 也可以按照基本类型进行直接赋值
		Integer num2 = 1;
		
		Integer num3 = 123;
		int num4 = num3;
		int num5 = 111;
		Integer num6 = num5;
		
		List numList = new ArrayList();
		// 通过包装类,可以获得一个数据类型的最大值和最小值
		System.out.println("int 类型的最大值是:" + Integer.MAX_VALUE + ",最小值是:" + Integer.MIN_VALUE);
		System.out.println("int 类型的二进制数据:" + Integer.BYTES);
		// 可以通过包装类的构造方法将 String 进行转换
		Integer num7 = new Integer("100");
		System.out.println(num7);
		// 由于包装类是一个引用数据类型,那么包装类的值时可以为 null
		Integer num8 = null;
	}
}

 反射机制

 

package cn.ekgc.javasenior.day20210629;

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;

public class ReflectDemo01 {
	public static void main(String[] args) throws Exception {
		
		// 要想获得任何一个类的 Class 类的对象,有两种方式:
		// 方式一:直接通过类名的 class 属性获得
		Class stuClass1 = Student.class;
		// 方式二:首先创建该类的对象,然后通过调用该对象的 getClass() 获得
		Student student = new Student();
		Class stuClass = student.getClass();
		// 在获得 Class 对象之后,就可以借助于反射机制,获得这个类的属性、方法和构造方法
		// 获得 Student 的所有属性,反射机制将每个属性都对应为一个 Field 对象
		// 对于 getFields() 只能够获得所有的使用 public 修饰的属性
		Field[] fields = stuClass.getFields();
		for (Field field : fields) {
			System.out.println(field);
		}
		// 要想获得所有 Student 写出的属性,使用 getDeclaredFields()
		System.out.println("==========================");
		Field[] declaredFields = stuClass.getDeclaredFields();
		for (Field field : declaredFields) {
			System.out.println(field);
		}
		System.out.println("==========================");
		// 也可以通过属性名,获得某个具体的属性,并且进行赋值
		// 获得 name 属性
		Field nameField = stuClass.getField("name");
		// 获得 name 属性对应的 Field 对象后,就可以使用这个 Field 对象进行属性值的赋值
		// 在使用 set() 赋值时,需要指明给哪个对象的该属性赋值,第二个参数指的是所赋予的具体值
		// 以下代码的作用就是给 student 对象的 name 属性赋予 张涛
		// 等价于:student.name = "张涛"
		nameField.set(student, "张涛");
		System.out.println(student.name);
		// 对于反射机制,会将方法对应到 Method 对象上,
		// 要想获得一个类的所有方法,也有 getMethods() 和 getDeclaredMethods()
		System.out.println("==========================");
		Method[] declaredMethods = stuClass.getDeclaredMethods();
		for (Method method : declaredMethods) {
			System.out.println(method);
		}
		System.out.println("==========================");
		// 通过方法名可以获得一个具体方法的 Method 对象,并且通过 invoke() 来调用这个方法
		Method sayHelloMethod = stuClass.getMethod("sayHello");
		// 通过反射机制调用该方法
		// 以下代码就是:student.sayHello();
		sayHelloMethod.invoke(student);
		System.out.println("==========================");
		// 通过反射机制也可以获得该类的构造方法,
		// 如果要获得一个类的所有构造方法,可以通过 getConstructors() 或者是 getDeclaredConstructors()
		Constructor[] declaredConstructors = stuClass.getDeclaredConstructors();
		for (Constructor constructor : declaredConstructors) {
			System.out.println(constructor);
		}
		System.out.println("==========================");
		// 由于构造方法的方法名都是相同,那么可以通过参数列表来获得某个具体的构造方法
		Constructor constructor = stuClass.getConstructor(String.class, String.class, String.class);
		// 获得某个具体的构造方法,那么就可以通过这个构造创建对象
		Student stu = (Student) constructor.newInstance("张涛", "9527", "男");
		System.out.println(stu);
	}
}
package cn.ekgc.javasenior.day20210629;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectOutputStream;

public class SerializableDemo01 {
	public static void main(String[] args) {
		
		// 创建 User 对象
		User user = new User("王大锤", "13601002978", 1);
		// 如果需要将一个对象保存到文件中,那么可以借助于 ObjectOutputStream 完成
		// 创建需要保存数据的文件路径
		String path = "C:\Users\Arthur\Desktop\users.txt";
		// 根据文件路径创建 File 对象
		File file = new File(path);
		// 初始化 FileOutputStream 和 ObjectOutputStream 类型的变量
		FileOutputStream out = null;
		ObjectOutputStream oos = null;
		
		try {
			// 通过 File 对象创建 FileOutputStream 对象
			out = new FileOutputStream(file);
			// 通过 FileOutputStream 对象创建 ObjectOutputStream 对象
			oos = new ObjectOutputStream(out);
			
			// 通过 ObjectOutputStream 将 User 对象写出
			oos.writeObject(user);
			System.out.println("对象写入成功!");
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				// 关闭最外层的流
				oos.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}
package cn.ekgc.javasenior.day20210629;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;

public class SerializableDemo02 {
	public static void main(String[] args) {
		
		// 设定需要读取的文件路径
		String path = "C:\Users\Arthur\Desktop\users.txt";
		// 根据文件路径创建对应的 File 对象
		File file = new File(path);
		// 分别创建 FileInputStream 和 ObjectInputStream 类型的变量
		FileInputStream in = null;
		ObjectInputStream ois = null;
		
		try {
			// 通过 File 对象创建 FileInputStream 对象
			in = new FileInputStream(file);
			// 通过 FileInputStream 对象创建 ObjectInputStream 对象
			ois = new ObjectInputStream(in);
			
			// 通过 ObjectInputStream 对象的 readObject() 读取文件中的数据
			// 并且通过反序列化,将数据恢复成一个对象
			User user = (User) ois.readObject();
			System.out.println(user);
		} catch (IOException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} finally {
			try {
				// 关闭 ObjectInputStream 对象
				ois.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}
package cn.ekgc.javasenior.day20210629;

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;

public class StudentDemo {
	public static void main(String[] args) throws Exception {
		// 对于普通的属性或者是方法的调用,需要创建对象
		Student student = new Student();
		student.name = "法外狂徒张三";
		student.cellphone = "110";
		student.setGender("男");
		System.out.println(student);
		System.out.println("=================");
		// 使用反射机制实现以上功能
		// 获得 Student 的 Class 对象
		Class stuClass = Student.class;
		// 获得 Student 的无参数构造方法
		Constructor constructor = stuClass.getConstructor();
		// 借助于无参数构造方法创建对象
		Student stu = constructor.newInstance();
		// 获得 Student 的 name 属性
		Field nameField = stuClass.getField("name");
		// 给 stu 对象的 name 属性赋值
		nameField.set(stu, "法外狂徒张三");
		// 同理获得 cellphone 属性
		Field cellphoneField = stuClass.getDeclaredField("cellphone");
		cellphoneField.set(stu, "110");
		// 获得 Student 的 setGender()
		Method setGenderMethod = stuClass.getMethod("setGender", String.class);
		// 执行该方法
		setGenderMethod.invoke(stu, "男");
		System.out.println(stu);
	}
}
package cn.ekgc.javasenior.day20210629;

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.Iterator;

import javax.activation.FileDataSource;

public class Student01 {
public static void main(String[] args) throws Exception {
	Class stuclass1 = Student.class;
	Student student = new Student();
	Class stuclass = student.getClass();
	Field[] fields = stuclass.getFields();
	for(Field field: fields) {
		System.out.println(field);
	}
	System.out.println("=========================");
	Field[]declaFields = stuclass.getDeclaredFields();
	for(Field field: declaFields) {
		System.out.println(field);
	}
	System.out.println("=========================");
	Field nameField = stuclass.getField("name");
	nameField.set(student,"法外狂徒张三");
	System.out.println(student.name);
	Method[] declaredMethods = stuclass.getDeclaredMethods();
	for(Method method: declaredMethods) {
		System.out.println(method);
	}
	System.out.println("=========================");
	Method sayhello = stuclass.getMethod("sayHello");
	sayhello.invoke(student);
	Constructor[] declaredConstructors = stuclass.getConstructors();
	for(Constructor con: declaredConstructors) {
		System.out.println(con);
	}
	Constructor constructor = stuclass.getConstructor(String.class,String.class,String.class);
	Student stu = (Student )constructor.newInstance("张三丰","9527","男");
	System.out.println(stu);
	
}
}

 

 

 

 

 

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/658785.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号