Skip to content

btj/ogp-notes

Folders and files

NameName
Last commit message
Last commit date

Latest commit

6cd75ae · May 16, 2020

History

88 Commits
May 15, 2020
May 4, 2020
May 4, 2020
May 1, 2020
May 6, 2020
Mar 5, 2020
May 5, 2020
Apr 24, 2020
May 13, 2020
Mar 27, 2020
May 3, 2020
Feb 14, 2020
Apr 3, 2020
Mar 20, 2020
Apr 3, 2020
May 15, 2020
Apr 25, 2020
May 16, 2020
May 15, 2020
May 16, 2020
May 16, 2020
May 4, 2020
May 16, 2020

Repository files navigation

Object-Oriented Programming

Single-object abstractions

  • Introduction: Topic of the course
  • Principles of programming in Java
    • Concepts: values, variables, types, methods, parameters, arguments, return values, classes, fields, objects, object creation, object references, method activations and the call stack
  • First steps in modular programming Part 1 Part 2
    • Example: squareroot
    • Example: max3
    • Example: timeofday
    • Concepts: Using Eclipse, creating JUnit test cases, creating classes, instance methods, encapsulation, private versus public, using Git, constructors
  • Managing complexity through modularity and abstraction
    • Concepts: modularity, abstraction, API, client module, importance of documentation, information hiding, procedural abstraction, data abstraction, immutable versus mutable abstractions, abstract value/state of an object, Java's built-in datatypes and operators
  • How to properly document single-object abstractions
    • Concepts: defensive programming, contractual programming, preconditions, postconditions, class representation invariants (= private class invariants), class abstract state invariants (= public class invariants), getters, mutators

Multi-object abstractions (= entity-relationship abstractions)

Inheritance

Advanced topics

(Students of course H02C5A can ignore this material.)

  • Iterators
    • Concepts: (external) iterators, iterables, nested classes, inner classes, local classes, anonymous classes, enhanced for loop, internal iterators, lambda expressions, capturing outer variables, effectively final variables
  • Streams
    • Concepts: streams, sources, map, filter, reduce, collect, parallel streams
  • Generics
    • Concepts: generic class, generic interface, type parameter, type argument, generic type instantiation, parameterized type, bounded type parameter, covariance, contravariance, invariance, upper-bounded wildcard, lower-bounded wildcard, generic method, erasure, unchecked cast warning