Orientação a objetos

Compreendendo Orientação a Objetos

Aula 02 - Paradigmas e Pilares
Os paradigmas de programação são o Imperativo e Declarativo. O primeiro foca em como voce vai resolver os problemas e o segundo em o que voce vai fazer. O paradigma Declarativo tem o foco em programação funcional onde voce simplesmente declara o que será feito, ou em bancos de dados SQL.
Orientação a Objetos e programação procedural são tipo de paradigma imperativos.
Na Orientação a Objetos os programas são 'Objetos' que possuem uma série de propriedades.
Os pilares da OO são: Herança, Polimorfismo, Encapsulamento e Abstração.
Abstração: Processo mental que consiste em isolar um aspecto determinado de um estado de coisas relativamente complexo, a fim de simplificar a sua avaliação, classificação ou para permitir a comunicação do mesmo.
Herança: O objeto filho herda propriedades e métodos do objeto pai.
Encapsulamento: Cada classe tem propriedades e métodos independentes do restante do código.
Polimorfismo: Objetos podem herdar a mesma classe pai, mas se comportarem de forma diferente quando invocamos seus métodos.

Orientação a Objetos em Javascript

Aula 03 - Protótipos e classes
Protótipos em JS são o esqueleto de todos os objetos. Todos os objetos JS herdam propriedaddes e métodos de um prototype. O objeto Object.prototype está no topo dessa cadeia.
Classes em JS não existem nativamente. Elas são um syntatic sugar uma sintaxe feita para facilitar a escrita.
Todas as classes em JS são objetos e a herança se dá por protótipos.
A estrutura básica de uma classe JS possui um método constructor() e getter e setter que manipulam os atributos do objeto.
Para as classes filhas utilizamos o método super() que indica para a classe pai quais os atributos são extendidos.
Aula 04 - Atividade prática
Criamos a classe ContaBancaria com um constructor() que recebe os parametros indicados. Esses parametros são incluidos como atributos da classe. Entre eles o saldo deve ter criados os métodos get() e set().