反射及数学运算符类

1.API(接上篇): 数学运算符类(random 随机类)
产生随机数,前包后不包
Math类—基本数学运算方法:
(1)abs() 返回绝对值
(2)Math.max(a,b) 比较a,b值大小,输出较大的值
(3)Math.min(a,b) 比较a,b值大小,输出较小的值
(4)round() 四舍五入
(5)floor 向下取整
(6)ceil() 向上取整
(7)random() 返回0到1之间的小数
2.反射:(类的加载机制 Classloder)
运行时探究和使用编译时未知的类
反射就是操作Class类
第一种方式:
Dog d=new Dog();
Class d2=d.getClass(); //具体实例获得Class
第二种方式:
Class d3=Dog.Class(); //知道类的名字,但是没有实例对象
第三种方式:
Class d4=Class.forName("包名.类名"); //运行期动态传入
探究类的基本信息:1.Filed类:getDeclaredFiled //获取属性
2.Method类:getDeclaredMethod //获取方法
3.Constructor类:getDeclaredConstructor //获取构造函数
Filed:Field[] fields= d4.getDeclaredFields();//获取所有的属性
例如: //获取Dog类的属性1并且修改
/*Class d3=Class.forName("RandonTest.Dog");
Dog d=(Dog) d3.newInstance(); //用Instance的方法实例化一个对象
//Dog d2=new Dog(); //直接用new的方法实例化对象
Field[] fields= d3.getDeclaredFields();//获取所有的属性
for(Field field:fields){
if(field.getName().equals("age")){
field.set(d, "100");
}

}*/

————————————————————————————

package RandonTest;

public class Dog {
int age=20;
String name="wangwanghao ";
public void speaking(int s){
System.out.println("hello"+" "+name);
}

public void saying(){
System.out.println("hello,say"+age);
}
}

————————————————————————————

//获取Dog类的方法
Class d2=Class.forName("RandonTest.Dog");
Method[] methods=d2.getMethods();
for(Method method:methods){
//System.out.println(method);
//System.out.println(method.getReturnType());
//System.out.println(method.getParameterTypes());
}
Dog d1=(Dog) d2.newInstance();

Method method=d2.getMethod("speaking", int.class);
//method.invoke(d1, 6);

时间: 2024-12-27 02:41:33

反射及数学运算符类的相关文章

C# 数学运算符

运算符大致分为如下3类: 一元运算符,处理一个操作符 二元运算符,处理两个操作数 三元运算符,处理三个操作数 大多数运算符都是二元运算符,只有几个一元运算符和一个三元运算符,即条件运算符(条件运算符是一个逻辑运算符).下面先介绍数学运算符,它包括一元和二元运算符. 一 数学运算符 有5个简单的数学运算符,其中两个有二元和一元两种形式.下表列出了这些运算符,并用一个简短示例来说明他们的用法,以及使用简单的数值类型时他们的结果. 运 算 符 类 别 示例表达式 结果 + 二元 var1=var2+v

(1)Object类 (2)包装类和数学处理类 (3)String类

1.Object类1.1 基本概念 java.lang.Object类是Java类层次结构的根类,任何类都是Object类的直接/间接子类. 1.2 常用的方法(重点) Object() - 无参构造方法 boolean equals(Object obj) - 用于判断调用对象是否和参数对象相等. - 该方法默认比较两个对象的地址,与 == 运算符的效果等价. - 当需要比较对象的内容时则重写该方法,重写该方法后记得重写hashCode()方法. int hashCode() - 用于获取调用

C#利用反射,遍历获得一个类的所有属性名,以及该类的实例的所有属性的值

转自goldeneyezhang原文 C#利用反射,遍历获得一个类的所有属性名,以及该类的实例的所有属性的值 C#利用反射,遍历获得一个类的所有属性名,以及该类的实例的所有属性的值总结: 对应某个类的实例化的对象tc, 遍历获取所有属性(子成员)的方法(采用反射): Type t = tc.GetType();//获得该类的Type //再用Type.GetProperties获得PropertyInfo[],然后就可以用foreach 遍历了 foreach (PropertyInfo pi

利用反射机制,获取类的字段、方法、并实现简单调用

这篇文章是为之后要介绍Android的ICO框架做预备的,所以,如果想最近学习Android的ICO框架的同学,可以稍微看一下. 首先,简单介绍一下Java里面的反射. JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制. 不知道这样的一段解释,你能否看懂.如果更简单的说,反射就是能够根据你给出类名实例化出一个实实在在的对象.所以,对象的实例

Android利用反射机制为实体类属性赋值

在做android项目时,有时会遇到从网络上获取json类型数据,赋值给实体类,实体类属性少可以一个一个的赋值,如果实体类有很多属性,赋值可能就要耗很长的功夫了,幸好Java给我们提供了反射机制.下面是在我在android中如何利用java反射机制给实体类赋值. 在Android中利用反射机制为实体类属性赋值,首先需要导入一下两个包 import java.lang.reflect.Field; import java.lang.reflect.Method; 给实体类赋值首先需要一个实体类,这

java android布局里的控件值 反射绑定给实体类,实体类绑定给控件,表单提交绑定很有用

注意了:根据实际情况,添加实体里字段的类型,控件类型的判断才可使用.这里控件只有TextView EditText 实体类字段只有String int类型,带值的控件添加tag ,值和实体类的字段值一致 package ice.ui.service; import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import jav

透彻分析反射的基础_Class类

一.反射的基石--->Class类 1. Java类用于描述一类事物的特性,该类事物有什么属性,没有什么属性,值域这个属性的值是什么,则是由这个类的实例对象来确定的,不同的实例对象有不同的属性值.Java程序中的各个Java类,他们是否属于同一类事物,是不是可以用一个类来描述这类事物呢?这个类的名字就是Class,要注意与小写class关键字的区别哦.Class类描述了哪些方面的信息呢?类的名字,类的访问属性,类所属的包名,字段名称的列表,方法名称的列表,等等.学习反射,首先就要明白Class这

数学运算符 加减乘除模

int a=1;int b=2;int c=a+b;c=1+14%13;Console.WriteLine(c);递增运算符c=a++ ,"a++"等于“a=a+1”,先执行C的操作,再执行 a 的操作c=++a ,先执行++a操作,再执行c的操作++的运算优先级在加减乘除模之上比较运算符 >,< ,>=, <=, ==, != ("=="判断是否相等)bool bo=a>b;Console.WriteLine(bo);比较运算符的优先

六、运算符之数学运算符

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace _6.运算符之数学运算符 {     class Program     {         static void Main(string[] args)         {             // 加.减.乘.除.取余运算符             {                 int in