Как получить доступ к переменной метода другого класса? - PullRequest
0 голосов
/ 03 апреля 2020

На самом деле я работаю над проектом, в котором мне нужно получить доступ к переменной метода другого класса, и сталкиваюсь с подобной ситуацией в моем проекте, я не могу вернуть это значение. Пожалуйста, кто-нибудь, решите эту проблему.

package com.company;

class aaa {
    int num1;
    public void val() { // data type can't be changed
        num1 = 100;
    }
}

class  bbb {
    public void Values() {
        int num = 100;
    }
}

public class Main extends bbb {
    public static void main(String[] args) {
        // write your code here
        aaa obj1 = new aaa();
        bbb abj2 = new bbb();
        System.out.println(obj1.num1); // wants to print value 100 here but 
                                      //without returning value from the function

    }
}

Ответы [ 2 ]

0 голосов
/ 03 апреля 2020

Как только эта переменная попадает в область действия метода, это невозможно. Единственный способ сделать то, что вам нужно, это создать переменную в области видимости класса. Я бы не стал делать что-то подобное, но вместо этого создал бы переменную private и методы get и set.

package com.company;
class  aaa{

    public int num1;

    public void val(){
        num1 = 100;
    }
}
class  bbb{
    public void Values(){
        int num = 100;
    }
}
public class Main extends bbb{

    public static void main(String[] args) {
    // write your code here
        aaa obj1 = new aaa();
        bbb abj2 = new bbb();
        System.out.println(obj1.num1); // now the variable is in public access

    }
}
0 голосов
/ 03 апреля 2020

Переменная local num1 только локальная. Он был создан в методе, поэтому область действия метода. Вам нужно создать член класса с именем num1. Если num1 - publi c, вы можете ссылаться на него так, как хотите Если член частный, вам нужен получатель. Если вы хотите вернуть значение, вам нужно изменить signature с void на int.

Я не потворствую ни одному из этих имен, просто сохраняя его простым.

public class AAA {
    private int num1;

    public int getNum1() {
        return num1;
    }
}
obj1.getNum1();
...