Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Как влияет грамотное написание import / 12 сообщений из 12, страница 1 из 1
06.09.2006, 11:29:53
    #33967376
new_jabber
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как влияет грамотное написание import
Доброе время суток! У меня такой вопрос, вот пишу класс (не важно какой) и естественно есть там import:
Код: plaintext
1.
2.
3.
 import  javax.servlet.http.HttpServlet;
 import  javax.servlet.http.HttpServletResponse;
 import  javax.servlet.http.HttpServletRequest;

но можно написать и так:
Код: plaintext
1.
 import  javax.servlet.http.*;

Есть какая то разница, мне кажеться что во втором случае повышается ресурсоемкость приложения, прав ли я?
...
Рейтинг: 0 / 0
06.09.2006, 11:45:04
    #33967435
peter6636
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как влияет грамотное написание import
new_jabberДоброе время суток! У меня такой вопрос, вот пишу класс (не важно какой) и естественно есть там import:
Код: plaintext
1.
2.
3.
 import  javax.servlet.http.HttpServlet;
 import  javax.servlet.http.HttpServletResponse;
 import  javax.servlet.http.HttpServletRequest;

но можно написать и так:
Код: plaintext
1.
 import  javax.servlet.http.*;

Есть какая то разница, мне кажеться что во втором случае повышается ресурсоемкость приложения, прав ли я?
частично прав
...
Рейтинг: 0 / 0
06.09.2006, 12:04:53
    #33967505
unicornmirage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как влияет грамотное написание import
peter6636 new_jabberДоброе время суток! У меня такой вопрос, вот пишу класс (не важно какой) и естественно есть там import:
Код: plaintext
1.
2.
3.
 import  javax.servlet.http.HttpServlet;
 import  javax.servlet.http.HttpServletResponse;
 import  javax.servlet.http.HttpServletRequest;

но можно написать и так:
Код: plaintext
1.
 import  javax.servlet.http.*;

Есть какая то разница, мне кажеться что во втором случае повышается ресурсоемкость приложения, прав ли я?
частично прав

ресурсоемкость не повышается. при компиляции все используемые классы будут подставлены с полным их именем, включая пакет в котором они находятся.
...
Рейтинг: 0 / 0
06.09.2006, 12:08:07
    #33967519
Leonidv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как влияет грамотное написание import
Еще таким образом избегают возможные конфликты с одноименными классами в разных пакетах. Вот пример на пвсевдо-Java:
Код: plaintext
1.
2.
3.
 package  a;
 public   class  X {/* */}; 
 public   class  Y {/* */};

Код: plaintext
1.
2.
3.
 package  b;
 public   class  X {/* */}; 
 public   class  Z {/* */};

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 package  c;
 import  a.*;
 import  b.*;  

 class  C {
  C {
   X x =  new  X(); // Неоднозначность. 
   Z z =  new  Z();
  }
}

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 package  c;
 import  a.X;
 import  b.Z;  

 class  C {
  C {
   x =  new  X(); // Все в порядке.
   Z z =  new  Z();
  }
}

Ситуация больше теоретическая, но все же.
...
Рейтинг: 0 / 0
06.09.2006, 12:10:51
    #33967535
он же
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как влияет грамотное написание import
Почитаем что пишет Хорстманн и Корнелл.

Core Java™ 2 Volume I - Fundamentals, Seventh EditionThe java.util.* syntax is less tedious. It has no negative effect on code size. However, if you import classes explicitly, the reader of your code knows exactly which classes you use.

Core Java™ 2 Volume I - Fundamentals, Seventh EditionMost of the time, you just import the packages that you need, without worrying too much about them. The only time that you need to pay attention to packages is when you have a name conflict. For example, both the java.util and java.sql packages have a Date class. Suppose you write a program that imports both packages.

Core Java™ 2 Volume I - Fundamentals, Seventh EditionC++ programmers usually confuse import with #include. The two have nothing in common. In C++, you must use #include to include the declarations of external features because the C++ compiler does not look inside any files except the one that it is compiling and explicitly included header files. The Java compiler will happily look inside other files provided you tell it where to look.

In Java, you can entirely avoid the import mechanism by explicitly naming all classes, such as java.util.Date. In C++, you cannot avoid the #include directives.

