![]() |
|
Модераторы: LSD, AntonSaburov |
![]()
|
|
| raiskaa |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 8.5.2006 Репутация: нет Всего: нет |
В таком случае можно ли сказать, что кроссплатформенность это следствие пункта: C++ - машинный код / Java - интерпретируемый код |
|||
|
||||
| powerOn |
|
|||
![]() software saboteur ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4367 Регистрация: 7.10.2005 Репутация: 47 Всего: 159 |
Кроссплатформенность Java, (уж какая есть
Это сообщение отредактировал(а) MoonCat - 9.5.2006, 13:53 |
|||
|
||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 6 Всего: 360 |
||||
|
||||
| raiskaa |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 8.5.2006 Репутация: нет Всего: нет |
спасибо, понятно!
|
|||
|
||||
| raiskaa |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 8.5.2006 Репутация: нет Всего: нет |
to Sergej.z
И это лучше не брать. В Java есть модификатор static. запуталась! А как же вот это: " All the code in a Java program is encapsulated within one or more classes. Therefore, Java does not have global variables or global functions." http://www.csupomona.edu/~dlbell/cppexplanationsfa99/23.html Добавлено @ 14:25 [QUOTE=sergej.z,9.5.2006, 10:19] "Perhaps the single biggest difference between Java and C++ is that Java does not support pointers. Pointers are inherently insecure and troublesome. Since pointers do not exist in Java, neither does the -> operator. Some other C++ features are not found in Java." и это оттуда же! Вполне однозначно написано:"Java не поддерживает указатели" Вот поди разберись! |
|||
|
||||
| ALKS |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 354 Регистрация: 22.3.2006 Репутация: 1 Всего: 11 |
да ничего подобного в Java нету. но это операции с указателями а не сами указатели. т.е. указатели то в Java есть и они неявно испозуються. но вот явного синтаксиса для работы с ними, как в C/C++ - нету. но это всё - большие тонкости... |
|||
|
||||
| sergejzr |
|
||||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 6 Всего: 360 |
raiskaa, это же просто люди писали. Всё зависит от абстрактной позиции, которую занимаешь.
Естественно программист не найдёт в Ява указателей при программинге. Но всё же они там есть, просто скрыты от нас. Поэтому сказать "Ява не поддерживает указатели" - слишком мало. Не хватает ", но ..."
Нет, но есть статические члены/мемберы класса.
Вот у нас и аналог глобальной переменной и глобальной функции. |
||||
|
|||||
| raiskaa |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 8.5.2006 Репутация: нет Всего: нет |
Еще раз спасибо, теперь проясняется
|
|||
|
||||
| JUncle |
|
||||||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 6.4.2006 Где: Казань, РФ Репутация: нет Всего: 1 |
Ну - J2EE это не pure java. Это просто набор спецификаций.
Это не совсем то - т.к. в общем понимании кроссплатформенность присуща программе, когда ее бинарник не нужно формировать заново для новой платформы (как в случае с С \ С++).
Следуя хорошему тону, static поля вообще то должны быть финальными (final), и аналогом в С будут уже скорее макросы, а не глобальные переменные (которые, как правило, есть знак плохой архитектуры). Это сообщение отредактировал(а) sergej.z - 9.5.2006, 17:56 --------------------
class JUncle extends Man // singleton{/*...*/} |
||||||||
|
|||||||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 6 Всего: 360 |
Вообще-то Ява не запрещает их делать не final. Для этого есть хорошие причины, например private static абсолютно не противоречит "хорошему" тону (взять хотя бы тот же синглтон из Вашей подписи Кстати насчёт "хорошего" тона или "плохой" архитектуры |
|||
|
||||
| JUncle |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 6.4.2006 Где: Казань, РФ Репутация: нет Всего: 1 |
Если бы Java запрещала что-то, то об этом не было бы и речи А в случае private полей, действительно, разговор другой, но и о глобальных переменных тогда тоже речи не идет. А насчет отношения Java и C++ к ООП - С++ не может быть "более-ООП" языком, т.к. на нем все-таки можно написать действующую не-ООП программу. С другой стороны, на Java можно тоже написать программу, с точки здравого смысла абсолютно не ООП. Однако формально она все-таки будет ООП программой (если не принимать во внимание примитивы). Кстати, читал, что назвать Java ООП языком не позволяет, кроме примитивов и еще один факт. Объекты должны общаться посредством сообщений, а методы Java это несколько другое. Ну что ж, кроме цифры 99, вообще согласен Это сообщение отредактировал(а) JUncle - 9.5.2006, 18:06 --------------------
class JUncle extends Man // singleton{/*...*/} |
|||
|
||||
| ALKS |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 354 Регистрация: 22.3.2006 Репутация: 1 Всего: 11 |
Согласен J2EE - плохой пример. я не сталкивался с J2ME вообще, к сожалению. Но разве J2SE программа написанная, для простоты, в рамках любых классов из трех основных пакетов - lang, io и util пойдет без всяких ограничений в рамках J2ME?
с определением кросплотформенности не соглашусь. мне намного более правильным кажется примерно следующее: "Кросс-платформенным следует называть проект, перенос которого на новые платформы может быть выполнен с минимальными затратами. принебрежительно малыми, по сравнению с затратами на собственно разработку самого проекта." © не я |
||||
|
|||||
| JUncle |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 162 Регистрация: 6.4.2006 Где: Казань, РФ Репутация: нет Всего: 1 |
Да, я это забыл отметить, действительно, есть некоторые ограничения. В т.ч и обратные - т.е. в случае J2ME программы на J2SE JVM,
Ну может быть... Однако один из самых широких классов - GUI программы - в случае с С++ кросплатформенными никак назвать нельзя. И если допустить, что С++ программы кроссплатформенны, получается, что Java программы более кроссплатформенны, т.к. для их переноса на другую платформу в общем случае требуется меньше затрат* - мб ввести такую величину как коэффициент кроссплатформенности? * - при условии что на платформе етсь JVM Однако в случаее с С++ для платформы так же должен существовать компилятор. Так что тут они в равных условиях. Это сообщение отредактировал(а) JUncle - 9.5.2006, 18:21 --------------------
class JUncle extends Man // singleton{/*...*/} |
||||
|
|||||
| w1nd |
|
||||
![]() Вертилятор ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1077 Регистрация: 22.3.2006 Где: Москва Репутация: 20 Всего: 54 |
С++ безусловно "более-ООП" язык, так как на нем в отличие от Java можно не извращаясь создать полностью ООП-программу.
Это не так, не следует воспринимать буквально слова о сообщениях. -------------------- ![]() ![]() |
||||
|
|||||
| sergejzr |
|
|||
![]() Un salsero Профиль Группа: Админ Сообщений: 13285 Регистрация: 10.2.2004 Где: Германия г .Ганновер Репутация: 6 Всего: 360 |
Хм.. Только это к языку и философии программинга мало относится. Можно проект на асме написать, который без проблем скомпилится на любой платформе. Но Асм назвать кроссплатформенным думаю ни у кого язык не повернётся А на Яве кроссплатформенный именно бинарник, а не "проект". Что само по себе, кроме этого удобстава несёт ещё и удобства контроля и управления проектом (который не надо пичкать if else #ifdef _WIN32 итд.) Один исходник, один бинарник. Это в рамках большого проекта экономит тысячи долларов (говорю для того чтобы немного расшевелить вышеприведённое определение). Каждый, кто несколько лет занимался разработкой кроссплатформенных проектов на Си и Си++ меня поймут |
|||
|
||||
![]()
|
| Правила форума "Java" | |
|
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |