Java 使同一包中的另一个类只能访问变量

Java 使同一包中的另一个类只能访问变量,java,android,Java,Android,我有一个类有很多变量,我想让同一个包中的另一个类只能访问其中一个变量 我知道这是一个复杂的场景,但有没有办法做到这一点 您可以将变量包设置为私有,这样包中的任何类都可以访问它 您还可以在希望访问该变量的类中提供该变量的引用 更一般地说,您面临的问题通常意味着设计问题。您应该尝试重新思考您的体系结构:为什么您需要只有一个变量可以被其他类访问?它有什么特别之处?类有什么特别之处?您可以将变量包设置为私有,这样包中的任何类都可以访问它 您还可以在希望访问该变量的类中提供该变量的引用 更一般地说,您面临

我有一个类有很多变量,我想让同一个包中的另一个类只能访问其中一个变量


我知道这是一个复杂的场景,但有没有办法做到这一点

您可以将变量包设置为私有,这样包中的任何类都可以访问它

您还可以在希望访问该变量的类中提供该变量的引用


更一般地说,您面临的问题通常意味着设计问题。您应该尝试重新思考您的体系结构:为什么您需要只有一个变量可以被其他类访问?它有什么特别之处?类有什么特别之处?

您可以将变量包设置为私有,这样包中的任何类都可以访问它

您还可以在希望访问该变量的类中提供该变量的引用


更一般地说,您面临的问题通常意味着设计问题。您应该尝试重新思考您的体系结构:为什么您需要只有一个变量可以被其他类访问?这门课有什么特别之处?在问这类问题之前,你应该先了解一下


不能使变量“仅可由另一个类访问”。你能做的就是为它创建一个getter并检查调用getter的类,我看不出这有什么意义,但是在问你这类问题之前,你应该先了解一下


不能使变量“仅可由另一个类访问”。您可以做的是为它创建一个getter,并检查调用getter的类,但我看不出有任何意义。但是,一种方法是:


假设必须将变量
a
从类
a
传递到类
B
,请在类
a
内使用公共getter方法返回
a
的值,并在类
B
内调用该方法,一种方法是:


假设必须将变量
a
从类
a
传递到类
B
,在类
a
中使用公共getter方法返回
a
的值,并在类
B
中调用该方法是最好的方法,例如,如果您想使用从X到Y的变量,并希望它是字符串或其他任何东西,请使用
公共静态变量。\u NAME
让它位于X类中,以便在类中使用Y然后键入
X。您的变量\u名称
在这里您访问了从一个类到另一个类的变量。

例如,如果您希望使用从X到Y的变量,并希望它是字符串或其他任何东西,请使用
公共静态变量\u名称
让它位于X类中,以便在类Y中使用,然后键入
X.您的变量名
,在这里您从一个类访问了另一个类。

了解该包中有许多类,只有一个类可以访问该变量

为了它的价值:

一个糟糕的解决方案是在继承层次结构中添加一个单独包中的类。不帮助防止恶意编程

package pkg;
class MainClass extends VariableBearer {
    ... variable

package pkg;
class SpecificClass implements VariableUser {
    MainClass main;


package pkg.var {
class VariableBearer extends MainClassParent {
    protected Object variable;

package pkg.var
interface VariableUser
如果您的特定类与主类具有某种函数关系,则更好。也就是说,类之间的连接更紧密

有几种变体,从内部类到工厂方法注入(私有)字段


了解该包中有许多类,并且只有一个类可以访问该变量

为了它的价值:

一个糟糕的解决方案是在继承层次结构中添加一个单独包中的类。不帮助防止恶意编程

package pkg;
class MainClass extends VariableBearer {
    ... variable

package pkg;
class SpecificClass implements VariableUser {
    MainClass main;


package pkg.var {
class VariableBearer extends MainClassParent {
    protected Object variable;

package pkg.var
interface VariableUser
如果您的特定类与主类具有某种函数关系,则更好。也就是说,类之间的连接更紧密

有几种变体,从内部类到工厂方法注入(私有)字段


没有得到你的解释,没有得到你的解释,你用的是公开的,所有类都可以访问它,但我只想让一个类可以访问它,但你的问题是
让变量只对同一个包中的另一个类可访问
是的,我只提到了一个,所以只需在类中使用一个变量,在其他类中使用另一个变量你正在使用的public,所以所有类都可以访问它,但我只想让一个类可以访问它,但你的问题是
让变量只对同一个包中的另一个类访问
是的,我只提到了一个,所以只需在类中使用一个变量,对其他类使用另一个变量