Você está na página 1de 12

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO

CURSO DE ENGENHARIA DE PRODUÇÃO DISCIPLINA


PROGRAMAÇÃO DE COMPUTADORES
DOCENTE: WELLIANA BENEVIDES RAMALHO
DISCENTE: ANDRÉ TRAJANO MENDES PEDROZA

ATIVIDADEAVALIATIVA– UNIDADE II

1. O que são modificadores de acesso em Java?

Os modificadores de acesso são palavras-chave na linguagem Java. Eles servem para definir a
visibilidade que determinada classe ou membro terá diante das outras. Visibilidade neste caso tem o
mesmo significado que acesso, pois se não está visível não pode ser acessado.
Em Java, possuímos quatro modificadores de acesso:
• Public:
A classe pode ser instanciada por qualquer outra classe,
Atributos e métodos são acessíveis (leitura, escrita) por objetos de qualquer classe.
• Private:
Não se aplica a classes,
Atributos só podem ser acessados por objetos da mesma classe,
Métodos só podem ser chamados por métodos da própria classe.
• Protected:
Não se aplica a classes,
Atributos e métodos são acessíveis dentro da própria classe, das subclasses edas
classes que façam parte do mesmo pacote.
• Default:
Classe é visível somente por classes do mesmo pacote,
Atributos e métodos são acessíveis somente dentro das classes que pertencemao
mesmo pacote.

2. Qual é a diferença entre public, private e protected em Java?


Public: deixa visível tudo onde ele está aplicado para todas as classes em qualquerpacote.
Private deixa tudo invisível a tudo que está fora da classe.
Protected deixa visível para todas as classes dentro do mesmo pacote.

3. O que é encapsulamento em Java?

Encapsulamento vem de encapsular, que em programação orientada a objetos significa separar o


programa em partes, o mais isolado possível. A idéia é tornar o software mais flexível, fácil de modificar
e de criar novas implementações.

O encapsulamento que é dividido em dois níveis:


Nível de classe: Quando determinamos o acesso de uma classe inteira.
Nível de membro: Quando determinamos o acesso de atributos ou métodos de umaclasse.
4. Qual é a importância do encapsulamento em Java?

O Encapsulamento serve para controlar o acesso aos atributos e métodos de uma classe. É
uma forma eficiente de proteger os dados manipulados dentro da classe, além de determinar
onde esta classe poderá ser manipulada.

5. Qual é o modificador de acesso mais restritivo em Java?


a) public
b) protected
c) default
d) private

6. Pode-se definir encapsulamento em Java como:


a) Uma técnica para tornar uma classe abstrata
b) Uma técnica para criar classes internas em Java
c) Uma técnica para proteger os membros de uma classe e controlar seu acesso
d) Uma técnica para criar interfaces em Java

7. Qual é o objetivo dos modificadores de acesso em Java?


a) Controlar a visibilidade dos membros de uma classe
b) Definir a implementação de uma interface em Java
c) Criar classes filhas em Java
d) Permitir a criação de classes abstratas em Java

8. Quais são os modificadores de acesso em Java?


a) public, protected, default e internal
b) public, private, protected e default
c) private, protected, final e static
d) public, final, static e synchronized

9. O que é herança em Java?


a) Uma técnica para criar interfaces em Java
b) Uma técnica para criar classes abstratas em Java
c) Uma técnica para reutilizar código e criar uma nova classe a partir de uma classe existente
d) Uma técnica para proteger os membros de uma classe e controlar seu acesso
10. Relacione a definição apresentada com os conceitos de orientação a objetos.

a) Se trata de um dos elementos que adicionam segurança à aplicação em uma programação


orientada a objetos pelo fato de esconder as propriedades, criando uma espécie de caixa
preta.
Encapsulamento.
b) representa um conjunto de objetos com características afins.
Classe.
c) é uma técnica da programação orientada a objetos que evita o acesso direto às
propriedades de um objeto.
Encapsulamento.
d) mecanismo pelo qual uma classe pode estender outra classe, aproveitando seus
comportamentos.
Henrança.
e) tem a função de definir os atributos e os comportamentos expostos pelo objeto.
Classe.
f) um princípio de orientação a objetos que permite que classes compartilhem atributos e
métodos. Utilizada para reaproveitar código ou comportamento generalizado ou
especializar operações ou atributos.
Henrança.

