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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос про создание объектов 
:(
    Опции темы
sidiakin
Дата 14.7.2010, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 90
Регистрация: 16.10.2005

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



В книгах по созд. оъектов пишут так:

Код

Class myObj; // Созд. перемен.
myObj = new Class; // Созд. экземпляр


А вот пример апплета:

Код

Image myImage;
URL ImageURL;

ImageURL = new URL();

myImage = getImage();


Объясните пож., почему myImage не создается с опер. "new" ?

PM MAIL   Вверх
Skipy
Дата 15.7.2010, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

Репутация: 6
Всего: 16



Потому что Вы его так просто не получите. Image абстрактный класс, создается где-то в недрах через невидимых Вам наследников. 

Создать напрямую Вы можете BufferedImage, но там надо точно знать, что именно Вы создаете - вариантов параметров много.


--------------------
С уважением,
Евгений aka Skipy
www.skipy.ru
PM MAIL WWW ICQ   Вверх
ivanovpv
Дата 15.7.2010, 12:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


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

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



Цитата(sidiakin @  14.7.2010,  23:50 Найти цитируемый пост)
Объясните пож., почему myImage не создается с опер. "new" ?


А вы посмотрите на javadoc класса и все вопросы отпадут сами собой.


--------------------
Aut viam inveniam aut faciam
PM MAIL Skype   Вверх
sidiakin
Дата 15.7.2010, 21:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 90
Регистрация: 16.10.2005

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



Вряд ли вопросы отпадут. 

А можно по подробней про справку? Научите пользоваться. В справке видно, что это класс Image унаследован от Object и имеет конструктор Image(). Что мне там должно стать понятно?

С объектами никак не разберусь

Вот пример:

MyThread thread1 = new MyThread(5);

new MyThread(10);

Первый вариант записи мне понятен, а второй нет. Оператор new созд. экз. класса и возвращает ссылку на него. Что он созд. за экземпляр и куда он передает ссылку во втором примере мне не понятно. Кстати мне не понятна такая запись getMethod(new Object) может тут ссылка и передается напрямую методу, но опять получается, что создается безымянный объект???????

Это сообщение отредактировал(а) sidiakin - 15.7.2010, 21:43
PM MAIL   Вверх
ivanovpv
Дата 16.7.2010, 07:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


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

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



Цитата(sidiakin @  15.7.2010,  22:36 Найти цитируемый пост)
А можно по подробней про справку? Научите пользоваться. В справке видно, что это класс Image унаследован от Object и имеет конструктор Image(). Что мне там должно стать понятно?

Смотрите на модификатор класса который указан как abstract - то есть он не может создаваться напрямую - создается его наследник BufferedImage() для него и писан конструктоh Image()
Цитата(sidiakin @  15.7.2010,  22:36 Найти цитируемый пост)
new MyThread(10);

Это всего лишь означает - что ссылка на объект никого не интересует. Объект создается и дальше живет уже сам. В случае с MyThread это видимо имеется ввиду, что в конструкторе MyThread запускается Thread - соответственно дальнейшая жизнь течет в методе Thread.run() 

Цитата(sidiakin @  15.7.2010,  22:36 Найти цитируемый пост)
Кстати мне не понятна такая запись getMethod(new Object)

Тут песня совсем простая. getMethod() очевидно берет в качестве параметра Object. Есть случаи когда хранить этот объект в локальной переменной совершенно лишено смысла - ну и зачем, создали, передали, а там в нутрях getMethod() сам уже разберется.

Вообще начните писать, хватит читать доки - видно, что уже сильно увлеклись чтением книжек. Как только начнете писать что-нибудь реальное все сразу станет на свои места

Тот же вопрос с созданием объекта класса Image в реальной жизни решается быстро - напустите компилятор на выражение:
Код

Image img=new Image();

и будет вам щастье  smile 

Это сообщение отредактировал(а) ivanovpv - 16.7.2010, 07:28


--------------------
Aut viam inveniam aut faciam
PM MAIL Skype   Вверх
sidiakin
Дата 16.7.2010, 19:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 90
Регистрация: 16.10.2005

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



Чтобы начать писать, нужно понимать. Конечно я пробую писать но...

Вот хотел сделать что-то вроде замера времени выполнения программы:


Код

import java.util.*;
public class Test{
    public static void main(String args[]){
        long sec1, sec2, sec3;
        Date d = new Date();
        sec1 = d.getSeconds();
        for(int i = 0; i < 1000000000; i++){}
        sec2 = d.getSeconds();
        sec3 = sec2 - sec1;
        System.out.println(sec3);
    }
}


Прога всегда выдает "0". И компилятор пишет Java uses or overrides a deprecated API. Что это значит? Объект Date и getSeconds - это же родные для Java Так почему же компил. на них возмущается?
PM MAIL   Вверх
soulcub
Дата 16.7.2010, 19:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 2.2.2010
Где: Винница, Украина

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



Цитата(sidiakin @  16.7.2010,  19:14 Найти цитируемый пост)
И компилятор пишет Java uses or overrides a deprecated API. Что это значит? Объект Date и getSeconds - это же родные для Java Так почему же компил. на них возмущается? 

Я так думаю, что это он не возмущается, а всего лишь говорит, что этот метод устарел и вместо него лучше использовать что-то другое, но это ничего страшного.
Код

import java.util.*;
public class Test{
    public static void main(String args[]){
        long sec1, sec2, sec3;
        Date d = new Date();
        sec1 = d.getSeconds();
        for(long i = 0; i < 1000000000; i++) { }
        d = new Date();
        sec2 = d.getSeconds();
        sec3 = sec2 - sec1;
        System.out.println(sec3);
    }
}

Так - всё начинает работать. По-моему этот класс в себе хранит время своего создания.. Если я не ошибаюсь конечно) Но могу и ошибаться. 
Давно не работал с ним =)

