Você está na página 1de 8

prof: Manfrine

FAMETRO ADS 3°
POO com Java Aluna Adila Zaira Oliveira
A programação orientada a objetos (POO) é um paradigma de programação que se
baseia no conceito de "objetos", que podem conter dados na forma de campos,
também conhecidos como atributos, e códigos, na forma de procedimentos, também
conhecidos como métodos. Os objetos são instâncias de classes, que servem como
modelos para criar objetos. A POO promove a organização do código em unidades
reutilizáveis e modulares, o que facilita o desenvolvimento, a manutenção e a
escalabilidade do software.

Classe representa um conjunto de objetos


com características afins. Uma classe A ação só ocorre quando o métodoé
define o comportamento dos objetos invocado atravésdo objeto, no caso
através de seus métodos, e quais estados Bidu.Dentro do programa,a utilização de
ele é capaz de manter atravésde seus um método deve afetar apenas um objeto
atributos. Exemplo de classe:Os seres em particular` Todos os cachorros podem
humanos. latir, mas você quer que apenas Bidu dê
Subclasse é uma nova classe que o latido. Normalmente, uma classe
herda características de sua(s) possui diversos métodos, que no caso da
classe(s)ancestral(is). classe Cachorro poderiam ser sente,coma
Objeto / instância de uma classe. Um e morda.
objeto é capaz de armazenar os valores Mensagem é uma chamadaa um objeto
que serão inseridos através de seus para invocarum de seus métodos,
atributos e capaz de exercer reação a ativandoum comportamento descritopor
sua classe. Também pode ser
mensagens enviadas a ele, assim como se
direcionada diretamente a uma classe
relacionar e enviar mensagens a outros
(atravésde uma invocação a um método
objetos. Exemplo de objetos da classe
estático).
Humanos: João, José, Maria
Herança (ou generalização) é o
Atributo são características de um
mecanismo pelo qual uma classe
objeto. Basicamente a estrutura de dados
(subclasse) pode estender outra
que vai representar a classe.
classe (superclasse), aproveitando
Exemplos:Funcionário: nome, endereço,
seus comportamentos (métodos) e
telefone, CPF,...` Carro: nome, marca, variáveispossíveis (atributos). Um
ano, cor, …` Livro: autor, editora, ano. exemplo de herança: Mamíferoé
Por sua vez, os atributospossuem superTclasse de Humano. Ou seja, um
valores. Por exemplo, o atributo cor Humano é um mamífero. Há herança
pode conter o valor azul. O conjunto de múltipla quando uma subclasse
valores dos atributos de um determinado possuimais de uma superclasse. Essa
objeto é chamado de estado. relação é normalmente chamadade
Método definem as habilidades dos relação "é um".
objetos. Bidu é uma instância da classe Polimorfismo consiste em quatro
Cachorro,portanto tem habilidade para propriedades que a linguagem pode
latir, implementada através do método ter (atente para o fato de que nem
deUmLatido. Um método em uma classe é toda linguagem orientada a objeto
apenas uma definição. tem implementado todos os tipos de
polimorfismo):
POO com Java
prof: Guilherme Hernandes
FAMETRO ADS 3°
Aluna Adila Zaira Oliveira

Universal: Toda classe deverá implementar o método


Inclusão: um ponteiro para classe mãe pode construtor para iniciar o objeto.
apontar para uma instância de uma classe Essa afirmação está incorreta. Embora seja uma
filha (exemplo em Java: "List lista = new prática comum e recomendada implementar um
LinkedList()`" (tipo de polimorfismo mais construtor em uma classe para inicializar seus
básico que existe) objetos, não é obrigatório. Se nenhum construtor for
AdTHoc: definido explicitamente em uma classe, um
Sobrecarga: duas funções/métodos com o construtor padrão sem parâmetros será fornecido
mesmo nome mas assinaturas diferentes implicitamente pelo compilador.
Coerção: a linguagem que faz as conversões
implicitamente (como por exemplo atribuir um Todo objeto de uma classe é instanciado da
int a um float em C++, isto é aceito mesmo palavra reservada new.
sendo tipos diferentes pois aconversão é feita Essa afirmação está correta. Na maioria das
implicitamente) linguagens de programação orientadas a objetos,
como Java e C++, os objetos são instanciados
usando a palavra reservada "new", seguida do
nome da classe e, opcionalmente, de argumentos
- Quando uma classe é instanciada, cria-se um para inicializar o objeto.
objeto específico que segue o modelo definido pela
classe, possuindo seus próprios valores para os "O objeto é uma entidade do mundo real que
atributos e comportamentos definidos na classe. tem uma identidade. Os objetos podem
Cada instância é única e independente das outras representar entidades concretas ou entidades
instâncias da mesma classe. conceituais."
Esta afirmação destaca que os objetos em um
-Os quatro pilares da Programação Orientada a sistema representam entidades do mundo real,
Objetos (POO) são: sejam elas tangíveis (concretas) ou intangíveis
abstração, encapsulamento, herança, (conceituais). Cada objeto tem uma identidade
polimorfismo. única que o distingue de outros objetos e reflete sua
Esses pilares representam os conceitos individualidade no sistema.
fundamentais que são amplamente utilizados na "A estrutura de um objeto é representada por
POO para facilitar a modelagem, implementação e suas características. O comportamento de um
manutenção de sistemas de software. objeto é representado pelo conjunto de
operações que podem ser executadas."
a definição de uma classe não é necessário Essa afirmação descreve como os objetos são
especificar atributos. modelados em um sistema de análise. A estrutura
Essa afirmação está incorreta. Na definição de de um objeto é definida por suas características,
uma classe, é comum especificar os atributos que que são os atributos que descrevem suas
representam as características dos objetos propriedades e estados. Por outro lado, o
pertencentes a essa classe. Atributos são essenciais comportamento de um objeto é definido pelas
para definir o estado dos objetos e suas operações (métodos) que ele pode executar. Essas
propriedades. operações determinam as ações que o objeto pode
realizar e como ele responde a solicitações externas.
POO com Java
prof: Guilherme Hernandes
FAMETRO ADS 3°
Aluna Adila Zaira Oliveira

