Есть опыт программирования на С, без плюсов. ООП не трогал. Требуется в кротчайшие сроки(1-2 недели) освоить основы Java и ООП. Что посоветует комьюнити ?
Основы ооп лучше учить по какомунить скриптовому языку вроде смоллтолка или руби, где ооп ничем не ограничивается. Ничего такого сложного в ооп нет, там фактически несколько правил и куча геммороя:
Все объект (только в яве есть элементарные типы - названия их начинаются с маленкьой буквы - char, int - но это сишника мало волновать должно)
Там три кита - инкапсуляция, полиморфизм и еще какято хрень которую я вечно забываю (почитайте статейки , вики http://ru.wikipedia.org/wiki/%D0%9E%D0%9E%D0%9F ) поделайте на скриптовом языке примерчики.
И основная затея ооп - это модульность, а для этого объекты (классы) должны как можно меньше быть связанны друг с другом, это сложнее и мало кто об этом помнит когда пишет проект.
А через пару тройку дней, берите яву и методом научног отыка и запуском примеров из поставки ждк изучайте работу. Если что-то непонятно ищите, ибо все курсы типа - ява за полчаса - суть бред, и мусор.
Почему не стоит начинать изучение ООП c явы? ИМХО ява не полностью соответсствует сабжу, и лучше сразу знать в чем, и почему, нежели потом узнать от вендузятнегов что сишарп такой крутой - у него и ооп полностью и функциональщина и блекджек (но это не мешает сишарпу быть хуже явы).
Да, слышал что smalltalk очень хорош в плане ООП, есть где развернуться. Но у меня сейчас цель не полностью освоить ООП, а в кротчайшие сроки это сделать. За ссылки и остальные советы спасибо, как раз то, что надо. Еще хотелось бы услышать нск названий книг на эти темы.
К сожалению все что я виде кроме упомянутой выше вызвали у меня стойкое чуйство что они учат технологиям а не языку. И я их благополучно выкинул. А размер практически у всех их одинаков.
Да, обрати внимание на "тонкости": нет неявного преобразования типов (хотя это трудно не заметить), нет конструктора копий (есть метод clone() но его поведение специфично - обычно он делает поверхностное копирование), и все объекты передаются по ссылкам (кроме атомарных типов которые и не объекты), вроде это все что может удивить после си.
Мне еще посоветовали труд Эрика Гаммы "Приемы объектно-ориентированного проектирования. Паттерны проектирования." как хорошее начало в ООП. Стоит ли на нее обращать внимание?
Ты все еще не устал? А я уже давно устал разжевывать и плюнул, зачем разжевывать дебилам то, что они должны были запомнить с первого раза, прочитав это в ABC? А потом еще удивляются, почему программы пишут индусы, а русские только вотку жрут да менеджерами по продажам мобил работают. Все по тому же, что запомнить элементарное не в состоянии, а туда же, лезут программы писать.
Потому что они пишут учебники. Зато все, что разбросано в десятках книг и сотнях FAQ и статей в интернете и что будешь собирать по крупицам, у них последовательно в книгах излагается. Выбирай сам
Да, только копирование выполняется поверхностное, поэтому получается так:
public class Main {
public String val;
public static void main(String[] args) {
Main t = new Main();
t.val = "test";
func(t);
System.out.print(t.val);
}