The only benefit of the import statement is convenience. You can refer to a class by a name shorter than the full package name. For example, after an import java.util.* (or import java.util.Date) statement, you can refer to the java.util.Date class simply as Date.

The analogous construction to the package mechanism in C++ is the namespace feature. Think of the package and import statements in Java as the analogs of the namespace and using directives in C++.
...
Рейтинг: 0 / 0
06.09.2006, 12:13:56
    #33967546
он же
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как влияет грамотное написание import
От себя хочу добавить, что пишу .* или полное наименование классов по обстоятельствам (если больше одного класса из одного пакета - проще добавить .*), если только не использую sql-запросы в классе.
Тогда всегда добавляю import java.util.Date :)
...
Рейтинг: 0 / 0
06.09.2006, 12:21:43
    #33967590
Timm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как влияет грамотное написание import
LeonidvЕще таким образом избегают возможные конфликты с одноименными классами в разных пакетах. Вот пример на пвсевдо-Java:
Код: plaintext
1.
2.
3.
 package  a;
 public   class  X {/* */}; 
 public   class  Y {/* */};

Код: plaintext
1.
2.
3.
 package  b;
 public   class  X {/* */}; 
 public   class  Z {/* */};

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 package  c;
 import  a.*;
 import  b.*;  

 class  C {
  C {
   X x =  new  X(); // Неоднозначность. 
   Z z =  new  Z();
  }
}

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 package  c;
 import  a.X;
 import  b.Z;  

 class  C {
  C {
   x =  new  X(); // Все в порядке.
   Z z =  new  Z();
  }
}

Ситуация больше теоретическая, но все же.
Эту "теоретическую" ситуацию разрулит компилятор и сругнется.
Штоп не заморачиваться надо юзать ИДЕ(Ю).
...
Рейтинг: 0 / 0
06.09.2006, 12:33:38
    #33967647
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как влияет грамотное написание import
При совпадениях имен классов в разных пакетах можно также применять полное написание имени класса:

Код: plaintext
1.
a.X x =  new  a.X();
...
Рейтинг: 0 / 0
06.09.2006, 12:57:53
    #33967757
gafudo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как влияет грамотное написание import
С совпадением имен классов в разных package ситуация жизненная, а не теоретическая.

На производительность никак не влияет написание import, говорят в ранних версиях типа 1.0 еще была какая-то разница.

Имхо, хороший стиль - писать полностью имя класса без *. Если полазить по исходникам opensource, в основном везде так.

Для себя понял, что написание полного имени очень помогает при рефакторинге. Сразу видно от чего класс зависит. Я часто занимаюсь анализом связей между моими классами и пакетами.

Конечно, надо использовать IDE. Сейчас везде можно задать стиль import и среда все сделает сама. И предупредит, если что.
...
Рейтинг: 0 / 0
06.09.2006, 12:59:02
    #33967762
Timm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как влияет грамотное написание import
KachalovПри совпадениях имен классов в разных пакетах можно также применять полное написание имени класса:

Код: plaintext
1.
a.X x =  new  a.X();

нужно а не можно. чувствуете разницу?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
 import  java.sql.*;
 import  java.util.*;
 class  test 
{
	 public   static   void  main(String[] args) 
	{
		Date d;
	}
}
попробуйте скомпилить.
...
Рейтинг: 0 / 0
06.09.2006, 14:18:31
    #33968080
Kachalov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как влияет грамотное написание import
Timm
нужно а не можно. чувствуете разницу?

- я это собственно написал как добавление к посту Leonidv, где именно можно (полный import там решил проблему).
А разницу я уже семь лет как чувствую :)
...
Рейтинг: 0 / 0
06.09.2006, 19:16:30
    #33969254
Кувалдин Роман
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как влияет грамотное написание import
gafudoИмхо, хороший стиль - писать полностью имя класса без *. Если полазить по исходникам opensource, в основном везде так.

ИМХО нет. В более-менее наполненном логикой классе таблица импорта займет всю страницу (какая-нибудь swing-овая формочка). А со всякими com.google.gwt.user.client.ui.ClickListener lstnr = new com.google.gwt.user.client.ui.ClickListener(){...} код становится вообще невозможно читать.

Исходники OpenSource пишутся преимущественно в Eclipse, как немного более распространенной среде из бесплатных. А там по дефолту настроена * после 99 классов. Лично я изменяю эту цифру на 5.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Как влияет грамотное написание import / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]