java 语言Class类的作用,怎么使用
做代理服务器staticpublicvoidstartProxy(intport,Classclobj),这个函数怎么用的Class类...
做代理服务器static public void startProxy(int port,Class clobj),这个函数怎么用的Class类
展开
5个回答
2022-12-02 · 百度认证:北京惠企网络技术有限公司官方账号
关注
展开全部
java中创建对象时其实不是通过类直接创建的,如果你想要使用Test类,在java中JVM首先加载Test.java文件的字节码文件Test.class(也就是编译后的文件),当JVM(java虚拟机)加载字节码文件后,自动为该类创建自己的class对象,在通过class对象创建你以后要创建的对象\x0d\x0a例如:Test t1=new Test(); Test t2=new Test(); 我们都知道java中 == 是比较两个对象的内存地址,t1.getClass()==t2.getClass();返回是true,证明他们是一个class对象创建出来的。那么可Class对象的意义就是标志一个类了,Class类为我们提供了很多方法,比如反射技术常用到的Class.forName("包.类");这样可以获取一个类的Class对象。\x0d\x0a例如:Test类在org.abc这个包里,那么可以用Class.forName("org.abc.Test");这样就返回一个Test类的class对象,拿到这个对象接下来可以做很多事,调用这个类的方法,属性,构造方法等,具体你去研究下反射技术。如果有不懂在问我。\x0d\x0a针对一种数据类型的Class转换,比如String.class,int.class,类.class等\x0d\x0a你提出的问题Class参数,就是让你传一种Class对象进去。比如String.class,int.class,类.class等\x0d\x0aTest.class==t1.getClass();返回true,怕你有误解,说明一下类和对象都可以获取class对象的。并且这个对象是一个对象,因为一个类对应自己的class对象。
展开全部
java中创建对象时其实不是通过类直接创建的,如果你想要使用Test类,在java中JVM首先加载Test.java文件的字节码文件Test.class(也就是编译后的文件),当JVM(java虚拟机)加载字节码文件后,自动为该类创建自己的class对象,在通过class对象创建你以后要创建的对象
例如:Test t1=new Test(); Test t2=new Test(); 我们都知道java中 == 是比较两个对象的内存地址,t1.getClass()==t2.getClass();返回是true,证明他们是一个class对象创建出来的。那么可Class对象的意义就是标志一个类了,Class类为我们提供了很多方法,比如反射技术常用到的Class.forName("包.类");这样可以获取一个类的Class对象。
例如:Test类在org.abc这个包里,那么可以用Class.forName("org.abc.Test");这样就返回一个Test类的class对象,拿到这个对象接下来可以做很多事,调用这个类的方法,属性,构造方法等,具体你去研究下反射技术。如果有不懂在问我。
针对一种数据类型的Class转换,比如String.class,int.class,类.class等
你提出的问题Class参数,就是让你传一种Class对象进去。比如String.class,int.class,类.class等
Test.class==t1.getClass();返回true,怕你有误解,说明一下类和对象都可以获取class对象的。并且这个对象是一个对象,因为一个类对应自己的class对象。
例如:Test t1=new Test(); Test t2=new Test(); 我们都知道java中 == 是比较两个对象的内存地址,t1.getClass()==t2.getClass();返回是true,证明他们是一个class对象创建出来的。那么可Class对象的意义就是标志一个类了,Class类为我们提供了很多方法,比如反射技术常用到的Class.forName("包.类");这样可以获取一个类的Class对象。
例如:Test类在org.abc这个包里,那么可以用Class.forName("org.abc.Test");这样就返回一个Test类的class对象,拿到这个对象接下来可以做很多事,调用这个类的方法,属性,构造方法等,具体你去研究下反射技术。如果有不懂在问我。
针对一种数据类型的Class转换,比如String.class,int.class,类.class等
你提出的问题Class参数,就是让你传一种Class对象进去。比如String.class,int.class,类.class等
Test.class==t1.getClass();返回true,怕你有误解,说明一下类和对象都可以获取class对象的。并且这个对象是一个对象,因为一个类对应自己的class对象。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1,Class类有什么用?
Class类的实例表示java应用运行时的类(Class ans enum)或接口(interface and annotation)(每个java类运行时都在JVM里表现为一个Class对象,可通过类名.Class,类型.getClass(),Class.forName("类名")等方法获取Class对象)。数组同样也被映射为为Class 对象的一个类,所有具有相同元素类型和维数的数组都共享该 Class 对象。基本类型boolean,byte,char,short,int,long,float,double和关键字void同样表现为 Class对象。
2,Class类的特征
Class类没有公有的构造方法,它由JVM自动调用(在new对象或者加载-ClassLoader时)。
下面的方法作用是打印出对象的Class name:
void printClassName(Object obj) {
System.out.println("The Class of " + obj + " is " + obj.getClass().getName());
}
同样可以根据Class literal 获得Class name:
System.out.println("The name of Class Foo is: "+Foo.Class.getName());//你可以将Foo改为void尝试下。
3,Class的用法示例
如我们定义一个类:
public Class Test{
//Constructor
public Test(){this("");}
public Test(String name){}
//Field
public int id;
public String name;
//Method
public void testMethod(){
}
}
我们可以:
Class c = Class.forName("Test");
Method m[] = c.getDeclaredMethods();
for (int i = 0; i < m.length; i++)
System.out.println(m[i].toString());//输出testMethod
}
Constructor c[] = cls.getDeclaredConstructors();
for (int i = 0; i < c.length; i++) {
Constructor ct = c[i];
System.out.println("name = " + ct.getName());//输出两个构造函数信息
Class类的实例表示java应用运行时的类(Class ans enum)或接口(interface and annotation)(每个java类运行时都在JVM里表现为一个Class对象,可通过类名.Class,类型.getClass(),Class.forName("类名")等方法获取Class对象)。数组同样也被映射为为Class 对象的一个类,所有具有相同元素类型和维数的数组都共享该 Class 对象。基本类型boolean,byte,char,short,int,long,float,double和关键字void同样表现为 Class对象。
2,Class类的特征
Class类没有公有的构造方法,它由JVM自动调用(在new对象或者加载-ClassLoader时)。
下面的方法作用是打印出对象的Class name:
void printClassName(Object obj) {
System.out.println("The Class of " + obj + " is " + obj.getClass().getName());
}
同样可以根据Class literal 获得Class name:
System.out.println("The name of Class Foo is: "+Foo.Class.getName());//你可以将Foo改为void尝试下。
3,Class的用法示例
如我们定义一个类:
public Class Test{
//Constructor
public Test(){this("");}
public Test(String name){}
//Field
public int id;
public String name;
//Method
public void testMethod(){
}
}
我们可以:
Class c = Class.forName("Test");
Method m[] = c.getDeclaredMethods();
for (int i = 0; i < m.length; i++)
System.out.println(m[i].toString());//输出testMethod
}
Constructor c[] = cls.getDeclaredConstructors();
for (int i = 0; i < c.length; i++) {
Constructor ct = c[i];
System.out.println("name = " + ct.getName());//输出两个构造函数信息
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Class clobj = Object.getClass();
使用Class对象,方便以后你利用反射机制重新得到Object对象。
使用Class对象,方便以后你利用反射机制重新得到Object对象。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用class类 是一种面向对象的编程方式,拥有 封装、继承、多态的特性。
建议LZ学习面向对象的相关知识,将会获益匪浅。
建议LZ学习面向对象的相关知识,将会获益匪浅。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |