Рейтинг темы:
  • 0 Голос(ов) - 0 в среднем
  • 1
  • 2
  • 3
  • 4
  • 5
Вызов переменной
#1
Как правильно вызвать любую переменну?
Вроде бы методы получается вызывать, а переменные - печаль...
мои попытки вызвать переменную из _power(getPower()) из L2Skill не увенчались успехом, 100% я д*лбаеб, но вопрос мучает, до 5 утра просидел, то одна ошибка, т овторая, скачал книги, сел читать, в 8 утра уже закончил с Ширлтом и продолжил по Эккелю, но скорее всего я что-то упустил!
Подскажите пожалуйста :ej:

Только не нужно кидаться тапками Sad
Ответ
#2
Ну переменная там явно private\protected. // slowpoke :(
Ответ
#3
Тяжел и долог твой путь. Может ты вызываешь пустую переменную. Надо писать какие там ошибки. Ну а вообще не обижайтесь, я вам не рекомендую заниматься программированием хотя бы потому, что вы не знаете английский. Считайте что английский неотъемлимая часть этого ремесла. Это потолок, дальше просто бесполезно займитесь лучше телом.
Ответ
#4
оф
[Изображение: 1852855861.png]
Ответ
#5
GOODPower Написал:
оф
А ваше мнение, уважаемый, хлоро не спрашивал.
Ответ
#6
finfan Написал:Как правильно вызвать любую переменну?
Вроде бы методы получается вызывать, а переменные - печаль...
мои попытки вызвать переменную из _power(getPower()) из L2Skill не увенчались успехом, 100% я д*лбаеб, но вопрос мучает, до 5 утра просидел, то одна ошибка, т овторая, скачал книги, сел читать, в 8 утра уже закончил с Ширлтом и продолжил по Эккелю, но скорее всего я что-то упустил!
Подскажите пожалуйста :ej:

Только не нужно кидаться тапками Sad

1. К переменным обращаются, а не вызывают их;
2. "закончил с Ширлтом и продолжил по Эккелю". Судя по посту, это нужно интерпретировать так: "Я прочитал введение и решил, что этого хватит". Нужно читать дальше, там много интересной инфы :redlol:
3. В ООП существуют области видимости, прочитайте про это, да и в целом про ООП.
4. Самый простой пример:
Код:
class Foo
{
    public int bar = 0;
}
// Юзаем так
Foo obj = new Foo();
System.out.println(obj.bar);
и будет Вам счастье.
// aka Deft
Ответ
#7
Yorie Написал:1. К переменным обращаются, а не вызывают их;
2. "закончил с Ширлтом и продолжил по Эккелю". Судя по посту, это нужно интерпретировать так: "Я прочитал введение и решил, что этого хватит". Нужно читать дальше, там много интересной инфы :redlol:
3. В ООП существуют области видимости, прочитайте про это, да и в целом про ООП.
4. Самый простой пример:
Код:
class Foo
{
    public int bar = 0;
}
// Юзаем так
Foo obj = new Foo();
System.out.println(obj.bar);
и будет Вам счастье.

эм...
Код:
System.out.println(Foo.bar);
Ответ
#8
да все правильно было ) bar же не статическая
Ответ
#9
linliss Написал:эм...
Код:
System.out.println(Foo.bar);

Она не статична, не пойдет.
m0nster.art - clear client patches, linkz to utils & code.
Гадаю по капче.
Ответ
#10
ASevenfold Написал:Она не статична, не пойдет.

Для тех, кто в танке:
Даже статичная переменная может вызвать исключения пакета java.lang даже при обычном одноподтечном программировании. Например, NullPointerException, UnsupportedOperationException или какой-нить еще.

Код:
class HlorkaGood {
public static Object HLORA_IS_MY_FRIEND;
...
}

// Обращаемся к переменной
...
Object test = HlorkaGood.HLORA_IS_MY_FRIEND;
...
// Будет исключение NullPointerException

Поэтому что не инициализировали. Если переменная не константа, то должна иметь дефолтовое значени или полуконстанта (файл конфигурации), то используйте блоки static - это как аналог директивам Си.

Код:
class HlorkaTheBest{
public static Object HLORA_IS_MY_FRIEND;
...
static {
   HLORA_IS_MY_FRIEND = new String();
}
}

Для полуконстант, рекомендуется в блоке статик выполнять загрузку файла конфигурации. Если файл конфигурации имеет опии разработчика, то его как правила пихают в JAR-библиотеку, в последнем случае используют доступ к ресурсу по URL через статичный метод ClassLoader'а:

Код:
InputStream s = ClassLoader.getResourceAsStream("org/mylib/test/hlorka.properties");

Тут есть 1 косяк, многие использую одноименный метод из собственного класса, т.е. HlorkaTheBest.getResourceAsStream(?), но в этом случае надо будет ставить еще 1 слеш в самом начале, иначе будет ругаться. что ресурс ненайден.

Также есть 1 удобный способ программирования, когда у вас конфиги имеют 1 тип данных, ну например все экземпляры типа String или int, то удобно запонять их из файла конфигураций через пакет Reflect, но эт уже совсем проффессионалы так делают. Это имеет смысл для каких-то текстовых сообщейни. А вообще не забывайте что в яве реализована возможность интернационализации через java.util.MessageBuilder, весьма удобно при написании мультиязычного приложения. Хотя это скорее локализация, чем интернационализация, т.к. последняя подразумевает не только смену языка.
Ответ


Перейти к форуму:


Пользователи, просматривающие эту тему: 7 Гость(ей)