Java反射(类加载,获取对象的class类,更改对象属性)

本文探讨Java反射机制,包括类加载、获取对象的Class类、访问私有及非私有属性,以及如何修改对象属性。通过实例代码,详细阐述了反射在Java编程中的应用。
摘要由CSDN通过智能技术生成

先说说我对反射的认识: 加载完类之后,在堆内存的方法区中就产生了一个Class类型的对象(一个类只有 一个Class对象),这个对象就包含了完整的类的结构信息。我们可以通过这个对 象看到类的结构。这个对象就像一面镜子,透过这个镜子看到类的结构,所以, 我们形象的称之为:反射

这章节学的属实不好,我就用老师的代码和自己的理解完成这篇,直接上代码

1. 这段代码要说明类加载了一次,创建新对象创建几次就是几次

public class demo {
   
public static void main(String[] args) throws ClassNotFoundException, IllegalAccessException, InstantiationException {
   
        User yang = new User(1, 2, "yang");
        User yang1 = new User(1, 3, "yang");
        System.out.println(yang.hashCode());
        System.out.println(yang1.hashCode());

        Class class1 = yang.getClass();
        Class class2 = yang1.getClass();
        System.out.println(class1.hashCode());
        System.out.println(class2.hashCode());

        Class class3 = Class.forName("User");
        User user=(User) class3.newInstance();
        user.setAge(5);
        user.setId(5);
        user.setName("kaibo");

        System.out.println(user);
}
}
class User{
   
private int id;
private int age;
private String name;

public User() {
   
}

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

public int getId() {
   
return id;
}

public void setId(int id) {
   
this.id = id;
}

public int getAge() {
   
return age;
}

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

public String getName() {
   
return name;
}

public void setName(String name) {
   
this.name = name;
}

@Override
public String toString() {
   
return "User{" +
"id=" + id +
", age&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值