Class类(基本介绍、常用方法)

目录

基本介绍

Class类的常用方法


基本介绍

从类图来看,Class就是一个类,和其他类是一样的,只是这个类的使用方法和功能有点特殊性,仅此而已。

2.Class类的对象是通过类加载器来生成的,那么到底是通过类加载器的哪个方法呢?


类加载器,也就是ClassLoader,里面有个方法叫loadClass(),通过这个方法来完成类加  载,生成某个类对应的Class对象。 

3.在堆里面,它只会存在一份,不管new几次Cat,只会存在一个某个类的Class对象,这里我们可以验证一下,看它们的hashCode


      Class cls2 = Class.forName("com.godairo.Cat");
      System.out.println(cls1.hashCode());
      System.out.println(cls2.hashCode()); 

如果加载的类不是同一个 那Class肯定就不同了。

验证一下:我们可以创建一个Dog类

Class cls3 = Class.forName("com.godairo.Dog");
System.out.println("cls3 HashCode="+cls3.hashCode());

这里肯定跟上面是不相同了,Dog类和Cat类已经不是同一个类,也就是说Dog类在堆内存中也会有一个Class对象,cls1和cls2对应的是同一个。

4.每个类的实例都会记得自己是由哪个 Class实例所生成。

比如说我们创建一个Cat对象,它这个对象会知道自己属于哪一个Class类对象,假设我们又new一个  

Cat cat = new Cat()
Cat cat2 = new Cat()

这时候cat2对象也是知道自己属于哪个Class类对象,这就是为什么后面我们可以通过getClass来拿到它关联的对象。

5.通过Class对象可以完整地得到一个类的完整结构,通过一系列API 

6.Class对象是存放在堆的 

7.类的字节码二进制数据,是放在方法区的,有的地方称为类的元数据(包括方法代码,变量名,方法名,访问权限等等。) 

加载类过后,在方法区里面,会得到一个字节码二进制文件,具体来说就是:当我们把类加载完毕以后,除了会生成一个Class类对象在堆里面,同时在方法区还会生成类的字节码二进制数据,把这个二进制数据也称为元数据,而在堆里面会产生一个类对象,它是一个数据结构,数据结构里面就会把成员变量、成员方法等当成一个对象来操作。二进制操作起来会比较麻烦,但是对于数据结构操作起来就更方便了

Class类的常用方法

Car.java

package com.godairo;

/**
 * @author GodAiro
 * Creation Time: 2022/7/17 17:20.
 */
public class Car {
   
   public String brand = "宝马"; //品牌
   public int price = 500000;
   public String color = "白色";

   @Override
   public String toString() {
	  return "Car{" +
			  "brand='" + brand + '\'' +
			  ", price=" + price +
			  ", color='" + color + '\'' +
			  '}';
   }
}

Class02.java

package com.godairo.reflection.class_;

import com.godairo.Car;

import java.lang.reflect.Field;

/**
 * @author GodAiro
 * Creation Time: 2022/7/17 17:21.
 * 演示Class类的一些常用方法
 */
@SuppressWarnings({"all"})
public class Class02 {
   public static void main(String[] args) throws Exception {
	  String classAllPath = "com.godairo.Car";
	  //1.获取Car类对应的Class对象
	  //<?> 这个问号表示不确定的Java类型,也就是说将来的对象到底是表示Car还是Dog还是Person,这是不确定的,不写也可以,写也可以
	  Class<?> cls = Class.forName(classAllPath);
	  //2.输出Cls
	  System.out.println(cls);//显示cls对象是属于哪个类的Class对象,但是要清楚,这个cls不是一个真正的Car对象,不要有强转这个操作。
	  System.out.println("运行类型:"+cls.getClass()); //输出运行类型 java.lang.Class
	  //3.得到包名
	  System.out.println("包名:"+cls.getPackage().getName());
	  //4.得到全类名
	  System.out.println("类名:"+cls.getName());
	  //5.通过cls创建一个对象实例
	  Car car = (Car)cls.newInstance();
	  System.out.println(car);
	  //6.通过反射获取属性,比如想获得brand属性
	  Field brand = cls.getField("brand");
	  System.out.println("得到的属性:"+brand.get(car));//宝马
	  //7.通过反射给属性赋值
	  brand.set(car,"奔驰");
	  System.out.println("赋值后的属性:"+brand.get(car));//奔驰
	  //8.遍历得到所有属性(字段)
	  System.out.println("=======所有字段属性=======");
	  Field[] fields = cls.getFields();
	  for(Field f:fields){
		 System.out.println(f.getName());//名称
	  }
   }
}

