注意:我看过其他帖子,但我还是很丢失。
这是我在一个类中拥有的私有变量的代码:
private int readFile( String fileName)
{
try
{
File f = new File( fileName );
Scanner input = new Scanner( f );
while( input.hasNextLine( ) )
{
String s = input.nextLine( );
String[ ] sArr = s.split( " " );
String animal = sArr[ 0 ];
double cost = Double.parseDouble(sArr [ 1 ] );
boolean penNeeded = Boolean.parseBoolean( sArr[ 2 ] );
boolean available = Boolean.parseBoolean( sArr[ 3 ] );
Pet p = new Pet( animal, cost, penNeeded, available );
if (count < animalList.length )
{
animalList[count] = p;
count++;
}
}
input.close( );
}
catch( Exception e )
{
System.out.println("Error reading the file:");
System.out.println( e );
e.printStackTrace( );
}
return count;
}
我需要在位于另一个类中的这段代码中访问它:
static public void processTransaction( String fileName, PettingZoo pz )
{
try
{
// variable should be accessed here
}
catch( Exception e )
{
System.out.println("Error reading the file:");
System.out.println( e );
e.printStackTrace( );
}
}
我该怎么做?我认为我需要使用某种修饰符,但我不知道如何实现它或如何实现它。
答案 0 :(得分:2)
如果要访问私有变量,可以使用getter和setter方法。
示例:
private int variable = 5; //<--- your private variable of class A
// a public method (into the same class A)
// that allows the sharing of your private variable
public int getVariable() {
return variable;
}
现在你可以从另一个类(B)调用方法getVariable()
并获取私有变量(类A)的值。
答案 1 :(得分:2)
您无法直接从其他类访问私有变量。这就是宣称私有化的重点。您需要做的是使用课程setter
中的getter
和A
方法,然后从课程get
调用B
方法。
答案 2 :(得分:0)
根据your comment,您可以通过更改方法的修改来访问private int readFile(String fileName)
方法。将方法的修饰符更改为public
或protected
。此外,由于访问方法为static
,因此您需要将方法更改为static
。
因此将其更改为
public static int readFile( String fileName)
{
}
在processTransaction
方法中调用它,
ClassName.readFile("file_name.extn");