Conceitue, objeto, polimorfismo de sobrecarga e


1. "Uma classe é uma estrutura para um sobreposição e de exemplos de cada:
determinado tipo de objeto. Na classe são
definidos os atributos e implementados os Objeto:
métodos." Um objeto é uma instância de uma classe. Ele
Esta afirmação está correta até certo ponto. Uma possui características (atributos) e
classe realmente serve como um modelo para um comportamentos (métodos) definidos pela classe
tipo específico de objeto, e nela são definidos os da qual foi instanciado. Em outras palavras, um
atributos (estados) e implementados os métodos objeto é uma entidade do mundo real que pode
(comportamentos) que serão compartilhados por ser representada e manipulada em um programa
todos os objetos dessa classe. No entanto, a segunda de computador.
parte da afirmação não está correta, pois os
métodos são apenas declarados na classe (ou seja,
sua assinatura é especificada), mas sua
implementação real é feita nas respectivas
definições de método.
1. "Os objetos não são criados a partir de suas
classes. A cada objeto criado, o sistema aloca
memória para todos os outros novos objetos e
seus atributos. Uma classe é uma estrutura para
um determinado tipo de objeto."
Esta afirmação está completamente incorreta. Os
Polimorfismo de Sobrecarga:
objetos são criados a partir de suas classes. Uma
Polimorfismo de sobrecarga ocorre quando duas
classe é um molde ou modelo que define a estrutura
ou mais operações têm o mesmo nome, mas
e o comportamento dos objetos que serão criados a
diferentes listas de parâmetros. O Java
partir dela. Quando um objeto é instanciado, ou seja,
determina qual método usar baseado nos tipos
criado, ele é uma instância dessa classe específica e
de argumentos passados ou na quantidade de
herda todos os atributos e métodos definidos na
argumentos. Em resumo, o método a ser invocado
classe. Além disso, não é verdade que o sistema
é determinado pela assinatura do método (nome
aloca memória para "todos os outros novos objetos"
e tipos de parâmetros). Exemplo:
sempre que um objeto é criado. Cada objeto é
alocado na memória de forma independente, com
seu próprio espaço alocado para armazenar seus
atributos específicos.
Portanto, ambas as afirmações estão incorretas, e
não há relação entre elas. A criação de objetos está
diretamente relacionada às classes, e as classes
servem como modelos para os objetos.
POO com Java
prof: Guilherme Hernandes
FAMETRO ADS 3°
Aluna Adila Zaira Oliveira

