反射 学习笔记之Class类的使用
2024-08-29 13:10:25
1 java世界中万事万物皆对象,除了2个特殊情况
- int float等这些基本数据类型,(但是也都有Integer和Float等封装类做了弥补)
- java staic定义的,它不是属于对象的,而是属于类的
2 类也是对象,类是java.lang.Class类的实例对象 相当于 "There is a class named Class"
下面用代码说明:“任何一个类都是Class类的实例对象,有三种表示方式”
package com.xsf.Test; public class classDemo1 { public static void main(String[] args) { Test1 test1 = new Test1();//通过new的方式表示Test1的实例对象 /** * 其实Test1类也是对象是java.lang.Class对象的,如何表示?就不可以通过new的方式 * 任何一个类都是Class类的实例对象,有三种表示方式 * t1,t2,t3都是Test1的类类型因而都相等 */ Class t1 = Test1.class;//第一种方式,任何一个类都有一个隐含的静态成员 Class t2 = test1.getClass();//第二种方式,已知该类的对象通过getclass方法获取 //t1,t2表示了Test1类的类类型(class Type) /** * 万事万物皆对象 * 类也是对象是class类的实例对象 * 这个对象我们称为该类的类类型 */ System.out.println(t1==t2); Class t3 = null;//第三种方式 try { t3 = Class.forName("com.xsf.Test.ClassDemo1"); } catch (ClassNotFoundException e) { e.printStackTrace(); } System.out.println(t2==t3); //可以通过类的类类型创建该类的实例对象:通过t1,t2,t3创建Test1的实例对象 try { Test1 t4 = (Test1)t1.newInstance();//需要有无参数的构造方法 t4.init(); } catch (InstantiationException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } } } class Test1{ void init() { System.out.println("Hello World!"); } }
最新文章
- 可在广域网部署运行的QQ高仿版 -- GGTalk总览
- QuicKHit
- jsonkit mrc于arc混编
- 128. Longest Consecutive Sequence *HARD* -- 寻找无序数组中最长连续序列的长度
- 探讨Web组件化的实现
- Linux下基于Erlang的高并发TCP连接压力实验
- ASP.NET 5简介
- Asp.net mvc 知多少(九)
- Python练习2
- WPF自学入门(八)WPF窗体之间的交互
- SVN和Git 介绍,区别,优缺点以及适用范围
- ArcGIS中KML转为shp文件
- Python 锁 同步 互斥锁
- NPOI导出EXCEL报_服务器无法在发送 HTTP 标头之后追加标头
- 关于mac的一些常用操作记录
- http4e eclipse plugin 插件介绍
- InnerClass annotations are missing corresponding EnclosingMember annotations. Such InnerClas...
- vue组件间的数据和方法传递
- linux 安装git环境变量配置
- WMIC常用
热门文章
- Python系列之 - python循环语句
- [HNOI 2003]激光炸弹
- ●codeforces 553E Kyoya and Train
- ●BZOJ 2434: [Noi2011]阿狸的打字机
- Hello,World!!----来自半个新OIer的问候
- 数论:px+py 不能表示的最大数为pq-p-q的证明
- hdu 5505(GT and numbers)
- bzoj1069 [SCOI2007]最大土地面积 旋转卡壳
- 缓冲区(buffer)与缓存(cache)
- button点击切换,获取按钮ID