【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
首先咱们先来说下这个类在JAVA里充当类什么角色:首先这个类跟Objct是没关系的,但是他的对象却全部有关系;
相当于玩游戏里的外挂
相当于打外国游戏时你买的代理
相当于你美国的特工
以上这几个比较适用初学者初步对CLASS这个类的理解
总之这个类就是充当强盗的角色,强取豪夺别人东西;
接下来写个例子,结合我这几句解释相信每个初学者就能知道到底什么是CLASS了
package exp
class A{
private int i=0;
private A(int i){
this.i=i;
}
private void f(){
System.out.print(i+"");
}
}
像上面写的这个类,要是在我们以前,除非用单实例模式来使用它,也就是在写的时候要主动添加几个方法进去让别人去使用它,不然就没法使用了;
但是有了CLASS这个强盗之后,妈妈再也不用担心我使用不了那个类了。
记得用全部私有的类来测试自己,就像我上面写的一样,像其他人写公有的来测试有时候会错得自己都不知道已经错了
接下来一起看看怎么用CLASS来使用吧:下面是几个最基本的用法
public class B{
public static void main (String[] args){
Class cl=Class.forName("exp.A");//写类全名
//上面这部是取出A这个类的Class对象-----》有点拗口,你可以理解为把A这个类拿到手
Constructor ct=cl.getDeclaredConstructor(int.class);//口号内传参数的class类型
//上面这步是取出A这个类的私有构造器
ct.setAccessible(true);
//因为ct是私有构造器,所以取出来后要改下权限,让ct变成可以使用的
A a=(A) ct.newInstance(5);//括号里传参数进去
//上面这步就是把A类new出来了
Field f=cl.getDeclaredField("i");
//取出A类里面的 i 这个元素
f.setAccessible(true);
//因为i 这个元素也是私有的,所以也要改下权限,让i变成可以使用
int i= f.getInt(a);
//获取A类里i的值
f.set(a, 10);
//能取到当然也可以改变咯,上面这步就是用来直接设定i的值
Method mt=cl.getDeclaredMehod("f");//填方法名
//上面这部就是取到A类的f方法
mt.setAccessible(true);
//这部什么意思不用再说了吧
mt.invoke();
//上面的这个步就是使用A类的f方法了
}
}
通过这个例子相信每位(到此一游)的同学都能对CLASS这个类有个自己概念类吧
这个类还有许多功能,其他功能就不一一介绍类,既然是学习就要有专研精神,剩下的功能留给大家自己专研吧
注意:看着我写的例子自己跟着写一遍。
学编程,无技巧,只在乎快慢,欲快多动手。
如果你觉得这个对你有用,请留个评论再走吧!
来源:oschina
链接:https://my.oschina.net/u/2668616/blog/636930