Você está na página 1de 17

Exercício de Revisão da Questão 5 – N2 – Técnicas Avançadas de Programação

1) Abaixo o código criado pelo LUCAS MORGUETO SOUSA. Qual o benefício de definir um
método construtor?

CÓDIGO PESSOA CLASS:


public class Pessoa {
private String nome;
private String endereco;
public Pessoa(String nome, String cpf) { Método Construtor
this.nome = nome;
}
public Pessoa(String nome, String cpf, String cnh) {
this.nome = nome;
}
public Pessoa(String nome, String cpf, int codCliente) {
this.nome = nome;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
}

CÓDIGO PESSOAFISICA CLASS:


public class PessoaFisica extends Pessoa {
private String cpf;
private int codCliente;
public PessoaFisica(String nome, String cpf, int codCliente) { Método Construtor
super(nome, cpf, codCliente);
this.cpf = cpf; this.codCliente = codCliente;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public int getCodCliente() {
return codCliente;
}
public void setCodCliente(int codCliente) {
this.codCliente = codCliente;
}
}

CÓDIGO PESSOAJURIDICA CLASS:


public class PessoaJuridica extends Pessoa {
private String cnpj;
private int codCliente;
public PessoaJuridica(String nome, String cnpj, int codCliente) { Método Construtor
super(nome, cnpj, codCliente);
this.cnpj = cnpj;
this.codCliente = codCliente;
}
public String getCnpj() {
return cnpj;
}
public void setCnpj(String cnpj) {
this.cnpj = cnpj;
}
public int getCodCliente() {
return codCliente;
}
public void setCodCliente(int codCliente) {
this.codCliente = codCliente;
}
}

CÓDIGO MOTORISTA CLASS:


public class Motorista extends Pessoa{
private String cpf;
private String cnh;
public Motorista(String nome, String cpf, String cnh) { Método Construtor
super(nome, cpf, cnh);
this.cpf = cpf;
this.cnh = cnh;
}
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public String getCnh() {
return cnh;
}
public void setCnh(String cnh) {
this.cnh = cnh;
}
}

CÓDIGO TESTEPESSOA CLASS:


public class TestePessoa {
public static void main(String[] args) {
Motorista m1 = new Motorista("Lucas Morgueto Sousa", "939.996.490-
62", "96033938000187");
System.out.println("Nome: " + m1.getNome() + "\nCPF: " + m1.getCpf() +
"\nCNPJ: " + m1.getCnh());
}
}

RESULTADO DO CONSOLE:
Nome: Lucas Morgueto Sousa
CPF: 939.996.490-62
CNPJ: 96033938000187

2) Abaixo o código criado pelo KAIQUE ANDRADE DOS SANTOS. Qual a utilidade de se
definir os métodos set como ABSTRACT?

package empresadetransporte;
public abstract class Pessoa { Qual o benefício de definir classe abstrata?
private String nome;
private String endereco;
public void setNome(String nome) {
this.nome = nome;
}
public String getNome() {
return nome;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public String getEndereco() {
return endereco;
}
public abstract void setCpf(String cpf); MÉTODO abstrato
public abstract String getCpf(); MÉTODO abstrato
public abstract void setCodCliente(int cod); MÉTODO abstrato
public abstract int getCodCliente(); MÉTODO abstrato
}

package empresadetransporte;
public class PessoaJuridica extends Pessoa {
private String cnpj;
private int codCliente;
@Override
public void setCpf(String cpf) { MÉTODO NÃO SE APLICA A PessoaJuridica
// TODO Auto-generated method stub NÃO FEZ CÓDIGO
}
@Override public String getCpf() { MÉTODO NÃO SE APLICA A PessoaJuridica
// TODO Auto-generated method stub return null; NÃO FEZ CÓDIGO
}
@Override QUAL BENEFÍCIO DA SOBRESCRITA ?
public void setCodCliente(int cod) {
this.codCliente = cod;
}
@Override QUAL BENEFÍCIO DA SOBRESCRITA ?
public int getCodCliente() {
return codCliente;
}
}

package empresadetransporte;
public class PessoaFisica extends Pessoa {
private String cpf;
private int codCliente;
@Override QUAL BENEFÍCIO DA SOBRESCRITA ?
public void setCpf(String cpf) {
this.cpf = cpf;
}
@Override QUAL BENEFÍCIO DA SOBRESCRITA ?
public String getCpf() {
return cpf;
}
@Override QUAL BENEFÍCIO DA SOBRESCRITA ?
public void setCodCliente(int cod) {
this.codCliente = cod;
}
@Override QUAL BENEFÍCIO DA SOBRESCRITA ?
public int getCodCliente() {
return codCliente;
}
}

package empresadetransporte;
public class Motorista extends Pessoa{
private String cpf;
private String cnh;
@Override
public void setCpf(String cpf) { QUAL BENEFÍCIO DA SOBRESCRITA ?
this.cpf = cpf;
}
@Override QUAL BENEFÍCIO DA SOBRESCRITA ?
public String getCpf() {
return cpf;
}
public void setCnh(String cnh) {
this.cnh = cnh;
}
public String getCnh() {
return cnh;
}
@Override
public void setCodCliente(int cod) { MÉTODO NÃO SE APLICA A Motorista
// TODO Auto-generated method stub NÃO FEZ CÓDIGO
}
@Override
public int getCodCliente() { MÉTODO NÃO SE APLICA A Motorista
// TODO Auto-generated method stub
return 0;
}
}

package empresadetransporte;
public class TestaMotorista {
public static void main(String[] args) {
Motorista m1 = new Motorista();
m1.setNome("João");
System.out.println(m1.getNome());
m1.setEndereco("Rua Matheus Vincente 1443");
System.out.println(m1.getEndereco());
m1.setCpf("76532554826");
System.out.println(m1.getCpf());
m1.setCnh("1221325397");
System.out.println(m1.getCnh());
}
}

Resultado:
João
Rua Matheus Vincente 1443
76532554826
1221325397

3) Abaixo o código criado pelo FILIPE PEREIRA BEZERRA e pela ANA CLARA LIO DO
NASCIMENTO. Qual o benefício do uso de StringBuilder?

abstract class Pessoa {


private String nome;
private String endereco;
public void setNome(String nome) {
this.nome = nome;
}
public String getNome() {
return nome;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public String getEndereco() {
return endereco;
}
}

class PessoaJuridica extends Pessoa {


private String cnpj;
private int codCliente;
public void setCnpj(String cnpj) {
this.cnpj = cnpj;
}
public String getCnpj() {
return cnpj;
}
public void setCodCliente(int codCliente) {
this.codCliente = codCliente;
}
public int getCodCliente() {
return codCliente;
}
}

class PessoaFisica extends Pessoa {


private String cpf;
private int codCliente;
public void setCpf(String cpf) {
this.cpf = cpf;
}
public String getCpf() {
return cpf;
}
public void setCodCliente(int codCliente) {
this.codCliente = codCliente;
}
public int getCodCliente() {
return codCliente;
}
}

class Motorista extends Pessoa {


private String cpf;
private int cnh;
public void setCpf(String cpf) {
this.cpf = cpf;
}
public String getCpf() {
return cpf;
}
public void setCnh(int cnh) {
this.cnh = cnh;
}
public int getCnh() {
return cnh;
}
}

public class TesteMotorista {


public static void main(String[] args) {
Motorista motorista = new Motorista();
motorista.setNome("Filipe Pereira Bezerra");
motorista.setEndereco("Rua Legal, 540");
motorista.setCpf("11122233300");
motorista.setCnh(1234567890);
StringBuilder sb = new StringBuilder();
sb.append("Nome: ").append(motorista.getNome()).append("\n");
sb.append("Endereço: ").append(motorista.getEndereco()).append("\n");
sb.append("CPF: ").append(motorista.getCpf()).append("\n");
sb.append("CNH: ").append(motorista.getCnh()).append("\n");
System.out.println(sb.toString());
}
}

CONSOLE:
Nome: Filipe Pereira Bezerra
Endereço: Rua Legal, 540
CPF: 11122233300
CNH: 1234567890

4) Abaixo o código criado pela JULIANA ALVES DE ARAUJO.

public abstract class Pessoa { Classe abstrata – qual o benefício?


private String nome;
private String endereco;
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public Pessoa(String nome, String endereco) {
super(); Referência a uma Super Classe??
this.nome = nome;
this.endereco = endereco;
}
}
- // - --------------------------------------------------------------------------------------------------------------
public class PessoaFisica extends Pessoa{
private String cpf;
private int codCliente;
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public int getCodCliente() {
return codCliente;
}
public void setCodCliente(int codCliente) {
this.codCliente = codCliente;
}
public PessoaFisica(String nome, String endereco, String cpf, int codCliente) {
super(nome, endereco); Referência a uma Super Classe??
this.cpf = cpf;
this.codCliente = codCliente;
}
}
-//-
---------------------------------------------------------------------------------------------------------------------
--
public class PessoaJuridica extends Pessoa {
private String cnpj;
private int codCliente;
public String getCnpj() {
return cnpj;
}
public void setCnpj(String cnpj) {
this.cnpj = cnpj;
}
public int getCodCliente() {
return codCliente;
}
public void setCodCliente(int codCliente) {
this.codCliente = codCliente;
}
public PessoaJuridica(String nome, String endereco, String cnpj, int codCliente) {
super(nome, endereco); Referência a uma Super Classe??
this.cnpj = cnpj;
this.codCliente = codCliente;
}
}
- / / - --------------------------------------------------------------------------------------------------------------
public class Motorista extends Pessoa {
private String cpf;
private String cnh;
public String getCpf() {
return cpf;
}
public void setCpf(String cpf) {
this.cpf = cpf;
}
public String getCnh() {
return cnh;
}
public void setCnh(String cnh) {
this.cnh = cnh;
}
public Motorista(String nome, String endereco, String cpf, String cnh) {
super(nome, endereco); Referência a uma Super Classe??
this.cpf = cpf;
this.cnh = cnh;
}
}
- / / - -------------------------------------------------------------------------------------------------------------
public class Teste {
public static void main(String[] args) {
Motorista mot1 = new Motorista("Juliana", "Rua Manderá", "1112",
"1171");
System.out.println("Dados do Motorista\n");
System.out.println("Nome: " + mot1.getNome() + "\n" +
"Endereço: " + mot1.getEndereco() + "\n" + "CPF: " + mot1.getCpf() + "\n"
+ "CNH:" + mot1.getCnh());;
}
}
- / / - --------------------------------------------------------------------------------------------------------------
CONSOLE
Dados do Motorista
Nome: Juliana
Endereço: Rua Manderá
CPF: 1112
CNH:1171
5) Abaixo o Código criado por PEDRO ZAMBONI BRANZANI, MOUNIR HENRICO MOURA
SLEIMAN, MARIA VITÓRIA LEMOS ROMANO, JOÃO MARCELLO RAMOS TERRA, MURILO
AZEVEDO DE PAULA E SILVA e ANA CLARA LIO DO NASCIMENTO. Reflita nos
questionamentos feitos abaixo, ao longo do código.

abstract class Pessoa {


protected String nome; Qual o benefício de PROTECTED ou invés de PRIVATE?
protected String endereco
public Pessoa(String nome, String endereco) { Construtor substitui SET?
this.nome = nome;
this.endereco = endereco;
}
public abstract void obterInformacoes(); Qual benefício desse método?
}

class PessoaFisica extends Pessoa { NÃO CRIOU ATRIBUTO CPF


protected int codCliente; Qual o benefício de PROTECTED ou invés de PRIVATE?
public PessoaFisica(String nome, String endereco, int codCliente) {
super(nome, endereco);
this.cpf = cpf;
this.codCliente = codCliente;
}
public void obterInformacoes() {
System.out.println("Nome: " + nome);
System.out.println("Endereço: " + endereco);
System.out.println("Código do Cliente: " + codCliente);
}
}
class PessoaJuridica extends Pessoa {
protected String cnpj; Qual o benefício de PROTECTED ou invés de PRIVATE?
protected int codCliente; Qual o benefício de PROTECTED ou invés de PRIVATE?
public PessoaJuridica(String nome, String endereco, String cnpj, int codCliente) {
super(nome, endereco); Referência a uma Super Classe??
this.cnpj = cnpj;
this.codCliente = codCliente;
}
public void obterInformacoes() {
System.out.println("Nome: " + nome);
System.out.println("Endereço: " + endereco);
System.out.println("CNPJ: " + cnpj);
System.out.println("Código do Cliente: " + codCliente);
}
}
class Motorista extends PessoaFisica { DEVERIA HERDAR DA CLASSE PESSOA
protected String cnh; Qual o benefício de PROTECTED ou invés de PRIVATE?
- NÃO CRIOU ATRIBUTO CNPJ
public Motorista(String nome, String endereco, int codCliente, String cnh) {
super(nome, endereco, cpf, codCliente); Referência a uma Super Classe??
this.cnh = cnh;
}
public void obterInformacoes() {
System.out.println("Nome: " + nome);
System.out.println("Endereço: " + endereco);
System.out.println("Código do Cliente: " + codCliente);
System.out.println("CNH: " + cnh);
}
}

public class TesteMotorista {


public static void main(String[] args) {
Motorista motorista = new Motorista("João", "Rua A, 123", "123456789", 1,
"987654321");
motorista.obterInformacoes();
}
}

6) Abaixo o Código criado por LEONARDO CAPRA MUCCI. Qual a função da referência
SUPER nos construtores?

