Как использовать только определенные значения объекта класса в Java? - PullRequest
0 голосов
/ 10 февраля 2019

Я все еще изучаю Java и нахожу это довольно трудным, и я довольно долго застрял с этим.

Скажем, у вас есть класс, у которого есть конструктор, похожий на этот:

public Fruit(String Name, String Type, double Price, int Stock) {
    this.Name = Name;
    this.Type = Type;
    this.Price = Price;
    this.Stock = Stock;
}

И скажем, у нас есть этот объект, например:

Fruit fruit1 = new Fruit("Apple", "Apple", "0.45", 23);

И с этой информацией я хочу написать функцию, в которую пользователь мог бы войти, а затем заказать еду.Как я могу использовать информацию из этого объекта класса для использования в функции?

Ответы [ 2 ]

0 голосов
/ 10 февраля 2019

Чтобы получить доступ к непубличным переменным-членам одного из ваших объектов, используйте символ . следующим образом:

Fruit apple = new Fruit("Apple", "Apple", "0.45", 23);
System.out.println(apple.price); //prints the price of the apple

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

private int price;  //a private member variable

//...

public int getPrice() {return this.price} //example of a getter method
public void setPrice(int nPrice) {this.price = nPrice;} //example of a setter method

В приведенном выше примере вы не сможете получить доступ к переменной price непосредственно вне ее класса.Вместо этого вам придется вызывать метод getPrice() из экземпляра Fruit.

Примечание: рекомендуется начинать имя переменной со строчной буквы.

0 голосов
/ 10 февраля 2019

Просто позже прочитав эти поля, может быть напрямую, или используя методы getter, которые вы добавили, например:

if (someFruit.getName().equals(theNameOfSomeFoodOrderedByCustomer)) {
  System.out.println("you ordered " + someFruit.getName() + " that will cost you " + someFruit.getPrice());  

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

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