Если нужно замерить время работы программы, то я всегда пользуюсь 
Код

System.currentTimeMillis();


Это сообщение отредактировал(а) soulcub - 16.7.2010, 20:11
--------------------
Так давай же, поспеши!Отыскать СВОЙ куб души!
PM MAIL ICQ   Вверх
sidiakin
Дата 16.7.2010, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 90
Регистрация: 16.10.2005

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



nanoTime в моей 1.4.2 нет. Я нашел currentTimeMillis. А почему первый вариант не работал я так и не понял. Вы про какой класс говорили? В sec1 и в sec2 записывались нормальные значения, а операция sec2-sec1 не работает??? И почему проблема решается созданием второго экземпл. я не понял
PM MAIL   Вверх
soulcub
Дата 16.7.2010, 21:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 130
Регистрация: 2.2.2010
Где: Винница, Украина

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



Не второго экземпляра, а нового(обновлённого) экземпляра первого класса.
То-есть
Код

        Date d = new Date();
        sec1 = d.getSeconds();

этот getSeconds вернёт нам значение секунд в момент создания класса Date d = new Date(); И все последующие getSeconds вернут нам 
то же значение секунд - время создание объекта d. Для того, чтоб получить новое значение секунд - нужно обновить этот класс.
Код

        d = new Date();

мы просто поверх создаём по-новому объект d, затирая старые значения и присваивая уже новые значения времени. Таким образом мы
можем получить время роботы программы.

Это сообщение отредактировал(а) soulcub - 16.7.2010, 21:27
--------------------
Так давай же, поспеши!Отыскать СВОЙ куб души!
PM MAIL ICQ   Вверх
sidiakin
Дата 18.7.2010, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 90
Регистрация: 16.10.2005

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



Подскажите пож. запись вида: "int i = Integer.valueOf(b).intValue();" что делает? Integer - это класс и вызывается метод valueOf() для преобразования строки в число int. Я правильно понял? А intValue зачем?
Спасибо 
PM MAIL   Вверх
ivanovpv
Дата 19.7.2010, 07:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


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

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



Цитата(sidiakin @  18.7.2010,  22:53 Найти цитируемый пост)
Подскажите пож. запись вида: "int i = Integer.valueOf(b).intValue();" что делает? Integer - это класс и вызывается метод valueOf() для преобразования строки в число int. Я правильно понял? А intValue зачем?
Спасибо  


Надо всегда смотреть доки:
1) Integer.valueOf(b) - преобразует строку в объект Integer
2) Integer.intValue() - возвращает целочисленное значение объекта Integer

В целом такой кусок кода это попытка преобразовать String в int


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

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

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


 




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


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

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