Несмотря на учебные пособия по Java, поиск в Википедии, троллирование с использованием стека и часы чтения образцов кода, конструкторы все еще путают меня дерьмо. У меня есть три связанных вопроса, на которые я пытался ответить, чтобы помочь мне понять конструкторы немного лучше.Set, Get and Constructors в Java
Во-первых, у меня создалось впечатление, что конструкторы нужно называть такими же, как и их классы. Рассмотрите:
public class Money {
public Money(long l) {
this.value = l;
}
public Money(String s) {
this.value = toLong(s);
}
public long getLong() {
return this.value;
}
public String getString() {
return toString(this.value);
}
}
Я вижу это как четыре конструктора ... правильно? Итак, появляется, что конструкторы не названы так же, как класс, который содержит их допустимыми. Может ли кто-нибудь подтвердить это?
Во-вторых, у меня, похоже, есть блок против понимания множества и получения методов. Рассмотрим:
public class GetSetSample {
public int getFoo() {
return int Foo;
}
public void setFoo(int fooValue) {
int Foo = fooValue;
}
}
Почему я не могу просто сделать это:
public class getFoo(int fooValue){
foo=fooValue;
}
и использовать foo = getFoo(12)
из другого класса/метода?
Третий вопрос - немного более эзотерический, но поможет мне понять большую картину ..., что является моим стилем обучения, и способствует моей способности отслеживать поток программы при отладке. Методы get
и set
предлагают отношение «к» и «от» ко мне. например, передавая значение «в» конструктору, получая результат «из» метода get. Мне кажется, что «to» и «from» будут меняться в зависимости от вашей перспективы. Я думаю, что любой setMethod
задает параметры для объекта, даже если переменная поступает из другого класса или метода, а GetMethod
- get
, обрабатывая полученный объект (скажем, this.foo
) с соответствующим параметром set
. Независимо от того, где используется get
или set
, в основном методе или отдельном классе с одним конструктором, «набор» всегда связан с отправкой параметра, и get
всегда связан с получением объекта с этим параметром. Это хорошее понимание? или мне не хватает жизненно важной части?
Ну ... С чего начать? ;) – aviad
Жаль, что я не знал ... :) – dwwilson66
На каком языке, если они есть? – PastryExplosion