Есть ли какая-либо функция для вызова строки из одного метода в другой переопределенный метод в java? - PullRequest
0 голосов
/ 10 апреля 2020

это мой код, я хочу вызвать job_title и company_car переменные в операторе печати другого метода. но это показывает ошибку, я не могу передать параметр в методе displayData();, потому что его метод overriden. есть ли способ вызвать результат insertData(): метод в displayData(): метод?

@Override
public void insertData() {
    Scanner input = new Scanner(System.in);
    System.out.println("Enter employee's job title: ");
    String  job_title = input.next();
    System.out.println("Enter employee's company car: ");
    String company_Car = input.next();
}

@Override
public void displayData() {
    System.out.println("Employee's job Title: "+ job_title);
    System.out.println("Enter Company's car: "+ company_Car);
}

Ответы [ 2 ]

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

У вас есть две опции:

A. Объявите job_title и company_Car вне insertData() в качестве переменных экземпляра, чтобы их область действия не ограничивалась insertData().

import java.util.Scanner;

class ExampleParent {
    public void insertData() {
    }

    public void displayData() {
    }
}

class ExampleChild extends ExampleParent {
    String job_title, company_Car;

    @Override
    public void insertData() {
        Scanner input = new Scanner(System.in);
        System.out.print("Enter employee's job title: ");
        job_title = input.next();
        System.out.print("Enter employee's company car: ");
        company_Car = input.next();
    }

    @Override
    public void displayData() {
        System.out.println("Employee's job Title: " + job_title);
        System.out.println("Enter Company's car: " + company_Car);
    }
}

public class Main {
    public static void main(String[] args) {
        ExampleChild child = new ExampleChild();
        child.insertData();
        child.displayData();
    }
}

Образец:

Enter employee's job title: Manager
Enter employee's company car: Toyota
Employee's job Title: Manager
Enter Company's car: Toyota

B. Заменить public void displayData() на public void displayData(String job_title, String company_Car) и поместить displayData(job_title,company_Car) внутри insertData() чтобы позвонить.

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

Поскольку вы определяете локальную переменную (job_title, company_Car) внутри метода, вы никогда не сможете получить доступ к этой переменной за пределами этого метода. Область действия локальных переменных - только метод.

Вы можете определить эти переменные как переменные-члены.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...