Escolar Documentos
Profissional Documentos
Cultura Documentos
------------------------------------------------------------------------------------
Os três níveis de acesso de uma classe em linguagens de programação como Java são:
1-Acesso público (public): Uma classe declarada como pública pode ser acessada de qualquer lugar,
tanto dentro do mesmo pacote quanto em pacotes diferentes. Isso significa que outras classes e objetos
podem criar instâncias dessa classe, chamar seus métodos e acessar seus membros sem restrições.
// código da classe
2-Acesso protegido (protected): Uma classe com acesso protegido só pode ser acessada por outras
classes no mesmo pacote ou por subclasses dessa classe em qualquer pacote. Isso permite que as
subclasses herdem os membros e métodos da classe protegida e os utilizem, enquanto outras classes
fora do pacote não têm acesso direto a eles.
// código da classe
3-Acesso padrão (padrão ou package-private): Se uma classe não possui um modificador de acesso
explícito, ela é considerada com acesso padrão. Nesse caso, a classe pode ser acessada apenas por
outras classes dentro do mesmo pacote. Classes em pacotes diferentes não têm acesso direto a ela, a
menos que sejam subclasses dessa classe.
class MinhaClasse {
// código da classe
------------------------------------------------------------------------------------
Overloading (sobrecarga) e Override (sobreposição) são conceitos importantes em programação
orientada a objetos. Ambos envolvem a redefinição de métodos em classes, mas com finalidades
diferentes.
Overloading (sobrecarga):
A sobrecarga ocorre quando uma classe possui vários métodos com o mesmo nome, mas com
parâmetros diferentes. Isso permite que um método seja usado com diferentes combinações de
argumentos, fornecendo flexibilidade ao programador.
int resultado = a + b;
double resultado = a + b;
No exemplo acima, a classe "MinhaClasse" possui dois métodos chamados "somar", um que recebe dois
inteiros e outro que recebe dois números de ponto flutuante. Ambos os métodos têm o mesmo nome,
mas aceitam tipos diferentes de parâmetros. Assim, podemos chamar o método "somar" passando
inteiros ou números de ponto flutuante, e o compilador selecionará o método apropriado com base nos
argumentos fornecidos.
Override (sobreposição):
A sobreposição ocorre quando uma classe herda um método de sua classe pai (superclasse) e redefine
esse método em sua própria implementação. A finalidade da sobreposição é fornecer uma
implementação personalizada do método na classe filha (subclasse) que substitua o comportamento da
classe pai.
@Override
No exemplo acima, a classe "Cachorro" herda o método "fazerSom()" da classe "Animal" e o redefine
para imprimir a mensagem "O cachorro late". A anotação @Override é usada para indicar que o método
está sendo sobreposto, o que ajuda a detectar erros de digitação ou assinatura do método.
3 – O que é uma interface? O que ela define e o que ela não define? O
Método implements: comente sua relação com classes concretas e
abstratas.
------------------------------------------------------------------------------------
Uma interface em programação orientada a objetos é uma coleção de métodos abstratos (sem
implementação) e constantes que definem um contrato para as classes que a implementam. Ela define
os métodos que uma classe deve implementar, sem especificar como eles devem ser implementados.
Uma interface pode ser vista como um contrato que uma classe concorda em cumprir ao implementar
essa interface. Ela define o que uma classe pode fazer, mas não como ela faz. Dessa forma, as interfaces
fornecem um meio de definir comportamentos esperados sem se preocupar com a implementação
interna de cada classe.
Métodos abstratos: São métodos sem implementação definidos na interface. Eles são declarados, mas
não são implementados. As classes que implementam a interface devem fornecer a implementação
desses métodos.
Constantes: São constantes (variáveis finais) que podem ser usadas pelas classes que implementam a
interface.
Métodos com implementação: Uma interface não pode fornecer implementações de métodos. Ela
apenas define a assinatura (nome, parâmetros e tipo de retorno) dos métodos que devem ser
implementados pelas classes.
Variáveis de instância: Interfaces não podem ter variáveis de instância. Elas só podem ter constantes
(variáveis finais) declaradas.
A palavra-chave "implements" é usada em uma classe para indicar que ela está implementando uma ou
várias interfaces. Uma classe concreta (ou classe normal) deve fornecer implementações para todos os
métodos abstratos definidos na interface. A classe concreta deve seguir o contrato definido pela
interface e fornecer a lógica de implementação para os métodos abstratos.
4 – Cite e descreva Os conceitos de:
• Herança:
• Associação
• Agregação
• Composição
• Encapsulamento
• Polimorfismo
------------------------------------------------------------------------------------
Herança:
A herança é um conceito fundamental na programação orientada a objetos, que permite que uma classe
herde características (atributos e métodos) de outra classe, chamada classe pai ou superclasse. A classe
que herda é chamada de classe filha ou subclasse. A herança permite que a classe filha reutilize e
estenda a funcionalidade da classe pai. Isso ajuda a promover a reutilização de código, a estruturação
hierárquica e a modelagem de relacionamentos "é um".
Associação:
A associação é um relacionamento entre classes onde uma classe faz referência a outra, indicando que
elas estão relacionadas de alguma forma. Essa relação pode ser de dependência, onde uma classe usa
objetos de outra classe como parte de suas operações, mas sem uma dependência direta e permanente.
A associação também pode ser de agregação ou composição (descritas abaixo), onde uma classe possui
uma instância de outra classe como parte de sua estrutura.
Agregação:
A agregação é uma forma de associação que indica que uma classe possui uma relação "tem um" com
outra classe. Nesse tipo de relacionamento, uma classe é composta por outras classes que podem existir
independentemente dela. A classe que contém a instância de outra classe é chamada de classe
agregadora e a classe contida é chamada de classe agregada. A agregação é uma relação de todo-parte,
onde a parte pode ser compartilhada por várias classes agregadoras.
Composição:
A composição é uma forma mais forte de associação que também indica uma relação de "todo-parte".
Nesse tipo de relacionamento, a parte (classe agregada) faz parte essencial da estrutura do todo (classe
agregadora). Em outras palavras, a classe agregada não pode existir sem a classe agregadora. A
composição implica uma relação de dependência forte e duradoura entre as classes envolvidas. Quando
a classe agregadora é destruída, as instâncias da classe agregada também são destruídas.
Encapsulamento:
O encapsulamento é um princípio que combina dados e métodos relacionados em uma única unidade,
chamada de classe, e oculta os detalhes internos dessa unidade do mundo externo. Isso significa que os
atributos de uma classe são protegidos de acesso direto e só podem ser manipulados por métodos
definidos na própria classe. O encapsulamento promove a segurança, a modularidade e a reutilização do
código, permitindo que as classes controlem o acesso aos seus membros.
Polimorfismo:
------------------------------------------------------------------------------------
CREATE DATABASE MANUTENCAO;
------------------------------------------------------------------------------------
CREATE TABLE Usuarios (
id INT,
nome VARCHAR(100),
cpf VARCHAR(11),
supervisor_id INT,
);
id INT,
descricao VARCHAR(100),
);
id INT,
usuario_id INT,
servico_id INT,
data_comprovante DATE,
);
CREATE TABLE Oficinas (
id INT,
nome VARCHAR(100),
endereco VARCHAR(100),
);
Ex,.: INSERT INTO Empregados VALUES (1, “José Silva”, 1500, 1);
------------------------------------------------------------------------------------
INSERT INTO Usuarios VALUES (1, 'José Silva', '12345678901', 1);
8 – Selecione:
------------------------------------------------------------------------------------
a) Nome e CPF do supervisor que responde pelo usuário "perigorock":
FROM Usuarios u
c) SELECT v.validade_extintor
FROM Veiculos v
d) SELECT SUM(s.preco)
FROM Servicos s
------------------------------------------------------------------------------------
UPDATE Usuarios
WHERE id = 171;
------------------------------------------------------------------------------------
DELETE FROM Rotas
------------------------------------------------------------------------------------
PARTE 2 DO TRABALHO--
PARTE 3 DO TRABALHO--
Herança:
------------------------------------------------------------------------------------
class Animal {
this.nome = nome;
}
public void comer() {
super(nome);
System.out.println("Au au!");
animal.comer();
cachorro.comer();
cachorro.latir();
Associação:
this.motor = motor;
class Motor {
this.cilindradas = cilindradas;
Agregação:
public Departamento() {
funcionarios.add(funcionario);
class Funcionario {
this.nome = nome;
departamento.adicionarFuncionario(funcionario1);
departamento.adicionarFuncionario(funcionario2);
Composição:
------------------------------------------------------------------------------------
class Casa {
public Casa() {
class Quarto {
// Implementação do quarto
Encapsulamento:
------------------------------------------------------------------------------------
class ContaBancaria {
saldo += valor;
saldo -= valor;
return saldo;
conta.depositar(100.0);
conta.sacar(50.0);
------------------------------------------------------------------------------------
abstract class Animal {
@Override
System.out.println("Au au!");
@Override
System.out.println("Au au!");
}
class Gato extends Animal {
@Override
System.out.println("Miau!");
animal1.fazerSom();
animal2.fazerSom();
@Override
System.out.println("Miau!");
animal1.fazerSom();
animal2.fazerSom();