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");
}
}*/dom
————————————————————————————函數
package RandonTest;spa
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);
}
} 對象
————————————————————————————ssl
//獲取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); get