11. A Programação Orientada a Objetos - POO tem alguns mecanismos para garantir maior
segurança no código. Mais especificamente, nos casos dos atributos de classes, a
recomendação é utilizar a visibilidade private para os atributos de uma classe. Assim,
considerando que os atributos de uma classe tenham sido criados com a visibilidade private,
a) atributos e métodos são acessíveis somente dentro das classes que pertençam ao mesmo
pacote.
b) aqueles que tenham acesso à classe terão acesso também a qualquer membro.
c) o acesso aos atributos dessa classe deve ser feito somente por operações definidas na
mesma classe que contêm os atributos desejados.
d) atributos e métodos são acessíveis dentro da própria classe, das subclasses e das classes
que façam parte do mesmo pacote.
e) a classe pode ser instanciada por qualquer outra classe.

12.Crie a classe Veiculo com 3 atributos, dos quais apenas suas subclasses podem ter
acesso, e com 2 métodos. Crie as classes Moto, Carro e Ônibus analisando e
estabelecendo relações de herança entre as classes. Para cada classe, crie, pelo menos
dois atributos e dois métodos específicos a cada uma. Além disso, crie os getters e setters
para cada atributo das subclasses.

public class Veiculo {


protected String marca;
protected String modelo;
protected int ano;

public void ligar() {


System.out.println("Veículo ligado.");
}

public void desligar() {


System.out.println("Veículo desligado.");
}
}

Nesse código criei a classe Veiculo com 3 atributos protegidos marca, modelo e ano, que
só podem ser acessados pelas subclasses de Veiculo.Também defini dois métodos
simples, ligar e desligar, que apenas imprimem mensagens indicando o status do veículo.

public class Veiculo {


protected String marca;
protected String modelo;
protected int ano;

public void ligar() {


System.out.println("Veículo ligado.");
}

public void desligar() {


System.out.println("Veículo desligado.");
}

// getters e setters para marca, modelo e ano


public String getMarca() {
return marca;
}

public void setMarca(String marca) {


this.marca = marca;
}

public String getModelo() {


return modelo;
}

public void setModelo(String modelo) {


this.modelo = modelo;
}

public int getAno() {


return ano;
}

public void setAno(int ano) {


this.ano = ano;
}
}

public class Moto extends Veiculo {


private int cilindradas;
private boolean partidaEletrica;

public void empinar() {


System.out.println("Moto empinando...");
}

public void derrapar() {


System.out.println("Moto derrapando...");
}

// getters e setters para cilindradas e partidaEletrica


public int getCilindradas() {
return cilindradas;
}

public void setCilindradas(int cilindradas) {


this.cilindradas = cilindradas;
}

public boolean isPartidaEletrica() {


return partidaEletrica;
}

public void setPartidaEletrica(boolean partidaEletrica) {


this.partidaEletrica = partidaEletrica;
}
}

public class Carro extends Veiculo {


private int potencia;
private int capacidadePortaMalas;

public void acelerar() {


System.out.println("Carro acelerando...");
}

public void frear() {


System.out.println("Carro freando...");
}

// getters e setters para potencia e capacidadePortaMalas


public int getPotencia() {
return potencia;
}

public void setPotencia(int potencia) {


this.potencia = potencia;
}

public int getCapacidadePortaMalas() {


return capacidadePortaMalas;
}

public void setCapacidadePortaMalas(int capacidadePortaMalas) {


this.capacidadePortaMalas = capacidadePortaMalas;
}
}

