第十八节:第三部分:java高级:反射-获取构造器对象并使用

Class提供的获取类构造器的方法以及获取类构造器的作用

Class提供的获取类构造器的方法以及获取类构造器的作用

代码:掌握获取类的构造器,并对其进行操作

Cat类

package com.itheima.day9_reflect;public class Cat {private String name;private int age;private Cat(String name, int age) {this.name = name;this.age = age;System.out.println("有参数构造器执行了~~");}private Cat() {System.out.println("无参数构造器执行了~~");}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}@Overridepublic String toString() {return "Cat{" +"name='" + name + '\'' +", age=" + age +'}';}
}

Test2Constructor类(主程序)

package com.itheima.day9_reflect;import org.junit.Test;import java.lang.reflect.Constructor;/*
* 目标:掌握获取类的构造器,并对其进行操作。
* */
public class Test2Constructor {@Test//获取全部构造器public void testGetConstructors() throws Exception {//1、反射第一步:必须先得到这个类的Class对象Class c = Cat.class;// 2、获取类的全部构造器// Constructor[] constructors = c.getConstructors();Constructor[] constructors = c.getDeclaredConstructors();// 3、遍历数组中的每个构造器对象for (Constructor constructor : constructors) {System.out.println(constructor.getName()+"====>"+constructor.getParameterCount());}}@Testpublic void testGetConstructor() throws Exception {//1、反射第一步:必须先得到这个类的Class对象Class c = Cat.class;// 2、获取某个构造器:无参数构造器//Constructor constructor2 = c.getConstructor();Constructor constructor1 = c.getDeclaredConstructor();System.out.println(constructor1.getName()+"====>"+constructor1.getParameterCount());constructor1.setAccessible(true);//禁止检查访问权限Cat cat = (Cat) constructor1.newInstance();System.out.println(cat);// 3、获取有参数构造器Constructor constructor2 = c.getDeclaredConstructor(String.class, int.class);System.out.println(constructor2.getName()+"====>"+constructor2.getParameterCount());constructor2.setAccessible(true);//禁止检查访问权限Cat cat2 = (Cat) constructor2.newInstance("叮当猫",3);System.out.println(cat2);}
}

结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/89285.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/89285.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

集中打印和转换Office 批量打印精灵:Word/Excel/PDF 全兼容,效率翻倍

各位办公小能手们!你们平时办公的时候,是不是经常要打印一堆文件,烦得要命?别慌,今天我给大家介绍一款超厉害的神器——Office批量打印精灵! 软件下载地址安装包 这玩意儿啊,是专门为高效办公设…

docker的搭建

一、安装docker使用以下命令进行安装dockerapt-get install docker.io docker-compose使用以下命令进行查看docker是否开启systemctl status docker由此可见,docker没有打开,进行使用命令打开。systemctl start docker再次查看是否开启。肉眼可见&#x…

数据库管理-第349期 Oracle DB 23.9新特性一览(20250717)

数据库管理349期 2025-07-17数据库管理-第349期 Oracle DB 23.9新特性一览(20250717)1 JavaScript过程和函数的编译时语法检查2 不再需要JAVASCRIPT上的EXECUTE权限3 GROUP BY ALL4 使用SQL创建并测试UUID5 IVF索引在线重组6 JSON到二元性迁移器&#xf…

将CSDN文章导出为PDF

作者:翟天保Steven 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处前言在日常学习和技术积累过程中,我们经常会在 CSDN 等技术博客平台上阅读高质量的技术文章。然而,网页阅读…

macOS - Chrome 关闭自动更新

进入 Google 相关资源文件夹 删除 GoogleSoftwareUpdate 文件夹 open ~/Library/Google 部分教程推荐,在 chrome://flags/ 页面设置,但最近没看到 自动更新相关开关。2025-07-13(日)

Python 模块化编程全解析:模块、包与第三方库管理指南

模块与包 模块化编程是什么?用生活例子秒懂 想象你在搭乐高积木: 每个小积木块都有特定功能(比如轮子、窗户、墙壁)—— 这就像模块(一个.py 文件,封装了函数或类)。把相关的积木块装进一个盒…

小白学Python,网络爬虫篇(2)——selenium库

前言 selenium 库是一种用于 Web 应用程序测试的工具,它可以驱动浏览器执行特定操作,自动按照脚本代码做出单击、输入、打开、验证等操作,支持的浏览器包括 IE、Firefox、Safari、Chrome、Opera 等。 与 requests 库不同的是,se…

Java安全:SpringBoot项目中Fastjson组件的使用与安全实践

