Я начал модуль с Открытым университетом, где я должен изучать концепции OO посредством изучения и использования Java. В качестве личной документации, а также интереса для всех, я решил, что буду документировать свое путешествие.
Прежде чем мы начнем, я в течение последних 4 лет или около того специально использовал c # в своей профессии, сначала в качестве автоматизированного тестировщика, а затем в качестве инженера-программиста, поэтому я знаком с принципами и концепциями OO. Хотя я признаю, что моей теории не хватает, потому что я не учился в университете и не изучал никаких курсов CS, предшествующих тому, на котором я сейчас. Я использовал другие языки, но Java – это не тот язык, к которому я действительно прикасался, но он так похож на c #, что я слышал, как об этом много раз говорили так что я был осведомлен, по крайней мере, о некоторых различиях, с которыми я столкнусь при изучении этого языка.
Ниже приведены мои первые открытия, когда я приступил к этому курсу.
Мне нужна моя ИДЕЯ
Инструмент, используемый университетом, синего цвета. И хотя я вижу привлекательность для тех, кто изучает OO и Java, я веду настоящую битву с Visual Studio и VS Code. Где мой Интеллект! Это похоже на шаг назад и опыт, который не имеет отношения к реальному миру.
Собирать коллекции намного сложнее!
Хорошо, я признаю, что, возможно, Linq испортил меня, но работа с коллекциями кажется излишне сложной. Похоже, что для простого создания нового списка и повторения этого требуется много кода. Может быть, это только я, и я надеюсь, что через несколько недель я буду смеяться над этим и разглагольствовать в комментариях о том, как это просто на самом деле.
Где моя точка входа
Я столкнулся с этим, когда хотел создать консольное приложение hello world. После быстрого поиска выясняется, что это всего лишь метод
public static void main() { ... }
и это может быть в любом классе. Я думаю, это может быть как плюсом, так и минусом.
Всегда Тип
Я большой пользователь var в c# и практически любого ключевого слова, которое является общим и заставляет компилятор определять тип. Но в Java вы должны каждый раз устанавливать тип. Не имеет большого значения и в некоторых случаях может быть полезно убедиться, что переменная определенно того типа, который вы ожидаете
String name = "John Doe";
Заглавная строка и логическое значение int в нижнем регистре?
Из того, что я, кажется, могу собрать, типы имеют разную оболочку друг для друга. В c# это в значительной степени все строчные буквы c#
string Name; int Age; boolean IsVerified;
но на Яве они
String name; int age; Boolean isVerified
Больше вызывающих проблем
К этому я привык, так как работал с JS и TS, а также просто знал об этом в любом случае, но имена методов и переменные экземпляра (в c #, известные как свойства) начинаются со строчной буквы
private String name; public void setName(String name){ this.name = name; } ...
Явные Геттеры и сеттеры
Я был потрясен, когда мне сказали, что нужно создавать и предоставлять методы получения и установки для каждой переменной экземпляра, которую я хотел предоставить и которой я хотел манипулировать. Я очень предпочитаю способ c# справиться с этим
c#
public string Name { get; set; }
Ява
private String name; public String getName(){ return name; } public void setName(String name){ this.name = name }
подводить итоги
Может показаться, что я жалуюсь на Java, и, возможно, я кажусь фанатом c# но на самом деле, чего вы ожидаете, таков мой мир, и так было уже несколько лет так что это потребует некоторой корректировки. Я надеюсь продолжать документировать свои знания, углубляясь в мир Java, в конце концов, есть причина, по которой он все еще так популярен!
Оригинал: “https://dev.to/alexs1305/a-c-dev-starting-a-java-course-2k1b”