Created
March 4, 2021 17:54
-
-
Save NaN-NaN-sempai/ff8754a044cc9b55cde8572a5305d1ff to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// CLASSE | |
class pessoa { | |
constructor(nome, idade, sexo, pai, mae){ | |
this.nome = nome; | |
this.idade = idade; | |
this.sexo = sexo; | |
this.pai = pai; | |
this.mae = mae; | |
} | |
} | |
// OBJETOS PADRONIZADOS OU INSTANCIAS | |
var carlos = new pessoa("Carlos", 40, "masculino"); // <-- INSTANCIA | |
var joana = new pessoa("Joana", 39, "feminino"); // <-- INSTANCIA | |
var marcos = new pessoa("Marcos", 20, "masculino", carlos, joana); // <-- INSTANCIA | |
console.log(marcos.nome); // <-- ACESSANDO ELEMENTO DA INSTANCIA DA CLASSE | |
//RETORNA: "Marcos" | |
// OBJETO | |
var monitor = { // <-- OBJETO | |
tipo: "Full HD", // <-- ELEMENTO DO OBJETO | |
resolucao: { // <-- OBJETO DENTRO DO ELEMENTO DE OUTRO OBJETO | |
largura: 1920, // <-- ELEMENTO DO OBJETO ELEMENTO DE OUTRO OBJETO | |
altura: 1080 | |
}, | |
saidas: ["HDMI", "VGA", "DVI", "Display Port"] // <-- VETOR DENTRO DO ELEMETO DO OBJETO | |
} | |
console.log(monitor.tipo); // <-- ACESSANDO ELEMNTO DE UM OBJETO | |
//RETORNA: "Full HD" | |
// CLASSE ABSTRATA | |
class emprego { | |
constructor(salario, cargaHoraria){ | |
// CHECA SE "new" FOI USADO NA ATRIBUIÇÃO DE VALORES. | |
// SE FOI, UM ERRO É MOSTRADO. | |
// TORNADO A CLASSE ABSTRATA. OU SEJA. INACESSIVEL POR METODOS EXTERNOS. | |
if (new.target === emprego) { | |
throw "Não é possivel criar instancia desta classe!"; | |
} | |
this.salario = salario; | |
this.cargaHoraria = cargaHoraria; | |
} | |
static inscricao(e){ // METODO ESTATICO | |
console.log("Não há vagas para "+e+" no momento."); | |
} | |
ferramentasDeTrabalho(){ // <-- METODO INICIAL | |
return "Este emprego não tem ferramentas de trabalho." | |
} | |
baterPonto(){ | |
console.log("Dia de trabalho completo."); | |
} | |
} | |
// CLASSE FINAL | |
class policial extends emprego { | |
constructor(salario, cargaHoraria){ | |
super(salario, cargaHoraria); // <-- PASSA OS VALORES PARA A CLASSE ABSTRATA | |
this.corUniforme = "Azul"; | |
} | |
ferramentasDeTrabalho(){ // <-- SOBREESCRITA DO METODO INICIAL | |
return "Arma e algema." | |
} | |
// A SOBRECARGA NÃO EXISTE NO JAVASCRIPT | |
// ENTÃO A DIFERENCIAÇÃO DOS VALORES TEM QUE SER FEITA DENTRO DO METODO | |
receberPropina(propina){ | |
if(typeof propina == "number"){ | |
console.log("Propina recebide. Quantidade: "+propina+"."); | |
} else { | |
console.log("Levou o individuo preso."); | |
} | |
} | |
prender(){ | |
console.log("Prendeu um bandido."); | |
} | |
} | |
var pedro = new policial(17000, 6.5); | |
pedro.receberPropina(5000); // <-- METODO DE SOBRECARGA COM NÚMEROS | |
pedro.receberPropina("Não tenho o dinheiro..."); // <-- METODO DE SOBRECARGA COM NÃO-NÚMEROS | |
//RETORNA: | |
// Propina recebide. Quantidade: 5000. | |
// Levou o individuo preso. | |
// CLASSE FINAL | |
class medico extends emprego { | |
constructor(salario, cargaHoraria){ | |
super(salario, cargaHoraria); | |
this.corUniforme = "Branco"; | |
} | |
ferramentasDeTrabalho(){ | |
return "Bisturi e seringa." | |
} | |
medicar(){ | |
console.log("Passou receita com letra ilegível."); | |
} | |
} | |
// CLASSE FINAL | |
class jogadorDeFutebol extends emprego { | |
constructor(salario, cargaHoraria){ | |
super(salario, cargaHoraria); | |
this.corUniforme = "Depende do time"; | |
} | |
ferramentasDeTrabalho(){ | |
return "Bola." | |
} | |
fazerGol(){ | |
console.log("Fez um gol de trivela."); | |
} | |
} | |
var carlos = new medico(8147, 8); | |
carlos.medicar(); // <-- METODO DA CLASSE "medico" | |
carlos.baterPonto(); // <-- METODO DA CLASSE ABSTRATA "emprego" | |
//RETORNA: | |
// Passou receita com letra ilegível. | |
// Dia de trabalho completo. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
class emprego { | |
public static function inscricao($e) { | |
echo "Não há vagas para $e no momento."; | |
} | |
} | |
emprego::inscricao("policial"); | |
abstract class mamiferos { | |
public $nome; | |
public $idade; | |
public $mamas; | |
public $corDosOlhos; | |
function __construct($nome, $idade, $mamas, $corDosOlhos) { | |
$this->nome = $nome; | |
$this->idade = $idade; | |
$this->mamas = $mamas; | |
$this->corDosOlhos = $corDosOlhos; | |
} | |
function aleitar(){ | |
echo "$this->nome aleitou seus filhos."; | |
} | |
function comunicar(){ | |
echo "$this->nome falou com outros da sua espécie."; | |
} | |
} | |
class homem extends mamiferos { | |
public $casado; | |
function __construct($nome, $idade, $mamas, $corDosOlhos, $casado){ | |
parent::__construct($nome, $idade, $mamas, $corDosOlhos); | |
$this->casado = $casado; | |
} | |
function rir(){ | |
echo "$this->nome riu."; | |
} | |
function falar(){ | |
echo "$this->nome falou."; | |
} | |
} | |
class cao extends mamiferos { | |
public $cauda; | |
function __contruct($nome, $idade, $mamas, $corDosOlhos, $cauda){ | |
parent::__construct($nome, $idade, $mamas, $corDosOlhos); | |
$this->cauda = $cauda; | |
} | |
function morder(){ | |
echo "$this->nome mordeu."; | |
} | |
function latir(){ | |
echo "$this->nome latiu."; | |
} | |
} | |
class gato extends mamiferos { | |
public $cauda; | |
function __contruct($nome, $idade, $mamas, $corDosOlhos, $cauda){ | |
parent::__construct($nome, $idade, $mamas, $corDosOlhos); | |
$this->cauda = $cauda; | |
} | |
function arranhar(){ | |
echo "$this->nome arranhou."; | |
} | |
function miar(){ | |
echo "$this->nome miou."; | |
} | |
} | |
?> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment