说实话,我真的在努力学习Java,我试图从另一个类中访问一个数组。我相信我已经在这段代码中创建了数组
public class aff_array {
String name;
public static void main (String[] args) {
int z = 3; //total no of affirmations
int x = 1;
aff_array[] afz = new aff_array[z]; //dim
while ( x < z ) {
afz[x] = new aff_array(); // create objects for array
x = x + 1;
}
afz[1].name = "i am the best";
afz[2].name = "you are the rest";
}
但我真的很难弄清楚我如何从另一个类访问afz [1] .name。这可能是基本但我真的很挣扎..
答案 0 :(得分:2)
只要将其创建为自动变量(换句话说,本地变量),就无法从其他类访问它。在上面的代码中,你的“afz”结构只能在main方法中可见(并且只能在它的instatiation之后才能使用)。要使其对其他类可见,您可以将其定义为实例变量。即:
public class aff_array {
String name;
aff_array[] afz;
public static void main (String[] args) {
int z = 3; //total no of affirmations
int x = 1;
afz = new aff_array[z]; //dim
首先,你应该将它定义为私有,并创建一个getter方法(这是一种常见的做法,尊重封装),然后只需调用此方法就可以在另一个类上获取它。
答案 1 :(得分:2)
您可以访问aff_array类的公共实例变量“name”
//this will print value of instance variable name
System.out.println(afz[1].name);
//If you want to modify the value of variable
afz[1].name = "modified name";
但不建议这样做。使用私有访问修饰符保护您的实例变量,并使用公共getter,setter方法访问它。
实施例: 公共课aff_array { 私有字符串名称; public String getName() { return this.name; }
public void setName(String new_name)
{
//You can add some validations here
this.name = new_name;
}
public static void main (String[] args) {
int z = 3; //total no of affirmations
int x = 1;
aff_array[] afz = new aff_array[z]; //dim
while ( x < z ) {
afz[x] = new aff_array(); // create objects for array
x = x + 1;
}
//To print name
System.out.println(afz[1].getName());
//to set new value to name
afz[1].setName("i am the best");
afz[2].setName("you are the rest");
}
答案 2 :(得分:1)
所以我试图添加getter,它看起来像这样 公共课aff_array { 字符串名称; aff_array [] afz;
public aff_array[] getAfz() {
return afz;
}
public String getName() {
return name;
}
public static void main (String[] args) {
int z = 3; //total no of affirmations
int x = 1;
aff_array[] afz = new aff_array[z]; //dim
while ( x < z ) {
afz[x] = new aff_array(); // create objects for array
x = x + 1;
}
afz[1].name = "i am the best";
afz[2].name = "you are the rest";
}
这是另一个类,我希望数组值用aff_array [] getAfz()替换aff_array.class.getName(),但我不知道如何做或参考afz(1)例如(getName是工作)
public void onReceive(Context context, Intent intent)
{
setNotification(context, aff_array.class.getName());
WakeLocker.acquire(context);
Toast.makeText(context,"One shot alarm received. No more toasts will be shown.", Toast.LENGTH_SHORT).show();
WakeLocker.release();
}