package ex7;
public class Pessoa {
private String nome;
private String endereco;
public Pessoa(String nome, String endereco) {
this.nome = nome;
this.endereco = endereco;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereço) {
this.endereco = endereço;
}
}
package ex7;
public class PessoaJuridica extends Pessoa {
private String CNPJ;
private int codCliente;
public PessoaJuridica(String nome, String endereco, String CNPJ, int codCliente) {
super(nome, endereco); Referência a uma Super Classe??
this.CNPJ = CNPJ;
this.codCliente = codCliente;
}
public String getCNPJ() {
return CNPJ;
}
public void setCNPJ(String cNPJ) {
CNPJ = cNPJ;
}
public int getCodCliente() {
return codCliente;
}
public void setCodCliente(int codCliente) {
this.codCliente = codCliente;
}
}
package ex7;
public class PessoaFisica extends Pessoa {
private String CPF;
private int CodCliente;
public PessoaFisica(String nome, String endereco, String CPF, int codCliente) {
super(nome, endereco); Referência a uma Super Classe??
this.CPF = CPF;
this.CodCliente = codCliente;
}
public String getCPF() {
return CPF;
}
public void setCPF(String cPF) {
CPF = cPF;
}
public int getCodCliente() {
return CodCliente;
}
public void setCodCliente(int codCliente) {
CodCliente = codCliente;
}
}
package ex7;
public class Motorista extends Pessoa{
private String CPF;
private String CNH;
public Motorista(String nome, String endereco, String CPF, String CNH) {
super(nome, endereco);
this.CPF = CPF;
this.CNH = CNH;
}
public String getCPF() {
return CPF;
}
public void setCPF(String cPF) {
CPF = cPF;
}
public String getCNH() {
return CNH;
}
public void setCNH(String cNH) {
CNH = cNH;
}
}