class的使用 !!! es6
兔子零
04-21 191
console.log(` 1.创建一个空对象 2.让this 指向刚刚创建好的空对象 3.执行构造函数内的代码 (为相关的属性和方法赋值) 4.返回创建好的对象`) // 1.创建一个空对象 // 2.让this 指向刚刚创建好的空对象 // 3.执行构造函数内的代码 (为相关的属性和方法赋值) // 4.返回创建好的对象 // new 一个对象的过程 就是实例 function Person...
class的使用
weixin_34100227的博客
07-24 171
我们在ES5中经常使用方法或者对象去模拟的使用,虽然可以实现功能,但是代码并不优雅,ES6为我们提供了的使用。需要注意的是我们在写的时候和ES5中的对象和构造函数要区分开来,不要学混了。 的声明 先声明一个最简单的coder里只有一个name方法方法中打印出传递的参数。 class coder{ name(val){ conso...
【小白记录python】——class)的简单解释
最新发布
faderbitch的博客
07-20 2072
在编程中,Class)是一种用户自定义的数据型,它将数据(通常称为属性或成员变量)和对这些数据进行操作的函数(通常称为方法或成员函数)封装在一起,相比于一般的函数更方便调用,通俗来讲,就是很多函数的集合,这些函数共用一个数据源。可以被看作是创建对象的模板或蓝图。通过,可以创建多个具有相同结构和行为的对象实例。
Class
twenj1616的博客
03-19 2553
Class 是什么 认识 Class 可以看做是对象的模板,用一个可以创建出许多不同的对象 Class基本用法 名一般首字母大写 class Person { // 实例化时执行构造方法,所以必须有构造方法,但可以不写出来 constructor(name, age) { this.name = name; this.age = age; } // 一般在构造方法中定义属性,方法不在构造方法中定义 // 各实例共享的方法 speak() { console.log('s
Class的使用
Gronbu1的博客
07-29 365
package com.imooc.reflect; public class ClassDemo1 { public static void main(String[] args) { ABC a=new ABC();/*ABC这个本身就是一个实 例对象,就是class的实例对象 ,任何一个都是class的实例对象 ,有三种表示方式来表示这个实例对象*/ ...
Class常用方法
NJUSTZJC的博客
11-15 252
Class常用方法 public static void main(String args []) throws Exception { //的全路近。 String path = "FirstZjc.cat"; Class cls = Class.forName(path); System.out.println(cls);//cls这个对象是哪个的 System.out.println(cls.getCla
03 获得Class的几种方式
qq_44840451的博客
05-08 1835
1. Class 对象照镜子后可以得到的信息:某个的属性、方法和构造器、某个到底实现了哪些接口。对于每个而言,JRE都为其保留一个不变的Class型的对象。 一个Class对象包含了特定某个结构(class/interface/enum/annotation/primitive type/void/)的有关信息。 Class本身也是一个 Class对象只能由系统建立对象 一个加载的JVM中只会有一个Class实例 一个Class对象对应的是一个加载到JVM中的一个.class
java接口调用实现方法快捷键_Eclipse常用快捷键操作 、抽象、接口作为方法...
weixin_42421177的博客
02-26 2033
01eclipse快捷键* A:  Ctrl+T:查看所选中的继承树例如,在下面代码中,选中Teacher名,然后按Ctrl+T,就会显示出Teacher的继承关系* B: 查看所选中方法的源代码Ctrl+滑动鼠标点击方法名,或者选中方法名后,按F3键查看所选中方法的源代码。02java中的文档注释和制作* A: 在eclipse使用时,可以配合文档注释,导出对的说明文档,从而供...
java基础学习5---包装常用方法
柒月
02-20 1914
java中的数据型 包装基本数据java中提供了8中基本型:6中数字型(4个整数型,2个浮点型),1种字符型,还有1种布尔型。 整数: int 、short、byte、long,初始值为0. 浮点型:float、double,初始值为0.0 。 字符:char 初始值为空格。 布尔值:boolean ,初始值为false。 java中包装包括:Integer、Long...
jquery 根据class名 赋值_jQuery 取值、赋值的基本方法
weixin_32123093的博客
12-31 2990
/*获得TEXT.AREATEXT的值*/var textval = $("#text_id").attr("value");//或者var textval = $("#text_id").val();/*获取单选按钮的值*/var valradio = $("input[@type=radio][@checked]").val();/*获取一组名为(items)的radio被选中项的值*/var...
springboot常用标签介绍
软件老王
05-23 2308
springboot下,基本全标签化了,spring标签很多,有时候会混淆,简单记录下,以免有时候会迷糊。
Class几个基本方法
weixin_44145887的博客
02-22 1703
1.生成Class的三种方法: 1)Class.forName(“包名+名”); 把装入内存,对进行初始化,返回一个。 2)名.class装入内存,不初始化,返回一个的对象。 3)实例对象.getClass() 把装入内存,初始化,返回真正所指的对象的(new的是哪个,getClass获取的就是哪个)。 2.Class的集中常用方法: 1)newIntance()创建一个对象。 getClass().newInstance() ----->创建getClass()的对象
class 方法
weixin_30667301的博客
09-09 220
实例对象调用class方法时返回这个实例对象的isa指针,也就是对应的对象; 对象调用class方法时返回这个对象本身。 (注:如果想一直获得一个对象,也就是isa指针,可以调用runtime的object_getClass方法。) 例: Person *p = [Person new]; Class cls1 = [p class]; Cla...
Class介绍基本使用方法
Vicali的博客
12-07 9006
一、Class介绍 Class的对象表示的是一个,在内存中的class文件。 Class clz = String.class 表示String在内存中的class文件。 二、Class的使用 1.获得Class的对象 通过Class clz = Class.forName(“完全限定名”); 获得Class的对象封装class文件 完全限定名:包名+名. 通过名获得Class对象,名.class 通过某个的对象,获得Class文件,String在内存中的class
class
weixin_40606003的博客
11-15 243
1.1 es6提供了创建对象的新方法,可以通过class关键字来定义一个。如下: class Obj { constructor (x,y) { this.x = x; this.y = y; } fn () { console.log(this.x); } } var obj1 = new Obj(1,2); obj1.fn() //1 的调用同样需要使用ne...
Class的使用及概念
weixin_45817109的博客
12-18 662
一、的概念 是一个模板,它描述一对象的行为和状态。在ES5是用构造函数来描述的,而到ES6之后则是用class来描述的 二、Class 要使用Class去定义一个,用法如下: class Person{ } console.log(new Person())//输出的结果:Person{} console.log(typeof Person)//输出的结果:function 结果可见Pe...
写文章

