Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Sobrecarga de Métodos e Construtores em Java, Provas de Algoritmos e Programação

Este documento explica o conceito de sobrecarga de métodos e construtores em java. Ele apresenta o que é sobrecarga, como os métodos são identificados pela assinatura (nome + lista de parâmetros), e fornece um exemplo prático usando a classe acumulador. Adicionalmente, o documento discute a sobrecarga de construtores e fornece um exemplo usando a classe circulo.

O que você vai aprender

  • Como os métodos são identificados pela assinatura?
  • Qual é a diferença entre sobrecarga de métodos e sobrecarga de construtores?
  • Qual é a finalidade da sobrecarga de métodos em Java?

Tipologia: Provas

2022

Compartilhado em 07/11/2022

verde_amarelo
verde_amarelo 🇧🇷

4.7

(93)

227 documentos

1 / 8

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
1
Algoritmos e Programação II
Aula 3 – Sobrecarga
*Adaptado do material do Prof. Júlio Machado
Sobrecarga
Em várias linguagens é comum
encontrarmos rotinas que fazem basicamente
a mesma coisa, porém, com nomes distintos
porque se diferenciam nos tipos dos
parâmetros.
Ex.: classe Acumulador
Dois métodos adicionaDouble e adicionaInt.
Ambos somam o valor recebido como
parâmetro ao atributo de instância.
public class Acumulador {
private double valor;
public Acumulador() {
valor = 0;
}
public double getValor() {
return(valor);
}
public void adicionaDouble(double n) {
valor = valor + n;
}
public void adicionaInt(int n) {
valor = valor + n;
}
}
pf3
pf4
pf5
pf8

Pré-visualização parcial do texto

Baixe Sobrecarga de Métodos e Construtores em Java e outras Provas em PDF para Algoritmos e Programação, somente na Docsity!

Algoritmos e Programação II

Aula 3 – Sobrecarga

*Adaptado do material do Prof. Júlio Machado

Sobrecarga

 Em várias linguagens é comum

encontrarmos rotinas que fazem basicamente

a mesma coisa, porém, com nomes distintos

porque se diferenciam nos tipos dos

parâmetros.

 Ex.: classe Acumulador

 Dois métodos adicionaDouble e adicionaInt.

 Ambos somam o valor recebido como

parâmetro ao atributo de instância.

public class Acumulador { private double valor; public Acumulador() { valor = 0; } public double getValor() { return(valor); } public void adicionaDouble(double n) { valor = valor + n; } public void adicionaInt(int n) { valor = valor + n; } }

 Em Java, podemos criar os dois métodos com o mesmo nome!  A condição é que tenham uma lista de parâmetros diferentes.

public class Acumulador { ... public void adiciona(double n) { valor = valor + n; } public void adiciona(int n) { valor = valor + n; } }

 Classe Vector

 • add(int indice, Object elemento)

 insere o elemento na posição indicada do vetor

 • add(Object elemento)

 insere o elemento no final do vetor

 • remove(int indice)

 remove o elemento da posição indicada do vetor

 • remove(Object elemento)

 busca e remove a primeira ocorrência do

elemento encontrada no vetor

Sobrecarga de Construtores

 Usualmente é útil para uma classe possuir

mais de um construtor a fim de oferecer

diversas maneiras para instanciar e inicializar

os objetos dessa classe.

 Um construtor também pode sofrer o

processo de sobrecarga.

 Exemplo: classe Circulo

 Deseja-se ter a

capacidade de inicializar

os atributos de um novo

objeto de duas formas:

 através de um construtor sem parâmetros, que cria um círculo padrão de centro (0,0) e raio 1,  e através de um construtor que recebe as informações de centro e raio para criar o círculo

public class Circulo { private int centrox; private int centroy; private int raio; public Circulo(int x, int y, int r){ if (x >= 0) centrox = x; else centrox = 0; if (y >= 0) centroy = y; else centroy = 0; if (r > 0) raio = r; else raio = 1; } public Circulo() { centrox = 0; centroy = 0; raio = 1; } ... }

 Testando a classe:

public class TesteCirculo { public static void main (String args[]) { Circulo circ1 = new Circulo(); Circulo circ2 = new Circulo(1,2,4); System.out.println("Area circ1= " + circ1.area()); System.out.println("Area circ2= " + circ2.area()); } }

Estudo de Caso

 Classe Professor

 Definir construtores para:

 Inicializar um professor

informando um nome, número

de matrícula e carga horária;

 Inicializar um professor

informando o nome e número

de matrícula, com carga

horária padrão de 12 horas

semanais.

Exercícios

1. Altere a classe Ponto apresentada

abaixo para apresentar três

construtores:

 Um sem parâmetros, que cria um

ponto nas coordenadas (0,0);

 Um que recebe dois parâmetros de

coordenadas X e Y;

 Um que inicializa o ponto através

das coordenadas de um outro ponto

recebido como argumento.

2) Utilizando a classe Ponto, altere e introduza

novos métodos na classe Circulo, através da

sobrecarga, para realizar as seguintes

funções:

 armazenar as coordenadas do centro em um

objeto Ponto;

 construir novos círculos através da informação

de um ponto central e raio;

 mover um círculo para um novo ponto central

qualquer.

3) Desenvolva um programa em Java para testar

todos

os novos métodos desenvolvidos no exercício

anterior para a classe Circulo.

4) Crie uma classe CadastroDePontos que

armazena

um conjunto de pontos em um ArrayList , e contenha

um método para incluir novos pontos no cadastro e

um método para imprimir as coordenadas de todos

os pontos.

4) Acrescente à classe Ponto, desenvolvida

anteriormente, a capacidade de calcular a distância entre

dois pontos. Para tal, é desejado o seguinte

comportamento:

 calcular a distância entre a instância do ponto e um

outro objeto ponto qualquer;

 calcular a distância entre a instância do ponto e um

outro ponto dado pelas coordenadas X e Y;

 calcular a distância entre dois pontos dadas as

coordenadas X1, Y1 e X2, Y2.

 Obs: A distância entre dois pontos é calculada por:

5) Você está desenvolvendo um sistema de cálculos

matemáticos e se depara com um problema: a

necessidade de utilização de números complexos.

Solicitando ajuda de um matemático, você obtém as

seguintes informações:

 Números complexos possuem a forma

 parte real + parte imaginária * i  como por exemplo 1+3i.

 i representa a raiz quadrada de -1.

 O número complexo resultante da soma é aquele cuja

parte real é a soma das partes reais dos operandos, e

a parte imaginária é a soma das partes imaginárias

dos operandos.

 O número complexo resultante da subtração é aquele

cuja parte real é a diferença das partes reais dos

operandos, e a parte imaginária é a diferença das

partes imaginárias dos operandos.

 Números complexos podem ser representados por

extensão, como 1+3i, ou por uma forma resumida pelo

par (parte real, parte imaginária), como (1,3).

 Um número real a qualquer, é representado pelo

número complexo (a,0).

 Modele e implemente as estruturas necessárias para a

utilização de números complexos em um programa

Java.