Repository for the Object-Oriented Programming with Java course by Instituto Tecnológico de Aeronáutica (ITA).
The objective of this course is to make you understand the principles of object-oriented programming through the Java language and know how to efficiently apply these principles in practice when designing and developing software in an agile way. The concepts discussed and experimented by you in this course will be the basis for you to be able to understand the new concepts presented in the following courses of this specialization.
In this module, the basic concepts of object-oriented programming will be presented, both in theory and in Java: classes, objects, class attributes, class constructors, responsibilities, collaborations, and CRC cards.
In this module, there will be a deepening of the previous module, based on classes and methods, as well as CRC modeling.
Providing the ability to:
-
Model the behavior of classes with methods in Java;
-
Design new classes for an application through CRC modeling.
In this module, the concepts of Unit Testing and UML Class Diagrams will be presented, as well as the concepts of dependency and class contract.
Providing the ability to:
-
Test the behavior of classes in Java with JUnit;
-
Design and represent classes with UML class diagrams.
In this module, the concepts of Inheritance and Access Modifiers will be presented.
Providing the ability to:
-
Design and structure Java programs based on best practices in the use of inheritance;
-
Ensure low coupling between classes by the proper use of access modifiers.
In this module, the concepts of Encapsulation, Coupling between Classes, and Interfaces in Java will be presented.
Providing the ability to:
-
Design and structure Java programs, avoiding encapsulation breaks and providing low coupling between classes;
-
Ensure abstract coupling between classes through the proper use of interfaces in Java.
In this module, the concept of Polymorphism, the "Law of Demeter" principle, and Exceptions in Java will be presented.
Providing the ability to:
-
Design and structure more flexible and low-coupling Java programs;
-
Ensure proper handling of exceptions in Java.
Licensed under the MIT. See LICENSE for more informations.
See my contact information on my GitHub profile.
