Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save NaN-NaN-sempai/ff8754a044cc9b55cde8572a5305d1ff to your computer and use it in GitHub Desktop.
Save NaN-NaN-sempai/ff8754a044cc9b55cde8572a5305d1ff to your computer and use it in GitHub Desktop.
// 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.
<?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