Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Маленький тест, :) 
:(
    Опции темы
Mayk
Дата 19.1.2006, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: нет
Всего: 134



Цитата(Metal_Heart @ 19.1.2006, 17:27 Найти цитируемый пост)

а это читабельно будет?

Что-то типа / точно будет читабельно - это же html. Подобным макаром хоть Θ можно вставить. А уж '*' или '/' и подавно.


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
Metal_Heart
Дата 19.1.2006, 13:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


а почему бы и нет?
**


Профиль
Группа: Участник
Сообщений: 728
Регистрация: 31.3.2005
Где: Москва

Репутация: 4
Всего: 12



а пример не приведешь?


--------------------
 не стыдно учиться, а стыдно не учиться 
PM ICQ   Вверх
jer1
Дата 19.1.2006, 15:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 24.1.2005
Где: Харьков Украина

Репутация: 4
Всего: 5



//LSD
Цитата

На самом деле я думаю, там надо использовать escape последовательности html &#002F;.

smile

решение:
"& #042;& #047;" (только между & # нет пробела, без пробела тут не даёт написать саму escape последовательность: выдаёт её значение - */ )

да ещё вместо final class надо public class - иначе javadoc не даст сгенерить документацию

Код

//$CdString.java
/**
 * Утилита для навигации по файловой структуре,
 * Заменяет симовол '/' на строку "& #042;& #047;" 
 */
public class $CdString {
    public static void main (String[] args) { /*...*/ }
}


--------------------
:w!q
PM MAIL   Вверх
LSD
Дата 19.1.2006, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Цитата(jer1 @ 19.1.2006, 15:22 Найти цитируемый пост)
да ещё вместо final class надо public class - иначе javadoc не даст сгенерить документацию

Почему? Там же есть ключ -private.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
jer1
Дата 19.1.2006, 17:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 24.1.2005
Где: Харьков Украина

Репутация: 4
Всего: 5



smile точно
--------------------
:w!q
PM MAIL   Вверх
Mayk
Дата 18.3.2006, 12:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: нет
Всего: 134



Давно меня не было, но сегодня я внеазапно наткнулся на решение интересной(с теоретической точки зрения) задачи(возможно подобную здесь уже обсуждали), решил поделитсья.

Как известно ява не поддерживает множественное наследование классов. Но если хочется наследоваться множественно, то ограничения языка - это не та помеха с которой стоит считаться.

Итак.
У нас есть классы Test1, Test2 .
Мы даже допустим что в них нет (используемых нами по крайней мере) методов/переменных с одинаковыми именами(то есть clone,equals,etc мы не используем).

Разработать класс который ведёт себя так, как будто он наследуется от классов Test1 И от Test2
Это значит что мы можем из образца разработанного класса (для определенности назовём его Test12)
a) получить экземпляр класса Test1
б) получить экземпляр класса Test2
в) класс Test12 должен иметь доступ к переменным и методам Test1, Test2 .

Если уж совсем кратко, то такой кот должен компилироваться

(protected int test1var;, protected int test1fn() определены в Test1, protected int test2var(),protected int test2fn() в Test2 ):
Код

class Test12 
...
void run(){ 
      test1var = test2var; 
      test1var = test2fun();
      test2var = test1fun();
}
...

(ещё раз подчеркну protected'ность переменных и методов)

Кот должен не зависеть от кол-ва переменных и/или ф-ций в Test1 и/или Test2.
На всякий случай интерфейсы использовать нельзя.
Определять переменные в Test12 тоже.
Модифицировать Test1,Test2 нельзя.
Не говорю что нельзя определять ф-ции только потому что выше использовал void run()

подсказка. Смотреть в гнездо
.
Добавлено @ 12:29
PS.(Test1 и Test2 - это классы а не интерфейсы)

Это сообщение отредактировал(а) Mayk - 18.3.2006, 12:29


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
LSD
Дата 18.3.2006, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Цитата(Mayk @ 18.3.2006, 12:21 Найти цитируемый пост)
Кот должен не зависеть...

Да коты они такие smile


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
LSD
Дата 18.3.2006, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Код
public class Test1
{
  protected int test1var;

  protected void test1fn(int i)
  {
    test1var = i;
  }
}

Код
public class Test2
{
  protected int test2var;

  protected void test2fn(int i)
  {
    test2var = i;
  }
}

Код
public class Test extends Test1
{
  public Test12 getTest12Instance()
  {
    return new Test12();
  }

  public static void main(String[] args)
  {
    Test12 t = new Test().getTest12Instance();
    t.run();
  }

  public class Test12 extends Test2
  {
    public void run()
    {
      System.out.println("test1var = " + test1var);
      test1fn(33);  
      System.out.println("test1var = " + test1var);

      System.out.println("test2var = " + test2var);
      test2fn(55);
      System.out.println("test2var = " + test2var);
    }
  }
}



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Mayk
Дата 18.3.2006, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: нет
Всего: 134



ага smile


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
LSD
Дата 21.3.2006, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Задачка: в метод передается массив, надо распечатать элементы этого массива, так как это сделает метод String.valueOf(). Массив передается как Object и может быть и массивом примитивных типов, например int[]. Использовать if и instanceof для определения типа массива и приведения его к нужному типу нельзя (это же касается и аналогичных методов из класса java.lang.Class).
Т.е метод выглядит так:
Код
public void print(Object o)
{
  if(o.getClass().isArray())
  {
    ....
  }
}



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
batigoal
Дата 22.3.2006, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



В спецификации Явы наткнулся на пару примеров работы загрузчика классов. В связи с этим вопрос: как вы думаете, что выведут следующие блоки кода?

1:
Код

class Super {
    static { System.out.print("Super "); }
}

class One {
    static { System.out.print("One "); }
}

class Two extends Super {
    static { System.out.print("Two "); }
}

class Test {
    public static void main(String[] args) {
        One o = null;
        Two t = new Two();
        System.out.println((Object)o == (Object)t);
    }
}


2:
Код

class Super { static int taxi = 1729; }

class Sub extends Super {
    static { System.out.print("Sub "); }
}

class Test {
    public static void main(String[] args) {
        System.out.println(Sub.taxi);
    }
}



--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
LSD
Дата 22.3.2006, 17:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Первый результат угадал, а вот второй был неожиданностью. Кстати он прводит к неправильному результату:
Код
class Super
{
  static int taxi = 1729;
}

class Sub extends Super
{
  static
  {
    System.out.println("Sub ");
    taxi = 356;
  }
}

class Test
{    
  public static void main(String[] args) throws Exception
  {
    System.out.println(Sub.taxi);
  }
}



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
batigoal
Дата 22.3.2006, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



Цитата(LSD @ 22.3.2006, 18:47 Найти цитируемый пост)
Кстати он прводит к неправильному результату:

Почему неправильному? Я получил 1729, как положено.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
LSD
Дата 22.3.2006, 18:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Не совсем, ты вызвал эту переменную от класса Sub, а в нем этой переменной присваивается другое значение. Если предварительно загрузить этот класс, то результат будет 356.
Понятно, что это тонкости реализации, но я все же ожидал другого поведения.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
batigoal
Дата 22.3.2006, 22:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



Цитата(LSD @ 22.3.2006, 19:34 Найти цитируемый пост)
Не совсем, ты вызвал эту переменную от класса Sub, а в нем этой переменной присваивается другое значение. Если предварительно загрузить этот класс, то результат будет 356.

Вот-вот. Но как раз загрузки класса тут и не происходит - в ней нет необходимости.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1234 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.