public class Onibus extends Veiculo {


private int capacidadePassageiros;
private boolean arCondicionado;

public void subirPassageiros() {


System.out.println("Ônibus subindo passageiros...");
}

public void descerPassageiros() {


System.out.println("Ônibus descendo passageiros...");
}

// getters e setters para capacidadePassageiros e arCondicionado


public int getCapacidadePassageiros() {
return capacidadePassageiros;
}

public void setCapacidadePassageiros(int capacidadePassageiros) {


this.capacidadePassageiros = capacidadePassageiros;
}

public boolean isArCondicionado() {


return arCondicionado;
}

public

13. Implemente um sistema em Java de acordo com a modelagem a seguir:


package produto;

public class Produto {


private int codigo;
private String descricao; private double preco; private double qtdEstoque; private String
marca;
public Produto (int codigo, String descricao, double preco, double qtdEstoque, String
marca){
this.codigo = codigo; this.descricao = descricao; this.preco = preco; this.qtdEstoque =
qtdEstoque; this.marca = marca;

public void vender (double qtdpedida){


if (qtdpedida <= qtdEstoque){ qtdEstoque = qtdpedida;
}else{
System.out.println(" Estoque indisponivel.");
}}
public void trocar (double qtdpedida){ qtdEstoque += qtdpedida;
}
public void comprar( double qtdpedida){
qtdEstoque += qtdpedida; }
public int getcodigo() {
return codigo; }
public void setcodigo(int codigo) { this.codigo = codigo;
}
public String getdescricao() { return descricao;
}
public void setDescricao(String descricao) {
this.descricao = descricao; }
public double getpreco() {
return preco; }
public void setpreco(double preco) {
this.preco = preco; }
public double getqtdEstoque() {
return qtdEstoque; }
public void setqtdEstoque(double qtdEstoque) { this.qtdEstoque = qtdEstoque;
}
public String getmarca() {
return marca; }
public void setmarca(String marca) {
this.marca = marca; }
}

package produto;

public class Impressora extends Produto {


private String tipo;
private int velocidadeImpressao; private String modelo;
public Impressora(int codigo, String descricao, double preco, double qtdEstoque, String
marca, String tipo, int velocidadeImpressao, String modelo) {
super(codigo, descricao, preco, qtdEstoque, marca); this.tipo = tipo;
this.velocidadeImpressao = velocidadeImpressao; this.modelo = modelo;
}
public void imprimir() {
System.out.println(" Sua impressao esta sendo impressa.");
}
return tipo; }
public void settipo(String tipo) {
this.tipo = tipo; }
public int getvelocidadeImpressao() {
return velocidadeImpressao;
}
public void setvelocidadeImpressao(int velocidadeImpressao) { this.velocidadeImpressao =
velocidadeImpressao;
}
public String getmodelo() {
return modelo;
}
public void setmodelo(String modelo) { this.modelo = modelo;
}
}

package produto;

public class Notebook extends Produto { private String processador;


private int memoria;
private String placaVideo;
public String gettipo() {

private double tamTela;


public Notebook (int codigo, String descricao, double preco, double qtdEstoque, String
marca, String processador, int memoria, String placaVideo, double tamTela){
super (codigo, descricao, preco, qtdEstoque, marca); this.processador = processador;
this.memoria = memoria;
this.placaVideo = placaVideo;
this.tamTela = tamTela; }
public void iniciarNot (){
System.out.println(" O notebook esta sendo iniciado.");
}
public void suspenderNot(){
System.out.println(" O notebook esta entrando em suspensao."); }
public String getprocessador() {
return processador; }
public void setprocessador(String processador) {
this.processador = processador; }
public int getmemoria() {
return memoria; }
public void setmemoria(int memoria) { this.memoria = memoria;
}
public String getplacaVideo() {
return placaVideo; }
public void setplacaVideo(String placaVideo) {
this.placaVideo = placaVideo; }
public double gettamTela() {
return tamTela; }
public void settamTela(double tamTela) { this.tamTela = tamTela;
}
}
package produto;

public class dataShow extends Produto { private int luminosidade;


private String resolucao;
private int tamImagem;
public dataShow(int codigo, String descricao, double preco, double qtdEstoque, String marca,
int luminosidade, String resolucao, int tamImagem) {
super(codigo, descricao, preco, qtdEstoque, marca); this.luminosidade = luminosidade;
this.resolucao = resolucao;
this.tamImagem = tamImagem;
}
public void ligar() {
System.out.println("O data show ta ligado e pronto pra projetar."); }
public void projetar() {
System.out.println(" Imagem projetada com sucesso."); }
public int getluminosidade() {
return luminosidade; }
public void setluminosidade(int luminosidade) { this.luminosidade = luminosidade;
}
public String getresolucao() { return resolucao;
}
public void setresolucao(String resolucao) { this.resolucao = resolucao;
}
public int gettamImagem() { return tamImagem;
}
public void settamImagem(int tamImagem) {
this.tamImagem = tamImagem; }
}

14. Desenvolva um programa que leia do usuário o tempo em segundos e escreva em


horas,minutos e segundos. Para leitura pesquise e utilize a classe Scanner do Java.
import java.util.Scanner;

public class ConversaoTempo {


public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);

// Lê o valor em segundos informado pelo usuário


System.out.print("Informe o tempo em segundos: ");
int segundos = scanner.nextInt();

// Calcula as horas, minutos e segundos


int horas = segundos / 3600;
int minutos = (segundos % 3600) / 60;
segundos = segundos % 60;

// Imprime o resultado
System.out.printf("%d:%02d:%02d", horas, minutos, segundos);
}
}

Nesse código, utilizamos a classe Scanner para ler um valor em segundos informado pelo
usuário. Em seguida, dividimos o valor em segundos em horas, minutos e segundos usando
operações matemáticas simples. Por fim, imprimimos o resultado formatado como
horas:minutos:segundos usando o método printf da classe System.
15. Pesquise e descreva o que são vetores em Java. Escreva um programa que crie e
ordene umvetor de 100 números inteiros gerados aleatoriamente.
Vetores são estruturas de dados que armazenam usualmente uma quantidade fixa de
dados de um certo tipo; por esta razão, também são conhecidos como estruturas
homogêneas de dados.

