大家好,今天小编关注到一个比较有意思的话题,就是关于java语言中modifiers的问题,于是小编就整理了2个相关介绍Java语言中modifiers的解答,让我们一起看看吧。
关于.getClass和.class的区别?
Class<Date>clazz=Date.class;Datedate=newDate();Class<Date>clazz1=(Class<Date>)date.getClass();.class是一个类的属性,不需要实例.getClass()是所有类的超类JAVA.lang.Object的一个方法,需要新建实例属性和方法的区别
在学习反射时想到了这个问题,.getClass()和.class有没有什么区别? 当然,最明显的区别就是.getClass()是一个对象实例的方法,只有对象实例才有这个方法,具体的类是没有的。类的Class类实例是通过.class获得的,显然,类没有.getClass()方法。 从网上还找到一些其他资料:
1、出现的时期不同:Class.forName()和getClass()是在运行时加载;Class.class是在编译器加载,即.class是静态加载,.getClass()是动态加载。
2、举个例子,Iterator it = s.iterator();得到的it的真正类型是KeyIterator,是Iterator 的子类,按常理来说应该可以执行next()方法,但是值得注意的是,KeyIterator是hashmap的内部类,J***A给的提示是can not access a member of class j***a.util.HashMap$KeyIterator with modifiers "public" 从上面的那些例子上也能看出,除内部类外的其他类的应用上.class功能完全等于.getClass()!只是一个是用类直接获得的,一个是用实例获得的。
j***a中构造方法是否有返回值?
J***a中的构造方法是用来初始化一个类的,并为为实例变量赋予合适的初始值。因此构造方法不需要返回类型。
构造方法必须满足以下语法规则:
(1)方法名必须与类名相同;
(2)不要声明返回类型;
(3)不能被static、final、synchronized、abstract和native修饰;
(4)构造方法不能被子类继承,所以用final和abstract修饰没有意义。
有返回值,不然你new出一个对象之后,怎么能复制给一个变量?比如:Girl girl = new Girl()
我个人认为有返回值,返回的是创建的对象的地址的引用,当然,这个是隐性的,所以你看不到。
到此,以上就是小编对于j***a语言中modifiers的问题就介绍到这了,希望介绍关于j***a语言中modifiers的2点解答对大家有用。