Polimorfismo de Sobreposição (Override): Defina a relação entre classe objeto atributo e


Polimorfismo de sobreposição ocorre quando método:
uma subclasse fornece uma implementação
específica para um método que já está definido Relação entre eles:
na sua superclasse. O método da superclasse é Uma classe define a estrutura e o comportamento
"sobreposto" pelo método da subclasse, dos objetos por meio de atributos e métodos.
fornecendo uma implementação específica para Um objeto é uma instância específica de uma
o contexto da subclasse. Exemplo: classe e possui os atributos e métodos definidos
pela classe.
Os atributos representam as características ou
estados dos objetos.
Os métodos representam as operações que
podem ser realizadas nos objetos, manipulando
seus atributos e realizando ações específicas.
Assim, a relação entre classe, objeto, atributo e
método é essencial para entender como a POO
organiza e modela os sistemas de software,
permitindo uma abordagem modular e orientada
a objetos para o desenvolvimento de software.

Porque criar uma classe abstrata


Qual a relação entre a poo e a modelagem.
Criar uma classe abstrata é útil em situações onde
A Programação Orientada a Objetos (POO) e a você deseja fornecer uma estrutura comum para um
modelagem estão intimamente relacionadas, pois a conjunto de classes relacionadas, mas não deseja
POO é uma abordagem de programação baseada no permitir a instanciação direta dessa classe.Em
conceito de modelagem de objetos do mundo real. A resumo, criar uma classe abstrata oferece uma
modelagem é o processo de representar o mundo real maneira eficaz de organizar e modelar hierarquias
em um formato que possa ser entendido e manipulado de classes, promovendo a reutilização de código,
por meio de software. abstração de conceitos e fornecimento de uma
Aqui estão algumas maneiras pelas quais a POO e a estrutura comum para subclasses relacionadas.
modelagem estão relacionadas:
Abstração: O que é uma instância?
Encapsulamento:
uma instância é simplesmente um objeto criado a
Herança:
partir de uma classe, representando uma ocorrência
Polimorfismo:
Diagramas de Classes: específica dessa classe no programa.
Em resumo, a POO fornece os conceitos e princípios
necessários para modelar o mundo real em software
de forma eficaz e modular. A modelagem, por sua vez,
utiliza esses conceitos para representar e estruturar
sistemas de software de maneira clara e
compreensível.
FAMETRO ADS 3°
POO com Java
prof: Guilherme Hernandes
Aluna Adila Zaira Oliveira

1. Crie uma classe aluno que contenha nome, n1,n2,