import java.util.Arrays;
import java.util.Random;

public class OrdenacaoVetor {


public static void main(String[] args) {
int[] vetor = new int[100];
Random random = new Random();

// Preenche o vetor com números aleatórios entre 0 e 99


for (int i = 0; i < vetor.length; i++) {
vetor[i] = random.nextInt(100);
}

// Ordena o vetor em ordem crescente


Arrays.sort(vetor);

// Imprime o vetor ordenado


System.out.println(Arrays.toString(vetor));
}
}

Nesse código, criamos um vetor de 100 números inteiros chamado vetor e preenchemos ele com
valores aleatórios entre 0 e 99 usando a classe Random. Em seguida, utilizamos o método sort da
classe Arrays para ordenar o vetor em ordem crescente. Por fim, imprimimos o vetor ordenado usando
o método toString da classe Arrays.

16. Pesquise e descreva a estrutura de repetição do...while em Java.


A estrutura de repetição do/while funciona de maneira análoga como o While. A
estrutura do / while tem seu bloco de instruções executado pelo menos uma vez, então se
a condição ao finaldas instruções for true , o bloco de instruções é executado novamente.

do {
< instruções >
} while(condição);

No código acima, o bloco de instrução do do...while será executado e somente após a execução, a
condição contida na instrução while será verificada.

17. Pesquise e descreva a estrutura de repetição while em Java.


A estrutura while executa um bloco de instruções enquanto uma determinada condição
for verdadeira (true).
while(condição) {
< instruções >
}
No código acima, o bloco de instrução do while será repetido até que esta condição não seja
mais verdadeira.
18. Considere os programas a seguir, que leem um código repetidamente e imprimem o
código lido até que o código lido seja igual a -1. O código -1 não deve ser impresso.
a) Qual das duas soluções é a correta?
A solução 2 é a correta. Ela utiliza a estrutura do-while para executar o código. A estrutura
do-while é semelhante ao while, mas a diferença é que ela executa o loop pelo menos uma
vez, mesmo que a condição de teste seja falsa desde o início. Isso ocorre porque a condição
de teste é verificada no final do loop, depois que o bloco de instruções é executado. Nesse
caso, o programa solicita que o usuário informe um código e o imprime na tela, repetindo
o processo até que o código -1 seja digitado.

b) Como a solução incorreta poderia ser corrigida?


Foi verificado que dentro do loop, nada está sendo feito, então provavelmente esse código
precisa ser complementado com outras instruções. Ajustando o código para que ele
compile corretamente, colocando a abertura do bloco de chaves do loop antes do
fechamento da chaves da main.
Segue código ajustado abaixo:
import java.util.Scanner;
public class Codigo {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
int codigo;
System.out.println("Informe o código: ");
codigo = teclado.nextInt();
while (codigo != -1) {
System.out.println("Código: " + codigo);
System.out.println("Informe o código: ");
codigo = teclado.nextInt();
}
}
}

Neste caso, o programa irá imprimir o código digitado pelo usuário e solicitará que
ele digite um novo código até que o código digitado seja -1, momento em que o loop será
interrompido e o programa será finalizado.

Após a correção os dois códigos estão corretos e têm a mesma funcionalidade, que
é solicitar que o usuário informe um código e imprimir o código na tela, repetindo o processo
até que o código -1 seja digitado. A principal diferença entre as duas versões é que o trecho
de código com a estrutura while testa a condição de teste no início do loop, enquanto o
trecho de código com a estrutura do-while testa a condição de teste no final do loop. Isso
significa que o bloco de código dentro do loop é executado pelo menos uma vez no caso do
do-while. Ambas as versões são válidas e funcionam corretamente para o propósito de
solicitar um código e repetir o processo até que o código -1 seja digitado.
Solução 1

import java.util.Scanner;
public class Codigo {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
int codigo;
System.out.println("Informe o código: ");
codigo = teclado.nextInt();
while (codigo != -1) {
System.out.println("Código: " + codigo);
System.out.println("Informe o código: ");
codigo = teclado.nextInt();
}
}
}

Solução 2
import java.util.Scanner;
public class Codigo {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
int codigo;
do {
System.out.print("Informe o código: ");
codigo = teclado.nextInt();
System.out.println("Código: " + codigo);
} while (codigo != -1);

Bons EstudoS

Você também pode gostar