+ 1
Обучение языкам
Я пока в 10 классе и до ВУЗа в свободное время учу языки, как посоветуете учить:один язык (питон,плюсы или си) или сразу два языка ,а то и три,как будет эффективней.(Чем больше мнений-тем лучше:))
6 Réponses
+ 1
Объектно-ориентированное программирование. Одна из парадигм программирования, главная идея которого заключается в том, что данные (переменные-члены класса) объединяются с функциями (функции-членами класса или, уже больше в терминах ооп, методами) в единый абстрактный тип данных (класс). После того, как был описан класс с точки зрения его поведения и, так сказать, содержания, мы можем создавать его экземпляры - объекты. Классы могут выстраивать иерархии с помощью наследования,
То есть, суть в том, что акцент переводится от алгоритма, каких-то технических особенностей на сами данные и то, как они между собой связаны
+ 1
ООП - это целая наука, по которой даже учебники пишут. Для более подробной информации обращайся к гуглу, википедии, хабру, тематической литературе. Я был бы рад поделиться всеми знаниями, что у меня есть, но, к сожалению, объём информации слишком велик и всё это (и даже больше) содержится в вышеперечисленных ресурсах. Мне самому ещё ооочень многому учиться и даже за всю жизнь, боюсь, всего не выучу. Небольшое лирическое отступление.
+ 1
Но, всё же, чтобы внести большую ясность попробую показать на примере.
Допустим, нам надо запрограммировать симулятор птиц (первое что пришло в голову).
Как нам это сделать с помощью ооп? Мы создадим класс "птица" и подумаем над тем, из чего он должен состоять (переменные-члены или объекты-члены класса) и что может делать (методы класса), то есть уже больше задумываемся о том, как описать сам тип, а не техническую реализацию. Птица может состоять из размера, скорости, направления полёта и текущего положения в пространстве (пусть будет двухмерное), например. И может уметь летать. Ограничимся пока что на этом
На C++ это можно описать так:
class Bird //ключевое слово "class" и идентификатор (название) класса "Bird"
{
//Область видимости публичная, то есть, всё что находится здесь, будет доступно при
//обращении непосредственное к объекту класса через оператор членства '.' (точка)
public:
//Конструктор класса, то есть тот метод, который будет вызываться при создании
//объекта данного класса
Bird();
void fly(); //То самое умение "летать"
private:
int size_; //Размер
float speed_; //Скорость
int dir; //Направление jn 0 до 3. Может лететь в 4 стороны
int x, y; //Положение в 2-мерном пространстве
}
Здесь я только описать интерфейс класса, то есть то, что он вообще из себя представляет, его члены и прототипы методов. Отдельно (в отдельном файле исходного кода или непосредственно в одном файле с интерфейсом, но ниже) пишется реализация всех этих методов.
Ну, вот так примерно и проектируются классы - главные составляющие ООП. Как он будет готов, можно будет создавать его экземпляры - объекты, с которыми уже намного легче работать, чем с какими-то непонятными бесконечными переменными и функциями.
Например, я смогу вот так построить логику:
Bird eagle; //Объявил объект типа Bird, созданного нами класса
eagle.fly(); //Обратился к его методу fly() с помощью знака членства '.' и дальше уже выполняется тот код, что содержится в данном методе, но суть которого только в том, что он заставляет его лет
+ 1
Ну а по теме вопроса, то лучше учи один. Распыляясь одновременно на всё сразу, ты будешь дилетантом во всём, но нигде специалистом.
Нет, можно и нужно сравнивать, изучать различные технологии и принципы, лежащие в основах различных по типу ЯП. Но в рамках постижения общей теоретической базы и только уже после того, как стал более-менее разбираться в том, что ты учишь сейчас. Можешь объяснить что происходит у него "под капотом", что и как сделать, сам что-то делаешь качественное. То есть когда появляется крепкое его понимание.
0
АД, C++ поддерживает ООП
0
Это что?ООП