反射 学习笔记之Class类的使用
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!");
}
}
反射 学习笔记之Class类的使用的更多相关文章
- (转)Qt Model/View 学习笔记 (七)——Delegate类
Qt Model/View 学习笔记 (七) Delegate 类 概念 与MVC模式不同,model/view结构没有用于与用户交互的完全独立的组件.一般来讲, view负责把数据展示 给用户,也 ...
- (转)Qt Model/View 学习笔记 (五)——View 类
Qt Model/View 学习笔记 (五) View 类 概念 在model/view架构中,view从model中获得数据项然后显示给用户.数据显示的方式不必与model提供的表示方式相同,可以与 ...
- Typescript 学习笔记五:类
中文网:https://www.tslang.cn/ 官网:http://www.typescriptlang.org/ 目录: Typescript 学习笔记一:介绍.安装.编译 Typescrip ...
- Caliburn.Micro学习笔记(一)----引导类和命名匹配规则
Caliburn.Micro学习笔记目录 用了几天时间看了一下开源框架Caliburn.Micro 这是他源码的地址http://caliburnmicro.codeplex.com/ 文档也写的很详 ...
- Java 反射学习笔记
要学反射,先要了解Class这个类,Class是所有Java类的一个总称,Class的实例中存储的是一个类的字节码,获取Class的实例有三种方式: System.class new Date().g ...
- python cookbook第三版学习笔记十:类和对象(一)
类和对象: 我们经常会对打印一个对象来得到对象的某些信息. class pair: def __init__(self,x,y): self.x=x self. ...
- Java学习笔记16---抽象类与接口的浅显理解
抽象类是由abstract修饰的类,定义方式如public abstract class A{...}. 接口由interface修饰,定义方式如public interface B{...}. 抽象 ...
- java学习笔记7--抽象类与抽象方法
接着前面的学习: java学习笔记6--类的继承.Object类 java学习笔记5--类的方法 java学习笔记4--类与对象的基本概念(2) java学习笔记3--类与对象的基本概念(1) jav ...
- java学习——java中的反射学习笔记
Java--reflect 一.Class类的使用 什么是Class类? 1:在面向对象的世界中,万事万物皆对象. java语言中,静态的成员,普通数据类型类是不是对象呢? 是,对象!是类的对象! 类 ...
随机推荐
- python3全栈开发-socket编程
一. 客户端/服务器架构 1.硬件C/S架构(打印机) 2.软件C/S架构 互联网中处处是C/S架构 如黄色网站是服务端,你的浏览器是客户端(B/S架构也是C/S架构的一种) 腾讯作为服务端为你提供视 ...
- linux必知必会命令
- QueryRunner--常见方法
数据库链接池的使用,一方面解决了数据库访问过多时造成数据库承受的压力,另一方面也简化了数据查询,今天就 DBUtils包所提供的QueryRunner类(org.apache.commons.dbut ...
- Fliptile 翻格子游戏
问题 B: [Usaco2007 Open]Fliptile 翻格子游戏 时间限制: 5 Sec 内存限制: 128 MB 题目描述 Farmer John knows that an intell ...
- Codeforces Round #464 F. Cutlet
Description 题面 有\(2*n\)的时间,去煎一块肉,肉有两面,你需要在特定的时间内翻转,使得每一面都恰好煎了\(n\)分钟,你有\(k\)次翻转的机会,每一次表示为一段时间 \([L_i ...
- [HOJ2634] How to earn more 最大权闭合子图
Xiao Ming is an expert in computer science and technology, so he can get a lot of projects every mon ...
- BestCoder 1st Anniversary ——HDU5312(数学推导)
Today, Soda has learned a sequence whose n-th (n≥1) item is 3n(n−1)+1. Now he wants to know if an in ...
- 【Bzoj 1835 基站选址】
基站选址的区间里隐藏着DP优化的机密…… 分析: 不论是做过乘积最大还是石子合并,或者是其他的入门级别的区间DP题目的人呐,大米并认为读题后就能够轻松得出一个简洁明了的Dp转移方程. ...
- Codeforces Round#403 (Div. 1)
唉,昨天晚上迷迷糊糊地去打cf,结果fst两题,掉回蓝了... A.Andryusha and Colored Balloons 题意:给定一棵树,任意两个距离小等于二的点不能染相同的颜色,求最小颜色 ...
- python中的赋值操作和复制操作
之前一直写C#,变量之间赋值相当于拷贝,修改拷贝变量不会改变原来的值.但是在python中发现赋值操作本质是和C++中的引用类似,即指向同一块内存空间.下面通过一个例子说明: p=[0,1,2,3,4 ...