热门文章

  • Class类(基本介绍、常用方法) 11889
  • 解决Post请求中文乱码问题 7742
  • 事务(Connection事务提交,以及回滚操作) 4050
  • MyBatis的各种查询功能 3729
  • 自定义映射resultMap(处理一对多、多对一映射) 3609

分类专栏

  • SpringMVC 2篇
  • MyBatis 6篇
  • Java基础巩固 9篇
  • Spring5 4篇
  • IO专题学习 2篇
  • JavaWeb 20篇
  • Java反射机制详细学习 4篇
  • JDBC详细学习 13篇
  • Maven 3篇
  • 项目实践
  • Servlet学习 18篇
  • 面试题——关于Servlet 2篇
  • maven的问题 1篇

最新评论

  • 面向对象编程(高级部分)——单例模式

    m0_70573371: 老韩的课讲的挺好的

  • RequestMapping注解

    不论94: 请问显示RequestMapping is not an annotation type怎么解决啊?

  • 自定义映射resultMap(处理一对多、多对一映射)

    紫龙er: 杨傅超给你点个赞

  • DAO和增删改查通用方法————BasicDao

    GodAiro: 我学习他的知识我自己记录怎么了??这里是有收益还是啥??别小丑

  • DAO和增删改查通用方法————BasicDao

    龙樱下梦: 原创?真敢标榜自己呢。 (韩老师的东西,直接照搬 )

