Создайте класс Puppy с частным именем свойства, а также getter и setter для этого свойства с именами getName и setName. Конструктор должен - PullRequest
0 голосов
/ 29 апреля 2018

JavaScript - не моя вещь, для тех из вас, кто отвечает на эти вопросы, вы - абсолютные спасатели жизни.

Создайте класс Puppy с именем частного свойства, а также для метода получения и установки для этого свойства с именами getName и setName. Конструктор должен принять параметр для инициализации частного свойства.

Мой код:

public class Puppy {
private String name;

public Puppy(String name) {
  setName(name);
}

public String getName() {
  return Name;
}

public String setName(String name) {
  this.name=name;
}

Скриншот: здесь

1 Ответ

0 голосов
/ 29 апреля 2018

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

    class Puppy {
        constructor(n) {
            // private property
            var name = n

            // methods that use private property
            this.getName = () => {return name}
            this.setName = (n) => {name = n}

            // public property
            this.nickname = n
        }

        // methods that use public property
        setNickname(n) { this.nickname = n }
        getNickname() { return this.nickname }
    }

    p = new Puppy("fido")

    console.log("p.name",p.name) // undefined, not accessible
    console.log("p.getName()",p.getName()) // fido
    console.log("p.getNickname()",p.getNickname()) // fido

    console.log("---")

    p.name = "barker" // defines a new property on this instance of Puppy
    console.log("p.name",p.name) // barker
    console.log("p.getName() ",p.getName()) // doesn't change private name fido

    console.log("---")

    p.setName("fuzz") // change private name
    console.log("p.getName()",p.getName()) // fuzz
    console.log("p.getNickname()",p.getNickname()) // fido

    console.log("---")

    p.nickname = "chewy" // set public property directly
    console.log("p.getNickname()",p.getNickname()) // chewy
...