Laboratório I Mateus Raeder Sobrecarga de métodos Definição de métodos visibilidade tipo de retorno { // instruções } nome do método (parâmetros de entrada) public double calculaFrete() { // instruções } public int calculaValor(int quant) { // instruções } Mateus Raeder – fevereiro de 2009 public void imprimeArea(double a) { // instruções } Sobrecarga de métodos Numa mesma classe, dois ou mais métodos (inclusive o construtor) podem ter o mesmo nome, desde que tenham tipos ou quantidade de parâmetros diferentes Sobrecarga de métodos A assinatura de um método é dada pelo nome mais o tipo dos parâmetros Assim, métodos com mesmo nome mas tipos de parâmetros diferentes não possuem a mesma assinatura Mateus Raeder – fevereiro de 2009 Sobrecarga de métodos Agora podemos criar: Por exemplo: public Dado(int nlados) { lados = nlados; } vai criar com este meuDado1 = new Dado(6); vai criar com este public Dado() { lados = 6; } meuDado2 = new Dado(); O mesmo vale para qualquer método que se deseje sobrecarregar Mateus Raeder – fevereiro de 2009 Sobrecarga de métodos Exercícios 1 – altere a classe Data, e crie um mais um construtor, que receba apenas o mês e o ano, colocando valor 0 para o dia 2 – Crie mais um construtor para a classe Data que não recebe parâmetros de entrada, e coloca os valores de dia, mês e ano para 0 3 – altere a classe Dado, e crie mais um construtor, este sem parâmetros, que coloque o número de lados do dado para 6 4 – altere a classe Endereco, criando um novo construtor para esta classe que não recebe nenhum parâmetro de entrada, colocando 0 ou ‘‘indefinida‘‘ nos atributos Mateus Raeder – fevereiro de 2009 Sobrecarga de métodos Exercícios 5 – Altere a classe Pessoa, criando um novo construtor que recebe somente o nome, o sexo, o mês e o ano de nescimento como parâmetros de entrada 6 – Altere a classe Pessoa e veja se é possível, agora, criar um construtor sem parâmetros de entrada. Se for possível, crie-o 7 – Crie um método na classe Pessoa chamado alteraInfo(char sexo, String nome) 8 – É possível criar um método na classe Pessoa chamado alteraInfo(String nome)? Se for possível, crie-o. Mateus Raeder – fevereiro de 2009