`
zhengjiong
  • 浏览: 70784 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

反射练习- 改变private成员变量的值

    博客分类:
  • Java
阅读更多
package com.zj.reflect;

import java.lang.reflect.Field;

/**
 * 使用反射改变private成员变量的值
 * @author zhengjiong
 * time:2011-9-17 22:03:06
 */
public class ReflectTest6
{
	
	public static void main(String[] args) throws Exception
	{
		Private2 p = new Private2();
		
		Class<?> classType = p.getClass();
		
        //getDeclaredField可以获得private方法而getMethod不行
		Field field = classType.getDeclaredField("name");
		
		field.setAccessible(true);//压制java访问控制检查
		
		field.set(p, "lidsi");
		
		System.out.println(field.get(p));
	}
}

class Private2{
	private String name = "zhangsan";
	
	private String getName(){
		return name;
	}
}
 
分享到:
评论

相关推荐

    java基础之反射讲解

    反射的核心在于能够将类中的不同组成部分(如构造方法、方法、成员变量等)映射为相应的对象,从而可以使用这些对象来执行相应的行为。例如,通过反射技术,我们可以动态地调用一个类的方法,甚至可以调用那些被声明...

    Java编程练习题资源 -各章节练习刷题

    这一章主要介绍了Java的基础知识,包括环境搭建、简单的 HelloWorld 程序以及Java的基本语法,如变量、数据类型、运算符、流程控制(if-else、switch、for、while)等。通过这些练习题,学习者可以快速掌握Java编程...

    Java基础入门第三版-黑马练习题

    - **访问修饰符**:private, default, protected, public,控制类成员的可见性。 - **静态(static)**:用于创建类级别的变量和方法,独立于类的任何实例。 - **this关键字**:指向当前对象的引用,用于区分实例...

    C#版本的一个封装和反射实例

    在本实例中,可能包含一个类,这个类有一些私有的成员变量,然后通过公有的getter和setter方法来访问这些变量。这样,类的内部实现细节对外部代码隐藏,增强了代码的可维护性和可扩展性。 接下来,我们来看反射。...

    黑马程序员:轻松精通Java学习路线基础篇!.docx

    - 静态修饰符,用于修饰类的成员(变量和方法),静态成员属于类,不依赖于类的实例。 - 静态块:用于初始化静态变量。 9. 异常处理 - try-catch-finally:捕获并处理运行时异常,保证代码的健壮性。 - throws ...

    SCJP 经典练习题

    1. **Java基础知识**:SCJP练习题中会涉及到Java的基本语法,如变量声明、数据类型、运算符、流程控制语句(if-else、switch、for、while等)。此外,还包括面向对象的基础概念,如封装、继承、多态。 2. **类与...

    java编程思想练习答案 the think in Java Annotated Solution Guide

    书中会涉及类的定义、构造函数、成员变量和方法、访问修饰符(public、private、protected)以及静态成员的使用。 3. **接口与抽象类**:Java允许使用接口和抽象类来实现多继承,这是单继承机制下扩展功能的重要...

    使用java理解程序逻辑第二学期-科学技术文献出版社-章节练习

    5. **类与对象**:理解面向对象编程的基本概念,如类的定义、对象的创建、成员变量和局部变量的区别、构造函数的使用,以及访问修饰符(public、private、protected、默认)的含义。 6. **继承(Inheritance)**:...

    java se基础代码练习 Java学习资料

    - **变量**:声明并存储数据的容器,有局部变量、成员变量(实例变量和静态变量)之分。 - **运算符**:包括算术、比较、逻辑、位操作、赋值等各类运算符。 - **流程控制**:如if条件语句、switch选择语句、for、...

    Java基本练习题(Java编程基础知识)

    - 封装:掌握封装的实现,包括私有化成员变量和提供公共访问器方法。 - 构造器:了解构造函数的作用,包括默认构造器和自定义构造器。 3. **异常处理** - 异常概述:理解异常的分类,如检查异常和运行时异常,...

    Java入门练习50题

    Java作为一门广泛使用的编程语言,对于...以上只是"Java入门练习50题"的部分内容,实际练习可能还会涵盖更多主题,如枚举、反射、注解等。通过解决这些题目,你可以逐步建立起对Java语言的全面认识,并提升编程能力。

    300个java 练习 入门 精通

    - 反射:动态获取类信息,创建对象,调用方法,修改字段值。 - 注解:了解元数据概念,使用标准注解和自定义注解。 9. **设计模式** - 常见设计模式:工厂模式、单例模式、观察者模式等,理解其原理和应用场景。...

    Java软件开发实战 Java基础与案例开发详解 19-8 练习题 共5页.pdf

    - **访问修饰符** 如public、protected、private用于控制成员的可见性。 ### 7. 面向对象的分析与设计 - **对象模型** 是基于现实世界中的对象来构建的。 - **类之间的关系** 如关联、聚合、组合等,描述了不同类...

    应聘Java笔试时可能出现问题及其答案

    - `private`: 只能在声明它的类中访问。 - `protected`: 可以在同一包内及不同包的子类中访问。 - `friendly`(包级私有): 只能在同一包内的类中访问。 - 没有修饰符: 默认为`friendly`。 2. **ArrayList和...

    21天学通Java-由浅入深

    145 8.2 修饰符 146 8.2.1 public:声明成员变量为公共类型 146 8.2.2 private:声明成员变量为私有类型 147 8.2.3 default:声明成员变量为默认类型 148 8.2.4 protected:声明成员变量为保护类型 149 8.3 成员变量...

    50道java程序练习题

    1. **基础语法**:练习题可能包括变量声明、数据类型(如整型、浮点型、字符型、布尔型)、运算符(算术、比较、逻辑、赋值等)、流程控制(if-else、switch-case、for、while、do-while循环)。 2. **类与对象**:...

    JavaSe总结

    - 访问修饰符(public、private、protected、默认)控制成员的可见性。 6. **异常处理** - 异常是程序运行时出现的错误,Java通过try-catch-finally结构进行捕获和处理。 - 自定义异常类可以更好地适应特定场景...

Global site tag (gtag.js) - Google Analytics