package ex7;
public class Teste {
public static void main(String[] args) {
Motorista motorista = new Motorista("Leonardo Mucci", "R. Henrique de souza
bayma, 15", "53289606880", "00000000000");
System.out.println("Nome: " + motorista.getNome());
System.out.println("Endereço: " + motorista.getEndereco());
System.out.println("CPF: " + motorista.getCPF());
System.out.println("CNH: " + motorista.getCNH());
}
}

Console:
Nome: Leonardo Mucci
Endereço: R. Henrique de souza bayma, 15
CPF: 53289606880
CNH: 0000000000
7) Abaixo o Código criado por NICOLE DANIEL BIGNATI e MATHEUS BAIRRADA DA SILVA.
Qual a utilidade dos atributos adicionais criados?

package transporte;
public abstract class Pessoa {
private String nome;
private String endereco;
private int codCliente; ATRIBUTO NÃO EXISTENTE
private String cpf; ATRIBUTO NÃO EXISTENTE
public Pessoa(String nome, String endereco, int codCliente, String cpf ) {
this.nome = nome;
this.endereco = endereco;
this.codCliente = codCliente; ATRIBUTO NÃO EXISTENTE
this.cpf = cpf; ATRIBUTO NÃO EXISTENTE
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getEndereco() {
return endereco;
}
public void setEndereco(String endereco) {
this.endereco = endereco;
}
public int getCodCliente() { ATRIBUTO NÃO EXISTENTE
return codCliente;
}
public void setCodCliente(int codCliente) { ATRIBUTO NÃO EXISTENTE
this.codCliente = codCliente;
}
public String getCpf() { ATRIBUTO NÃO EXISTENTE
return cpf;
}
public void setCpf(String cpf) { ATRIBUTO NÃO EXISTENTE
this.cpf = cpf;
}
public abstract void mostraInfos();
}
package transporte;
public class PessoaJuridica extends Pessoa {
private String cnpj;
public PessoaJuridica(String nome, String endereco, int codCliente, String cnpj) {
super(nome, endereco, codCliente, cnpj); CNPJ NÃO É SUPER
this.cnpj = cnpj;
}
public String getCnpj() {
return cnpj;
}
public void setCnpj(String cnpj) {
this.cnpj = cnpj;
}
@Override
public void mostraInfos() {
System.out.println("Pessoa Jurídica"); System.out.println("Nome: " +
getNome());
System.out.println("Código: " + getCodCliente());
System.out.println("Endereço: " + getEndereco());
System.out.println("CNPJ: " + cnpj);
System.out.println();
}
}

package transporte;
public class PessoaFisica extends Pessoa {
public PessoaFisica(String nome, String endereco, String cpf, int codCliente) {
super(nome, endereco, codCliente, cpf);
}
@Override
public void mostraInfos() {
System.out.println("Pessoa Física");
System.out.println("Nome: " + getNome());
System.out.println("Endereço: " + getEndereco());
System.out.println("CPF: " + getCpf());

System.out.println("Código: " + getCodCliente()); System.out.println();


}
}

package transporte;
public class Motorista extends Pessoa {
private String cnh;
public Motorista(String nome, String endereco, int codCliente, String cpf, String
cnh) {
super(nome, endereco, 0 , cpf);
this.cnh = cnh;
}
public String getCnh() {
return cnh;
}
public void setCnh(String cnh) {
this.cnh = cnh;
}
@Override
public void mostraInfos() {
System.out.println("Motorista");
System.out.println("Nome: " + getNome());
System.out.println("Endereço: " + getEndereco());
System.out.println("CPF: " + getCpf()); System.out.println("CNH: " + cnh);
System.out.println();
}
}

package transporte;
public class Teste {
public static void main(String[] args) {
PessoaJuridica pJuri = new PessoaJuridica("Matheus", "Rua Casper
Libero", 103, "43373972809");
PessoaFisica pFis = new PessoaFisica("Nicole", "Rua Barão de Laguna",
"39340426860", 105);
Motorista motorista = new Motorista("Malu", "Rua Miragaia", 0 ,
"19276110836", "44444444"); pJuri.mostraInfos(); pFis.mostraInfos();
motorista.mostraInfos();
}
}

Você também pode gostar