Анотація курсу: В рамках курсу студенти ознайомляться з базовими шаблонами розробки програмного забезпечення та архітектури, а також познайомляться з методами розробки гнучких до модифікації рішень.
Теми:
1. Інформація про курс. Платформа і мова програмування Java. Створення Java Main класу. Програма курсу та організаційні моменти. Історія мови Java. Платформа Java. Java байткод. JIT. Прибирання сміття. Компіляція і запуск програм в Java. Основна відміність від мови програмування Python. Класи Java. Метод main. Створення простих класів в Java. Примітивні типи та їх обгортки. Пакети.
2.Describing Objects and Classes. Creating and Using Methods. Creating and manipulate arrays. Working with objects and classes. Defining fields and methods. Declaring, Instantiating, and Initializing Objects. Working with Object References. Using methods. Method arguments and return values. Overloading methods. Overloaded method resolution. Static methods and variables. How arguments are passed to a method. Creating arrays. Array Manipulations. Two-dimensional Arrays. Alternate Looping Constructs. Nesting Loops. Arrays Class.
3.Constructing objects and Encapsulation. JVM Internals. Default constructor and User-defined constructors. Order of fields initialization. Using encapsulation in Java class design. Modeling business problems using Java classes. Java access specifiers. Making classes immutable. Static factory method. Implementing the singleton design pattern. S.O.L.I.D. Java Object Layout. Java bytecode. JVM internal structure. Class loader. Garbage collector
4.Inheritance and Polymorphism. Overview of inheritance. Creating Java subclasses, order of constructor calls. Working with subclasses and superclasses. Overriding methods: method signature, return types, access levels. Using virtual method invocation. Applying final keyword. Behavior of polymorphic methods inside constructors. Using the instanceof operator to compare object types. Using upward and downward casts. S.O.L.I.D.
5. Class Object. Unit testing. Class Object methods. Overriding toString(). Overriding equals(). Overriding hashCode(). instanceof vs. getClass(). Unit Testing. JUnit framework. Test Driven Development
6. Abstract Classes and Interfaces. State vs Behavior inheritance. Designing general-purpose base classes by using abstract classes. Constructing abstract Java classes and subclasses. Defining a Java interface. Choosing between interface inheritance and class inheritance. Extending an interface. S.O.L.I.D
7. Inner Classes. Distinguish between top-level and nested classes. Inner and Static inner classes. Inner classes in methods. Anonymous inner classes. Captured variables. Builder pattern (Fluent interface).
8. Abstract Classes, Anonymous classes and Interfaces usage. Using interfaces. Lambdas & Functional interfaces. Java 8 Default Methods. Default Methods vs. Abstract Classes. Design patterns: Template method, Strategy, Iterator, … S.O.L.I.D.
9. Enumerated Types. Exceptions. Old-style enumerated type idiom. Java Enum. Adding methods to an Enum. Overriding Enum methods. Defining the purpose of Java exceptions. Using the try and throw statements. Using the catch, multi-catch, and finally clauses. Recognizing common exception classes and categories. Creating custom exceptions. Propagation of exceptions. Handling multiple exceptions and errors. Exceptions and Overriding.
Викладачі:
Ключові факти:
Навчальний семестр: 3
Кількість кредитів: 6 ECTS
Освітня програма: