「java修改私有实例变量」java修改私有实例变量的方法

博主:adminadmin 2023-01-11 05:27:07 741

今天给各位分享java修改私有实例变量的知识,其中也会对java修改私有实例变量的方法进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java 怎样动态修改 private static final int 值

java中final修饰的值是无法修改的。

final变量(常量)

用final修饰的成员变量表示常量,值一旦给定就无法改变!

final修饰的变量有三种:静态变量、实例变量和局部变量,分别表示三种类型的常量。

从下面的例子中可以看出,一旦给final变量初值后,值就不能再改变了。

另外,final变量定义的时候,可以先声明,而不给初值,这中变量也称为final空白,无论什么情况,编译器都确保空白final在使用之前必须被初始化。但是,final空白在final关键字final的使用上提供了更大的灵活性,为此,一个类中的final数据成员就可以实现依对象而有所不同,却有保持其恒定不变的特征。

package org.leizhimin;

public class Test3 {

private final String S = "final实例变量S";

private final int A = 100;

public final int B = 90;

public static final int C = 80;

private static final int D = 70;

public final int E; //final空白,必须在初始化对象的时候赋初值

public Test3(int x) {

E = x;

}

/**

* @param args

*/

public static void main(String[] args) {

Test3 t = new Test3(2);

//t.A=101; //出错,final变量的值一旦给定就无法改变

//t.B=91; //出错,final变量的值一旦给定就无法改变

//t.C=81; //出错,final变量的值一旦给定就无法改变

//t.D=71; //出错,final变量的值一旦给定就无法改变

System.out.println(t.A);

System.out.println(t.B);

System.out.println(t.C); //不推荐用对象方式访问静态字段

System.out.println(t.D); //不推荐用对象方式访问静态字段

System.out.println(Test3.C);

System.out.println(Test3.D);

//System.out.println(Test3.E); //出错,因为E为final空白,依据不同对象值有所不同.

System.out.println(t.E);

Test3 t1 = new Test3(3);

System.out.println(t1.E); //final空白变量E依据对象的不同而不同

}

private void test() {

System.out.println(new Test3(1).A);

System.out.println(Test3.C);

System.out.println(Test3.D);

}

public void test2() {

final int a; //final空白,在需要的时候才赋值

final int b = 4; //局部常量--final用于局部变量的情形

final int c; //final空白,一直没有给赋值.

a = 3;

//a=4; 出错,已经给赋过值了.

//b=2; 出错,已经给赋过值了.

}

}

java 如何调用一个私有方法里的私有成员变量

package reflection;

import java.lang.reflect.Field;

import java.lang.reflect.Method;

/*

* 该类主要练习使用java的反射机制调用其他类的

* private方法和变量;

*/

public class MethodTest

{

public static void main(String[] args) throws Exception

{

Class? classType = People.class;

People p1 =(People) classType.newInstance();

// 获取指定的方法,调用People类的私有方法;

Method method = classType.getDeclaredMethod("sayHello",

new Class[] { String.class });

method.setAccessible(true);//压制java的访问修饰符;

method.invoke(p1, new Object[]{"Mr zhou"});

//获取People类的私有属性;

Field field = classType.getDeclaredField("age");

field.setAccessible(true);

field.set(p1, 12);

System.out.println(field.get(p1));

}

}

class People

{

private int age;

private String name;

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;

}

private void sayHello(String str)

{

System.out.println("Hello: " + str);

}

}

java父类怎么调用并修改子类的私有变量

父类调用子类,这不符合java语言规范,子类可能会被删除,那这个父类就不能用了,那就是一个模块不能用了,子类可以修改父类的私有变量,具体参考这个java 通过反射reflect修改父类私有对象的值

关于java修改私有实例变量和java修改私有实例变量的方法的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。