大家在看

  • 合并RAR分卷压缩包 242
  • 论文翻译 ACL-2023.Justus Mattern.Membership Inference Attacks against Language Models via Neighbourhood 950
  • 恢复已删除文件的可行方法,如何恢复已删除的文件 894
  • 第2章 网页制作的排版方法 763
  • 万字长文——ConvNeXt(2022CVPR),卷积网络的顶峰之作,在Transformer盛行的当下,卷积网络还能再战! 1423

最新文章

  • Docker常用命令
  • SpirngMVC获取请求参数
  • RequestMapping注解
2023年1篇
2022年84篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GodAiro

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

玻璃钢生产厂家商场中空创意美陈山东仿铜孔子玻璃钢雕塑厂家双城玻璃钢雕塑厂玻璃钢白鹭雕塑哪里买阳泉玻璃钢雕塑定制临颍玻璃钢雕塑费用松江区小型玻璃钢雕塑价格行情昆山商场户外美陈广东主题商场美陈批发苏州商场美陈布置玻璃钢雕塑厂家哪家好家深圳主题玻璃钢雕塑开封玻璃钢人物雕塑新郑花朵校园玻璃钢景观雕塑卡通玻璃钢雕塑制作多少钱焦作玻璃钢雕塑仙鹤生产厂玻璃钢红军雕塑专线设计玻璃钢雕塑费用惠州玻璃钢仿真雕塑庆阳大型玻璃钢雕塑玻璃钢艺术雕塑口碑好漳州园林玻璃钢雕塑价格四川常用商场美陈费用温州玻璃钢花盆销售公司江门玻璃钢雕塑图片玻璃钢花盆厂家联系方式宿迁玻璃钢雕塑厂河北佛像玻璃钢雕塑订做价格无机玻璃钢雕塑造型曲阳玻璃钢雕塑上色香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警汪小菲曝离婚始末遭遇山火的松茸之乡雅江山火三名扑火人员牺牲系谣言何赛飞追着代拍打萧美琴窜访捷克 外交部回应卫健委通报少年有偿捐血浆16次猝死手机成瘾是影响睡眠质量重要因素高校汽车撞人致3死16伤 司机系学生315晚会后胖东来又人满为患了小米汽车超级工厂正式揭幕中国拥有亿元资产的家庭达13.3万户周杰伦一审败诉网易男孩8年未见母亲被告知被遗忘许家印被限制高消费饲养员用铁锨驱打大熊猫被辞退男子被猫抓伤后确诊“猫抓病”特朗普无法缴纳4.54亿美元罚金倪萍分享减重40斤方法联合利华开始重组张家界的山上“长”满了韩国人?张立群任西安交通大学校长杨倩无缘巴黎奥运“重生之我在北大当嫡校长”黑马情侣提车了专访95后高颜值猪保姆考生莫言也上北大硕士复试名单了网友洛杉矶偶遇贾玲专家建议不必谈骨泥色变沉迷短剧的人就像掉进了杀猪盘奥巴马现身唐宁街 黑色着装引猜测七年后宇文玥被薅头发捞上岸事业单位女子向同事水杯投不明物质凯特王妃现身!外出购物视频曝光河南驻马店通报西平中学跳楼事件王树国卸任西安交大校长 师生送别恒大被罚41.75亿到底怎么缴男子被流浪猫绊倒 投喂者赔24万房客欠租失踪 房东直发愁西双版纳热带植物园回应蜉蝣大爆发钱人豪晒法院裁定实锤抄袭外国人感慨凌晨的中国很安全胖东来员工每周单休无小长假白宫:哈马斯三号人物被杀测试车高速逃费 小米:已补缴老人退休金被冒领16年 金额超20万

玻璃钢生产厂家 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化