前言 Fastjson是阿里巴巴开源的一个高性能Java JSON库,广泛用于Java对象的序列化和反序列化操作。在SpringBoot项目中,Fastjson常被用作JSON处理工具。然而,Fastjson因其高性能而广受欢迎的同时,也因多次爆出的安全漏洞而备受关注…

x的平方根

给你一个非负整数 x ,计算并返回 x 的 算术平方根 。由于返回类型是整数,结果只保留 整数部分 ,小数部分将被 舍去 。注意:不允许使用示例 1:输入:x 4 输出:2示例 2:输入&#xff1…

oracle服务器定时备份Windows Server

-- 创建目录对象(若未创建),先建立对应文件夹才能用目录对象CREATE OR REPLACE DIRECTORY dp_dirbackup AS D:\BACKUP; --配置路径 GRANT READ, WRITE ON DIRECTORY dp_dirbackup TO 用户名; --配置用户权限-- 备份脚本(保存为每…

HTML data-* 属性 自定义属性

data-* 属性用于存储私有页面后应用的自定义数据。 data-* 属性可以在所有的 HTML 元素中嵌入数据。 自定义的数据可以让页面拥有更好的交互体验(不需要使用 Ajax 或去服务端查询数据)。 data-* 属性由以下两部分组成:1. 属性名不要包含大写字…

Oracle 大页配置use_large_pages 参数解析

一、前因 再给一位客户的Exdata 2 节点 RAC 19C版本创建数据库并配置好优化参数后,客户一天发来一份健康检查报告,打开一看 use_large_pages 配置异常。 回想安装部署时特意确认了在db启动大页已经生效,为何会有此异常告警项? 二…

迅为八核高算力RK3576开发板摄像头实时推理测试 ppyoloe目标检测

RK3576处理器迅为iTOP-3576开发板采用瑞芯微RK3576高性能、低功耗的应用处理芯片,集成了4个Cortex-A72和4个Cortex-A53核心,以及独立的NEON协处理器。它适用于ARM PC、边缘计算、个人移动互联网设备及其他多媒体产品。NPU高达6TOPS算力支持INT4/INT8/INT…

纯CSS轮播

纯CSS轮播 在现代网页设计中,轮播组件是一种常见的用户界面元素,广泛应用于展示图片、产品信息等内容。本文将详细介绍如何使用纯 HTML/CSS 和少量 JavaScript 实现一个功能完备的 CSS Scroll Snap 轮播组件。该组件不仅支持原生左右拖拽滚动&#xff0c…

从零开始的云计算生活——番外3,LVS+KeepAlived+Nginx高可用实现方案

目录 前言 一、环境搭建 1.环境准备 2.安装ipvsadm和keepalived(Lvs服务器),nginx服务器安装nginx 3.为两台RS配置虚拟ip(nginx服务器) 1.配置虚拟网络子接口 2.ARP响应级别与通告行为的概念 3.配置ARP 二、Ke…

100201组件拆分_编辑器-react-仿低代码平台项目

文章目录1 设计UI,组件拆分2 实现关于1 设计UI,组件拆分 编辑器整体如上图所示,重点关注: flex弹性布局 上 左中右 下 左中右 画布居中画布Y轴滚动 2 实现 src/pages/question/Edit/index.tsx代码如下: import { …

CS课程项目设计2:交互友好的五子棋游戏

上次给大家分享了井字棋游戏的设计流程 CS课程项目设计1:交互友好的井字棋游戏-CSDN博客https://blog.csdn.net/weixin_36431280/article/details/149309500?spm1001.2014.3001.5501今天打算再分享进阶版井字棋游戏的版本设计——五子棋游戏。五子棋游戏操作方式与…

如何用山海鲸轻松构建3D智慧大屏?

一、什么是3D可视化大屏? 3D可视化大屏是一种结合了三维(3D)图形技术与数据可视化技术的信息展示平台,它通过在大型屏幕上以三维立体的形式呈现复杂的数据和信息,为用户提供直观、生动的视觉体验。这种技术将抽象的数…

牛客网 SQL 刷题(全部题目,最优解,复杂题有讲解)

刷题网址:https://www.nowcoder.com/exam/oj?questionJobId10&subTabNameonline_coding_page有时主页显示的题目序号与点进去之后的题目序号有所不同,这里以点进去之后的题目序号为主,如果日后还是有所出入,可以凭题目名称找…

Linux 系统管理基础教程

一、引言在 Linux 系统中,系统管理是一项至关重要的任务,它涉及到进程和服务的管理、系统运行级别的控制以及关机重启等操作。本文将详细介绍 Linux 系统管理的基础知识,帮助读者更好地理解和掌握 Linux 系统的管理技巧。二、Linux 中的进程和…