Classes - POO (JavaScript + Lógica de programação) Flashcards

1
Q

Paradigma

A

Toda linguangem de programação tem um paradigma.
È como se encontra de alguma classificação (“conforme suas funcionalidades e como permite que nós estruturemos o nosso código.”)

Diversas linguagens possui
vários paradigmas

(Orientado a objeto
Orientação a Evento
Funcional e outros)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

POO / OPP

A

POO vem de programação orientada a objetos

OOP Object Oriented programming

  • Tem idea de abstrair, dentro do código, objeto do mundo real
  • Permite que os objetos interajam entre si através da troca de mensagens
  • A base são as Classes e os Objetos
  • OS objetos nós já estamos vendo desde o módulo anterior
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Construtores e instâncias

A

Quando dizemos que uma classe foi instanciada estamos dizendo que um objeto foi criado a partir daquela classe.

A classe vêm com método especial que chamamos de construtor.

Utilizamos para definir valores iniciais dos atributos de um objeto.

Este método é chamado quando criamos uma instância de uma classe com a palavra.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Método construtor e instancia com uma class chamada new

A

class typeCars {
constructor(brand, name, quantity){
this.brand = brand
this.name = name
this.quantity = quantity
}
}

let bmw = new typeCars(“BMW”, “M4”, 23)

let fiat = new typeCars(“Fiat”, “Cronos”, 32)

let landRover = new typeCars(“Land Rover”, “Discovery”, 21)

console.log(bmw,fiat,landRover)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Métodos(class)

A

class spaceShip {
constructor(name){
this.name = name
this.velocity = 0
}

speedUp(acceleration) {
    this.velocity += acceleration
}

}

let artemis = new spaceShip(“Artemis”)

artemis.speedUp(20)
artemis.speedUp(12)

console.log(artemis)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Associando classes

A

class captain{
constructor(name, age, flightHours){
this.name = name
this.age = age
this.flightHours = flightHours
}
}

class spaceShip {
constructor(name, crewQuantity, captainName, captainAge, captainFlight){
this.name = name
this.crewQuantity = crewQuantity
this.captain = new captain(captainName, captainAge, captainFlight)
}
}

let spaceship = new spaceShip(“Skyline”, 30, “Willian weber”, 42, 60000)

console.log(spaceship)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

get e set

A

São métodos que a gente pode simular variáveis quando queremos formatar valores.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

SET

A

É utilizado para atribuir um valor numa variável.

class transportSpacehip{
constructor(name){
this.name = name
this.currentVelocity = 120
}

set(newVelocity){
    if(newVelocity > 120){
        this.currentVelocity = 120
    }else{
        this.currentVelocity = newVelocity
    }
} }

let spaceShip = new transportSpacehip(“Transportador”)

spaceShip.velocity = 130

console.log(spaceShip)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

GET

A

É utilizado para retornar um valor com uma variável.

class resourceProcesserStation{
constructor(name, monthlyProcessedLoad){
this.name = name
this.monthlyProcessedLoad = monthlyProcessedLoad
}

get weeklyProcessedLoad() {
    return this.monthlyProcessedLoad / 4
} }

let resourceprocess = new resourceProcesserStation(“Gaia”, 500)

console.log(resourceprocess.weeklyProcessedLoad)

resourceprocess.monthlyProcessedLoad = 600

console.log(resourceprocess.weeklyProcessedLoad)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Métodos estáticos

A

são funções utilitárias, como funções para criar ou clonar objetos.

class resourceProcessStation {
constructor(name, mothLyProcessing){
this.name = name
this.mothLyProcessing = mothLyProcessing
}
static calculateProcessHours(mothLyProcessing, hours) {
return mothLyProcessing / 720 * hours
}
}

let processor = new resourceProcessStation(“Galeão”, 2000)

let totolProcessed = resourceProcessStation.calculateProcessHours(processor.mothLyProcessing, 10)

console.log(totolProcessed)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

variáveis e estáticos

A

são ligados diretamente na classe.

class spaceship{
static get decelerationRate() {
return 0.15
}
constructor(name){
this.name = name
this.currentVelocity = 0
}
speedUp(acceleration){
this.currentVelocity += (acceleration * (1 - spaceship.decelerationRate))
}
}

let space = new spaceship(“Apollo”)

space.speedUp(100)

console.log(space)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Exceções

A

São erros que ocorrem no código.

São capturados em tempo de execução(runtime)

podem ser tratados para que o código não quebre.

No javascript, as exceçoes são lançadas pela classe error.

Podemos utilizar o try e catch para poder tratar esses errors.

Assim como podemos lançar nossos próprios erros
(Utilizamos o throw)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Cláusula throw

A

Criar nossos próprios erros.

class spaceshipWeapons {
constructor(identifier) {
this.identifier = identifier
this.shotsLeft = 5
}

shoot() {
    if(this.shotsLeft > 0) {
        console.log("TIRO")
        this.shotsLeft -= 1
    } else {
        throw new Error(`Arma ${this.identifier} sem munição `)
    }
} }

let fenixWeapon = new spaceshipWeapons(10)

fenixWeapon.shoot()
fenixWeapon.shoot()
fenixWeapon.shoot()
fenixWeapon.shoot()
fenixWeapon.shoot()
fenixWeapon.shoot()

console.log(fenixWeapon)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

try, catch and finally

A

Criado para tratar exceções. Este conjunto atua capturando as possíveis exceções em seu código e, com o objetivo de impedir fluxos inesperados.

class spaceWeapons {
constructor(identifie) {
this.identifie = identifie
this.shotsWeapons = 5
}

shot() {
    if(this.shotsWeapons > 0) {
        console.log("Arma " + this.identifie + "Tiros")
        this.shotsWeapons -= 1
    } else {
        throw new Error("No more bullets available")
    }
}

reload() {
    this.shotsWeapons = 5
} }

let Fenixweapons = new spaceWeapons(“Fenix”)

try {
Fenixweapons.shot()
Fenixweapons.shot()
Fenixweapons.shot()
Fenixweapons.shot()
Fenixweapons.shot()
Fenixweapons.shot()

} catch(e) {
console.log(e.message)
Fenixweapons.reload()
} finally {
console.log(“you shot too much!!”)
}

console.log(Fenixweapons)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly