Skip to content

a1t0ghb/courses-oracle_one-java_II-d251016

Repository files navigation

Basics of Java (II).

README's front-page media.
Fig. Code execution in VS Code, of Java app in folder 'course_java_ii_challenge_app_audio_player'.

Final delivery of the 2nd course: 'Java: aplicando la Orientación a Objetos', from module (a.k.a. 'formación' in spanish) 'Java Orientado a Objetos G9 - ONE', of Alura LATAM. Part of ORACLE Next Education (ONE) education program, in LATAM.

This final delivery consists of 2 projects, each one in it's own folder (using folders structure of Maven's java build automation tool):

Note

This README is mainly written in english (en), but it might have some sections in spanish (sp), since course content is in spanish.

ℹ About.

The course covered topics such as:

🥇 Course Certificate of Completion.

Available at 'https://app.aluracursos.com/certificate/e269c75a-aab6-46a6-b77b-b1983008d35c'.

  • Estimated workload: 10h.
  • Activities: 51.
  • Topics:
    1. 'Modelando ScreenMatch'.
    2. 'Controlando el acceso a la escritura de datos'.
    3. 'Reaprovechando características y comportamientos'.
    4. 'Aplicando comportamientos en común'.
    5. 'Consolidando conocimientos'.

🔗 Links to program resources.

PROGRAM STRUCTURE.

COURSE RESOURCES.

🐾 Notes About Project.

Note

This section is only for reference, for documentation purposes in case of re-visiting course notes.

Object's Oriented Programming Approach.

This project focused on modeling a Java project with Object Oriented Programming (OOP) focus, so here I'm including the Class Diagram of the course's last project: an audio player app; in folder: course_java_ii_challenge_app_audio_player.

Note

This diagram was made using Mermaid.js in markdown files: 'https://docs.mermaidchart.com/mermaid-oss/syntax/classDiagram.html'. For using it in VS Code, ⚠ it requires an extension for rendering ⚠, such as 'Markdown Preview Mermaid Support' 'https://marketplace.visualstudio.com/items?itemName=bierner.markdown-mermaid'.

---
title: CLASS DIAGRAM FOR PROJECT 'course_java_ii_challenge_app_audio_player' (package name, as 'HOME', for this graphical purpose).
config:
    theme: 'dark'
---
%% Class Diagrams in Mermaid.js: 'https://docs.mermaidchart.com/mermaid-oss/syntax/classDiagram.html'.
classDiagram
    direction LR
    %% note "General note."
    %% note for Cancion "Method 'getClasificacion()' is inherited and overwritten for class SPECIFIC definition."
    %% note for Podcast "Method 'getClasificacion()' is inherited and overwritten for class SPECIFIC definition."
    %% HOME, as package 'course_java_ii_challenge_app_audio_player'.
    namespace HOME {
        class App ["App"] {
            <<Abstract>>
        }
    }
    %% Package 'course_java_ii_challenge_app_audio_player.models'.
    namespace HOME.models {
        class Audio ["Audio"] {
            <<Abstract>>
            -String titulo
            -int totalDeReproducciones
            -int totalDeMeGusta
            -int clasificacion
            'getters'()
            +getTitulo() String
            +getTotalDeReproducciones() int
            +getTotalDeMeGusta() int
            +getClasificacion() int
            'setters'()
            +setTitulo(String titulo) void
            -setTotalDeReproducciones(int totalDeReproducciones) void
            -setTotalDeMeGusta(int totalDeMeGusta) void
            +setClasificacion(int clasificacion) void
            +reproduce() void
            +meGusta() void
        }
        class Cancion ["Cancion"] {
            <<Abstract>>
            -String album
            -String cantante
            -String genero
            'getters'()
            'setters'()
            +getClasificacion() int
        }
        class Podcast ["Podcast"] {
            <<Abstract>>
            -String presentador
            -String descripcion
            'getters'()
            'setters'()
            +getClasificacion() int
        }
    }
    %% Package 'course_java_ii_challenge_app_audio_player.computations'.
    namespace HOME.computations {
        class MisFavoritos ["MisFavoritos"] {
            <<Abstract>>
            +adicione(Audio audio) void
        }
    }
    %% Audio <|-- Cancion : implements
    %% Audio <|-- Podcast : implements
    Cancion --|> Audio : implements
    Podcast --|> Audio : implements
    App --> Cancion : calls
    App --> Podcast : calls
    App --> MisFavoritos : calls
    MisFavoritos --> Audio : calls
Loading
Please click here to expand, in case previous diagram (in Mermaid.js) doesn't render.
CLASS DIAGRAM FOR PROJECT 'course_java_ii_challenge_app_audio_player'.

Notes:

  • In class Cancion, method getClasificacion() is inherited from 'super class' / 'parent' class Audio, and it's overwritten for this class SPECIFIC implementation."
  • In class Podcast, method getClasificacion() is inherited from 'super class' / 'parent' class Audio, and it's overwritten for this class SPECIFIC implementation."

Note

A quick way to get an idea of relationships between classes is to review the import statements, usually at the header of each Class (.java) file. E.g., in the App.java file:

Java file 'import' statements.

🤝 Contributors.

Made with contrib.rocks.

📜 Authors.


a1t0ghb