public class AlunoSuperior extends Aluno {
media e status. A média é a soma das duas notas private double n3;
e status é 6 até 10 de média, Status Aprovado. private double n4;
Entre 4 e 5.9 o Status é em recuperação ou
public AlunoSuperior(String nome, double n1, double n2, double n3,
reprovado. Além disso,uma segunda classe deve double n4) {
ser criada Aluno_Técnico e possui uma nota n3, e super(nome, n1, n2);
this.n3 = n3;
a media é por essas 3 notas. Outra Classe deve this.n4 = n4;
ser criada, Aluno_Superior que possue 4 notas e calcularMedia();
o status é só aprovado ou reprovado. calcularStatus();
}
public class Aluno {
private String nome;
private double n1; protected void calcularMedia() {
private double n2; this.media = (getN1() + getN2() + n3 + n4) / 4;
private double media; }
private String status;

public Aluno(String nome, double n1, double n2) {


this.nome = nome; 2- Desenvolva o codigo de teste e instancie os
this.n1 = n1; objetos para testar a questão anterior :
this.n2 = n2;
calcularMedia();
calcularStatus();
public class TesteAlunos {
} public static void main(String[] args) {
// Testando a classe Aluno
private void calcularMedia() {
this.media = (n1 + n2) / 2; Aluno aluno1 = new Aluno("João", 7, 8);
} System.out.println("Aluno: " +
private void calcularStatus() {
aluno1.getNome() + ", Média: " +
if (media >= 6 && media <= 10) { aluno1.getMedia() + ", Status: " +
status = "Aprovado";
aluno1.getStatus());
} else if (media >= 4 && media < 6) {
status = "Recuperação";
} else { // Testando a classe AlunoTecnico
status = "Reprovado";
}
AlunoTecnico alunoTecnico1 = new
} AlunoTecnico("Maria", 5, 6, 7);
System.out.println("Aluno Técnico: " +
public String getStatus() {
return status; alunoTecnico1.getNome() + ", Média: " +
} alunoTecnico1.getMedia() + ", Status: " +
}
alunoTecnico1.getStatus());
public class AlunoTecnico extends Aluno {
private double n3;
// Testando a classe AlunoSuperior
public AlunoTecnico(String nome, double n1, double n2, AlunoSuperior alunoSuperior1 = new
double n3) { AlunoSuperior("Pedro", 6, 6, 6, 6);
super(nome, n1, n2);
this.n3 = n3;
System.out.println("Aluno Superior: " +
calcularMedia(); alunoSuperior1.getNome() + ", Média: " +
calcularStatus();
alunoSuperior1.getMedia() + ", Status: " +
}
alunoSuperior1.getStatus());
@Override }
protected void calcularMedia() {
this.media = (getN1() + getN2() + n3) / 3;
}
}
}
FAMETRO ADS 3°
POO com Java
prof: Guilherme Hernandes
Aluna Adila Zaira Oliveira

1. Crie uma classe aluno que contenha nome, n1,n2, // Método para calcular a médiaprivate void calcularMedia() {
media = (nota1 + nota2 + nota3) / 3.0;
media e status. A média é a soma das duas notas
}
e status é 6 até 10 de média, Status Aprovado.
Entre 4 e 5.9 o Status é em recuperação ou // Método para definir o status do alunoprivate void
reprovado. Além disso,uma segunda classe deve definirStatus() {
ser criada Aluno_Técnico e possui uma nota n3, e if (media >= 6.0) {
status = "APROVADO";
a media é por essas 3 notas. Outra Classe deve
} else if (media >= 4.0) {
ser criada, Aluno_Superior que possue 4 notas e status = "EM RECUPERAÇÃO";
o status é só aprovado ou reprovado. } else {
status = "REPROVADO";
public class Aluno {
private String nome; }
private double n1; }
private double n2;
private double media; // Getterspublic double getMedia() {
private String status;
return media;
public Aluno(String nome, double n1, double n2) { }
this.nome = nome;
this.n1 = n1; public String getStatus() {
this.n2 = n2; return status;
calcularMedia();
}
calcularStatus();
}
// Outros getters e setters conforme necessário
private void calcularMedia() { }
this.media = (n1 + n2) / 2; javaCopy code
}
// Classe SistemaEscolarimport java.util.ArrayList;
private void calcularStatus() { import java.util.List;
if (media >= 6 && media <= 10) {
status = "Aprovado"; public class SistemaEscolar {
} else if (media >= 4 && media < 6) { private List<Aluno> alunos;
status = "Recuperação";
} else {// Classe Aluno
public class Aluno { // Construtorpublic SistemaEscolar() {
private int matricula; alunos = new ArrayList<>();
private String nome; }
private String endereco;
private String telefone;
// Método para adicionar um aluno ao sistemapublic void
private String curso;
private double nota1; adicionarAluno(Aluno aluno) {
private double nota2; alunos.add(aluno);
private double nota3; }
private double media;
private String status;
// Método para calcular a média de todos os alunospublic
// Construtor
void calcularMedias() {
public Aluno(int matricula, String nome, String endereco, String telefone, for (Aluno aluno : alunos) {
String curso, double nota1, double nota2, double nota3) { aluno.calcularMedia();
this.matricula = matricula; aluno.definirStatus();
this.nome = nome;
}
this.endereco = endereco;
this.telefone = telefone;
}
this.curso = curso;
this.nota1 = nota1;
this.nota2 = nota2;
this.nota3 = nota3;
calcularMedia();
definirStatus();
}
FAMETRO ADS 3°
POO com Java
prof: Guilherme Hernandes
Aluna Adila Zaira Oliveira

Com essa estrutura, você pode criar objetos Aluno, adicioná-


los ao SistemaEscolar e calcular as médias e status de todos
os alunos. Por exemplo:
javaCopy code
public class Main {
public static void main(String[] args) {
Aluno aluno1 = new Aluno(1, "João", "Rua A",
"123456789", "Engenharia", 7.5, 8.0, 6.5);
Aluno aluno2 = new Aluno(2, "Maria", "Rua B",
"987654321", "Medicina", 5.0, 4.5, 6.0);

SistemaEscolar sistema = new SistemaEscolar();


sistema.adicionarAluno(aluno1);
sistema.adicionarAluno(aluno2);

sistema.calcularMedias();

for (Aluno aluno : sistema.getAlunos()) {


System.out.println("Nome: " + aluno.getNome());
System.out.println("Média: " + aluno.getMedia());
System.out.println("Status: " + aluno.getStatus());
System.out.println();
}
}
}
POO com Java
prof: Guilherme Hernandes
FAMETRO ADS 3°
Aluna Adila Zaira Oliveira

1. Escreva um código em Java que leia o nome,


endereço, renda e bairro de uma pessoa física e
double impostoPessoaFisica =
de uma pessoa jurídica, calcule o imposto de calcularImposto(rendaPessoaFisica);
renda para cada uma delas de acordo com as double impostoPessoaJuridica =
faixas de renda especificadas, e exiba o nome, calcularImposto(rendaPessoaJuridica);
CPF/CNPJ, endereço, bairro e imposto de renda a
System.out.println("\nImposto de Renda a ser pago:");
ser pago para cada uma das entidades.
System.out.println("Pessoa Física:");
public class CalculoImposto {
System.out.println("Nome: " + nomePessoaFisica);
System.out.println("Endereço: " + enderecoPessoaFisica);
public static void main(String[] args) { System.out.println("Bairro: " + bairroPessoaFisica);
Scanner scanner = new Scanner(System.in); System.out.println("Imposto de Renda: R$ " +
impostoPessoaFisica);
System.out.println("Digite os dados da pessoa
física:"); System.out.println("\nPessoa Jurídica:");
System.out.print("Nome: "); System.out.println("Nome: " + nomePessoaJuridica);
System.out.println("Endereço: " + enderecoPessoaJuridica);
String nomePessoaFisica = scanner.nextLine();
System.out.println("Bairro: " + bairroPessoaJuridica);
System.out.print("Endereço: ");
System.out.println("Imposto de Renda: R$ " +
String enderecoPessoaFisica = scanner.nextLine(); impostoPessoaJuridica);
System.out.print("Bairro: ");
String bairroPessoaFisica = scanner.nextLine(); scanner.close();
System.out.print("Renda (em R$): "); }
double rendaPessoaFisica = scanner.nextDouble();
public static double calcularImposto(double renda) {
System.out.println("\nDigite os dados da pessoa double imposto = 0;
jurídica:");
if (renda <= 2000) {
scanner.nextLine(); // Consumir a quebra de linha
imposto = 0;
pendente } else if (renda <= 5000) {
System.out.print("Nome: "); imposto = renda * 0.05;
String nomePessoaJuridica = scanner.nextLine(); } else {
System.out.print("Endereço: "); imposto = renda * 0.10;
String enderecoPessoaJuridica = }
scanner.nextLine();
System.out.print("Bairro: "); return imposto;
}
String bairroPessoaJuridica = scanner.nextLine();
System.out.print("Renda (em R$): ");
double rendaPessoaJuridica =
scanner.nextDouble();

Você também pode gostar