Git Product home page Git Product logo

neto-santana / programacao-orientada-a-objetos- Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 12 KB

Repositório contendo um exemplo de projeto de programação orientada a objetos desenvolvido em Java. Os códigos apresentados nesse repositório partem de estudos iniciados no curso de POO do Prof. Gustavo Guanabara no canal Curso em Vídeo no YouTube.

Home Page: https://www.youtube.com/playlist?list=PLHz_AreHm4dkqe2aR0tQK74m8SFe-aGsY

Java 100.00%
java object-oriented-programming oop orientacao-a-objetos poo

programacao-orientada-a-objetos-'s Introduction

Programação Orientada a Objetos

Repositório contendo um exemplo de projeto de programação orientada a objetos desenvolvido em Java.

O projeto conta com uma classe abstrata denominada Pessoa, duas classes filhas de Pessoa denominadas Paciente e Funcionario, uma classe filha de Funcionario denominada Medico, assim como uma classe denominada Prontuario que implementa uma interface denominada Consulta.

classDiagram
	class Pessoa {
		#String nome
		#int idade
	}
	<<abstract>> Pessoa
	
	class Paciente {
		-String gravidade
		-float peso
		-float altura
		-boolean alta
	}
	Pessoa <|-- Paciente
	
	class Funcionario {
		#int id
		#float salario
		+ receber()
	}
	Pessoa <|-- Funcionario
	
	class Medico {
		-String especialidade
		-boolean plantao
		+receber()
	}
	Funcionario <|-- Medico
	
	class Consulta {
		+examinar() *
		+diagnosticar(diagnostico) *
		+receitar() *
		+receitar(comprimido, quantidade, horario) *
		+receitar(injecao, quantidade) *
		+liberar() *
		+internar() *
	}
	<<interface>> Consulta
	
	class Prontuario {
		-Paciente paciente
		-Medico medico
		-String diagnostico
		-String receita
	}
	Consulta <|.. Prontuario
	Prontuario *-- Paciente
	Prontuario *-- Medico
Loading

Pessoa

A classe Pessoa se trata de uma classe abstrata com os atributos protegidos nome e idade, assim como seu método construtor e métodos getters e setters.

Paciente

A classe Paciente herda os atributos de Pessoa e conta ainda com os atributos privados gravidade, peso, altura e alta, assim como seu método construtor e métodos getters e setters.

Funcionário

A classe Funcionario herda os atributos de Pessoa e conta ainda com os atributos protegidos id e salario, assim como seu método construtor e métodos getters e setters.

A classe conta ainda com um método público denominado receber que confirma o recebimento do salário no console.

public void receber() {
    System.out.println("Funcionário(a) " + this.nome + " recebeu " + this.salario + " pelo mês corrente.");
}

Medico

A classe Medico herda os atributos e métodos de Funcionario e conta ainda com os atributos privados especialidade e plantao, assim como seu método construtor e métodos getters e setters.

A classe também sobrepõe o método receber herdado da classe Funcionario, pois o médico recebe o salário por plantão realizado.

@Override
public void receber() {
    System.out.println("Doutor(a) " + this.nome + " recebeu " + this.salario + " pelo plantão realizado.");
}

Consulta

A interface Consulta define os métodos utilizados em um ciclo de consulta que inicia com o exame dos sintomas do paciente, segue para o diagnóstico médico, posteriormente é receitado o procedimento necessário ao paciente e é decidido sua alta ou internamento.

Prontuário

A classe Prontuario possui os atributos privados paciente, medico, diagnostico e receita, assim como seu método construtor e métodos getters e setters.

A classe conta ainda com a implementação dos métodos da interface Consulta.

Examinar

O método confirma o início da consulta no console.

@Override
public void examinar() {
    System.out.println("Doutor(a) " + this.medico.nome + ", está examinando o paciente " + this.paciente.nome);
}

Diagnosticar

O método recebe o diagnóstico médico como parâmetro e o armazena no atributo diagnostico.

@Override
public void diagnosticar(String diagnostico) {
	this.setDiagnostico(diagnostico);
}

Receitar

O método pode ser utilizado de três formas diferentes, sem parâmetros, com um parâmetro String e dois parâmetros int, assim como com um parâmetro String e um parâmetro int.

receitar()

Quando o método é chamado sem parâmetros o atributo receita recebe a informação de que o paciente necessita de uma cirurgia.

@Override
public void receitar() {
    this.receita = "Paciente " + this.paciente.nome + " necessita de operação.";
}
receitar(String comprimido, int quantidade, int horario)

Quando o método é chamado com um parâmetro String e dois parâmetros int o atributo receita recebe a informação de que o paciente necessita tomar uma certa quantidade de um comprimido definido em um certo intervalo de tempo.

@Override
public void receitar(String comprimido, int quantidade, int horario) {
    this.receita = "Paciente " + this.paciente.nome + " deve tomar " + quantidade + " comprimido(s) de " + comprimido + " a cada " + horario + " hora(s)";
}
receitar(String injecao, int quantidade)

Quando o método é chamado com um parâmetro String e um parâmetro int, o atributo receita recebe a informação de que o paciente necessita tomar uma certa quantidade de uma injeção definida.

@Override
public void receitar(String injecao, int quantidade) {
    this.receita = "Paciente " + this.paciente.nome + " deve tomar " + quantidade + " ml de " + injecao;
}

Liberar

O método define o atributo alta do paciente para true.

@Override
public void liberar() {
    this.paciente.setAlta(true);
}

Internar

O método define o atributo alta do paciente para false.

@Override
public void internar() {
    this.paciente.setAlta(false);
}

Referência

Os códigos apresentados nesse repositório partem de estudos iniciados no curso de POO do Prof. Gustavo Guanabara no canal Curso em Vídeo no YouTube.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.