首页 > 其他分享 >13 动态创建对象执行方法

13 动态创建对象执行方法

时间:2023-09-13 23:23:04浏览次数:49  
标签:Body 13 int age 创建对象 class body1 动态 public

反射的作用

package annotate;


import java.lang.reflect.Constructor;
import java.lang.reflect.Field;

// 通过反射,动态创建对象
public class Test12 {
    public static void main(String[] args) throws Exception {
        Class c1 = Body.class;
        // 1
        Body body = (Body) c1.newInstance();  // 实际上调用类的无参构造
        System.out.println(body);
        // 2 通过构造器创建对象
        Constructor constructor=c1.getConstructor(int.class,int.class,String.class);
        Body body1= (Body) constructor.newInstance(18,1,"zhan");
        System.out.println(body1);
        System.out.println(body1.getAge());
           // 通过反射操作私有属性
       // body1.age=20;  因为private,不能直接操作
        Field age= c1.getDeclaredField("age");
        age.setAccessible(true);  // 设置为可操作
        age.set(body1,20);
        System.out.println(body1.getAge());
    }
}

class Body{
    private int age;
    private int id;
    private String name;

    public Body(){}
    public Body(int age, int id, String name) {
        this.age = age;
        this.id = id;
        this.name = name;
    }

    public int getAge(){
        return age;
    }
    public void setAge(int age){
        this.age=age;
    }
    public void say(){}
}

标签:Body,13,int,age,创建对象,class,body1,动态,public
From: https://www.cnblogs.com/zhanjianhai/p/17701068.html

相关文章

  • 2023年9月13日 天气:晴
    今天没有课,然后就背了20个单词,然后就是练习了一下随机生成30道四则运算的那道题。publicclasscount{publicstaticvoidmain(String[]args){for(inti=0;i<30;i++){intfirNum=(int)(Math.random()*99)+1;intsecNum=(int)(Math.r......
  • 2023年9月13日
    案例:2023年9月13日图片排版,集中排版,分散排版,侧边导航HTML<!DOCTYPEhtml><html> <head> <metacharset="utf-8"/> <title>导航页</title> <linkrel="stylesheet"href="./css/index_style.css"> </head>......
  • 每日总结9.13
    今日无事上课,吃饭andsleep                                            我赌老师不看这一个博客......
  • 2023 9.13每日总结
    收获:在java中使用double类型的数值进行计算,结果是不精确的。一般情况下二进制转为十进制我们所使用的是按权相加法。十进制转二进制是除2取余,逆序排列法。十进制小数到二进制小数一般是整数部分除2取余,逆序排列,小数部分使用乘2取整数位,顺序排列。二进制小数到十进制小数还是使......
  • 2023.09.13
      今天学习了java关于类与对象的知识,包括方法,对象,构造函数,继承,封装的学习,以及this关键字的学习1、程序    为了完成现实世界的某个功能或者任务而编写的一系列有序代码的集合2、面向对象编程--oop用对象的方式来模拟现实世界---软件3、对象  对象是类的实例4......
  • 9.13
    学习html和css,自己做了三个网页   ......
  • 9.13日
    一、今天上午学了英语,翻译了许多课文,感觉英语的功力恢复了不少。二、把Java的动手实验的作业写完了,学了Java自带的高精度,可以消除浮点数运算带来的精度损失,其他的以前都学过,轻轻松松简简单单。三、刷了一下第六届石家庄铁道大学的编程设计竞赛,一共有12道题,差不多可以做出8道来,用......
  • 每日总结|9.13-上课最美好的事情就是下课️
    今天我做了2件事1、理解hadoop基础知识2、idea连接HbaseAPI ----------------------------------闲言碎语我真的是,我只以为虚拟机上建立hadoop集群,mobaxterm远程连接就行,结果我上idea我还以为是理所当然的,然后一直有问题,还没有报错结果,我搞了好久好久,久到我都快崩溃了,因为没......
  • 9.13日总结
    今天早八水了一节英语课,10点开始跟舍友找教室自习,基教找遍了都没有空位,又跑到一教去找自习室,上午学完,中午吃个饭歇一会,下午两点学到5点,晚上开了个会,明天要查寝,很烦,本来9栋就小的要死,东西都没地方放,怎么可能应对查寝呢,不理解,睡觉......
  • 9.13
    上午学习英语,背了会儿单词,准备四级考试。下午简单学习了会儿Java,完成了Java开学测试的重写packagexinde; publicclassWarehouseInformation{privateStringcode;privateStringname;privateStringsupplier;privateStringtime;privateStringwarehouseNumber......