Может ли кто-нибудь ELI5 как разрешить методу принимать в качестве параметра как строку, так и объект? - PullRequest
0 голосов
/ 30 апреля 2020

Следующее псевдо не то, над чем я сейчас работаю, я просто хочу узнать разные способы подхода.

  1. Если я создаю два класса, которые работают друг с другом, чтобы позволить пользователю узнать информацию.

Main: 

Sport myfavorite = new Sport();
myfavorite.setSport("Hockey"); // works fine for me


Athlete lebron = new Athlete();
lebron.setName("Lebron");
lebron.setSport("Basketball"); // my trouble is here

/* Answer I'm expecting here is if I S.o.p(lebron), I would get his name and sport. */

1st Class (Sport)

setSport(String s); // method works fine if you just call method straight from Sport class

2nd Class (Athlete)

setName(String a);
setSport(Sport newSport); // way in which to get this method to function correctly? method only takes in 
                          // object, so when I feed it a String, it's giving me a conversion error.

Моя проблема заключается в понимании концепции того, как метод, который принимает объект, должен также принимать строку.

Большая проблема здесь: мне нужно знать, не используя классы вне двух классов, которые я использовал бы в каждом классе, чтобы предоставить информацию о пользователе, предназначенную для вывода.

Я ломал голову над этой идеей слишком долго, чем, вероятно, следовало бы, поэтому примеры различных способов сделать эту работу будут высоко оценены.

Спасибо за помощь заранее, и я надеюсь услышать от кого-нибудь в ближайшее время.

1 Ответ

1 голос
/ 30 апреля 2020

setSport в классе Sport принимает аргумент как строку, а в классе Athlete - ссылку на класс Sport. Вы просто сбиты с толку только из-за того же имени метода.

Вы не написали код, но ваш код может быть таким:

class Sport {

    private String sport;// your confusion is here due to same name, type of this "String"

    public Sport(){

    }

    public String getSport() {
        return sport;
    }

    public void setSport(String sport) { // it will take String ref
        this.sport = sport;
    }
}


class Athlete{
    private String name;
    private Sport sport; // your confusion is here due to same name, type of this "Sport"

    public Athlete(){

    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Sport getSport() {
        return sport;
    }
    public void setSport(Sport sport) { // it will take Sport ref
        this.sport = sport;
    }


}

Для дальнейшего разъяснения, пожалуйста, прочитайте этот https: // www.edureka.co/blog/instance-variable-in-java/

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