2014-09-10 3 views
-1

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

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

Следующие методы обеспечивают такое поведение: turnOn и turnOff, которые не принимают никаких аргументов и не возвращают никакого значения, и setTemp, который принимает int аргумент и не возвращает никакого значения.

officeAC = new AirConditioner() ; 

officeAC.turnOn() ; 

officeAC.setTemp(69) ; 

Что означает следующее предложение?

Следующие способы обеспечивают такое поведение: turnOn и turnOff, которые не принимают аргументы и не возвращают значения.

+0

Вот почему у нас есть javadoc ... – StackFlowed

+3

Что именно вы не понимаете? Эти методы не имеют параметров (аргументов), и они не возвращают значения (void). Они вызывают поведение, которое не нуждается в информации извне объекта и не приводит к какой-либо расчетной величине, кроме обновления состояния объекта. – David

+0

С Java, вы всегда путаете язык. – bzlm

ответ

1

turnOn() и turnOff() вероятно, изменить значение поля, которое в зависимости от его значения, то AirConditioner() объекта, называя их либо включен или выключен, и, вероятно, реализуется следующим образом:

public class AirConditioner{ 

    private boolean isOn; 
    private int temp; 

    public AirConditioner(){ 
     this.isOn = false; 
     temp = 0; 
    } 

    public void turnOn(){ 
     this.isOn = true; 
    } 

    public void turnOff(){ 
     this.isOn = false; 
    } 

} 

setTemp() задает поле удерживая температуру, до значения в параметре и, вероятно, реализуется следующим образом:

public void setTem(int temp){ 
    this.temp = temp; 
} 

в вашем примере вы,

1.officeAC = new AirConditioner() ;-> создать новый Object типа AirConditioner, вызвав конструктор по умолчанию, который, вероятно, выглядит примерно конструктор в коде выше.

2.officeAC.turnOn() ;-> изменение поля isOn вызывающего Object officeAc к true

3.officeAC.setTemp(69) ;-> В поле temp вызывающего Object officeAc к 69

0

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

  1. Метод имеет доступ к инкапсулированному состоянию объекта. Если для этого требуется больше информации, чем содержится в этом состоянии, эта информация требуется методом в виде параметров (или аргументов).
  2. Способ может изменять состояние инкапсулированного объекта.
  3. Метод может вычислять значение, которое не используется в инкапсулированном состоянии объекта. Если потребляющий код нуждается в этом значении, метод возвращает это значение.

    Следующие методы обеспечивают такое поведение: TURNON и выключают, которые не принимают никаких аргументов и возвращать никакого значения

Предположительно turnOn и turnOff методы:

  • не требуют внешнего информации и, следовательно, не нуждаются в параметрах.
  • Не вызывать расчетное значение и, следовательно, не возвращать значение.
  • Изменение внутреннего состояния объекта (не обязательно, но, конечно, подразумевается их именами).
0

Предложение:

Следующие методы обеспечивают такое поведение: TURNON и выключает, который не принимает никаких аргументов и не возвращает никакого значения

означает, что объект officeAC который является из класс AirConditioner может сделать для вас.

Методы turnOn и turnOff не имеют аргументов, они заканчиваются (), который не принимает входных данных, но все же что-то делает, когда вы называете это (поведение). Метод setTemp(69) также определяет некоторое поведение, а также зависит от аргумента, который в этом случае равен 69.

Вы можете взять, например, класс собаки:

class dog{ 

    void roll(int n){ 
     for(int i=0;i<n;i++){ 
     System.out.println("rolling ;P"); 
     } 
    } 

    String bark(){ 
     return "woof"; 
    } 

} 

Собака имеет два поведения или методы roll и bark. Метод roll заставит собаку наматывать n раз, а bark вернет строку "woof".