Baixe o app para aproveitar ainda mais
Prévia do material em texto
Linguagem de Programação Aula 4 Prof. Jane Alvarez Professora : Jane2 Objetivos ➢ Sobrecarga ou overload ➢ Objeto como parâmetro de método ➢ Classe Math, a constante PI e os métodos pow e sqrt. Professora : Jane3 Sobrecarga ou overload ➢ Pode se ter sobrecarga de construtores e/ou de métodos. ➢ É configurado sobrecarga de construtores quando se tem 2 ou mais construtores que se diferenciam pela lista de parâmetros. ➢ Java permite que tenhamos métodos com o mesmo nome, mas parâmetros diferentes. Isso é chamado sobrecarga (ou overload) de métodos. ➢ No nosso exemplo do Retangulo, podemos definir outro método redimensionar(). Veja o exemplo a seguir ... Professora : Jane4 Sobrecarga de Métodos ➢ Exemplo: public class Retangulo { //Atributos ... //Construtor e outros métodos ... public void redimensionar(int sx, int sy) { if (sx > 0 && sy > 0) { base = sx * base; altura = sy * altura; } } public void redimensionar(double larg, double alt) { if (larg > 0 && alt > 0) { base = larg; altura = alt; } } } O Java não confunde os dois métodos porque eles tem assinaturas diferentes ! Assinatura diferente significa que os métodos têm: - quantidades de parâmetros diferentes, - tipos dos parâmetros diferentes ou - ordem dos parâmetros diferente Professora : Jane5 Sobrecarga de Métodos ➢ Importante: o Java não leva em conta o tipo de retorno dos métodos para diferenciá-los, apenas a quantidade, a ordem e os tipos dos parâmetros. Exemplo: public class Retangulo { // Atributos ... Construtores ... Métodos public void redimensionar(double dx, double dy) { ... } public void redimensionar(int larg, int alt) { ... } public boolean redimensionar(int larg, int alt) { ... } } Aqui teremos um erro de compilação, porque já existe um método redimensionar que recebe dois interiros. Apesar de um método não retornar nada e o outro retornar um boolean, os métodos são considerados iguais. Professora : Jane6 Métodos Estáticos da classe Math ➢ No Java existe uma classe bastante usada que implementa funções matemáticas chamada Math. ➢ Todos os métodos dessa classe são estáticos, isto é, não dependem de nenhum objeto para serem executados. public class Math { public static double sqrt(double x) { ... } public static long round(double x) { ... } public static double pow(double x, double y) { ... } } Professora : Jane7 Métodos Estáticos ➢ A principal diferença entre os métodos estáticos e os métodos de instância está na sua chamada. ➢ Nos métodos estáticos não precisamos do objeto para chamar o método. ➢ Ao invés disso, usamos o próprio nome da classe para chamá-los. ➢ Exemplos: double x = 12.2; double y = Math.sqrt(x); // calcula a raiz quadrada de x long z = Math.round(y); // arredonda o valor de y Professora : Jane8 Métodos Estáticos – Classe Math Método Descrição abs(x) Retorna o valor absoluto do parâmetro x. x pode ser do tipo int, long, float ou double. Retorna um valor do mesmo tipo do parâmetro x. double acos(double x) Retorna o arco coseno do parâmetro x double asin(double x) Retorna o arco seno do parâmetro x double atan(double x) Retorna o arco tangente do parâmetro x double ceil(double x) Retorna o menor inteiro maior que x double cos(double x) Retorna o coseno de x double exp(double x) Retorna a constante de Euller e elevada a x double floor(double x) Retorna o maior inteiro menor que x double log(double x) Retorna o logaritmo natural de x max(a, b) Retorna o maior valor entre a e b. a e b podem ser do tipo int, long, float ou double. Retorna um valor do mesmo tipo dos parâmetros a e b. min(a, b) Retorna o menor valor entre a e b. a e b podem ser do tipo int, long, float ou double. Retorna um valor do mesmo tipo dos parâmetros a e b. double pow(double a, double b) Retorna a elevado a b double random() Retorna um número aleatório maior ou igual a ZERO e menor que UM long round(double x) Retorna o inteiro mais próximo de x double sin(double x) Retorna o seno de x double tan(double x) Retorna a tangente de x double sqrt(double x) Retira a raiz quadrada de x Professora : Jane9 Exercícios ... Do Plano de Aula 4 1) Crie um projeto com duas classes : ▪ classe Circulo e ▪ classe TestaCirculo (com a main), sabendo que todo círculo tem um raio e um centro no ponto (x,y). Neste projeto ... a) crie dois círculos : um com valores constantes definidos por você e outro com dados obtidos via console. b) implemente todos os sets e todos os gets c) use sobrecarga de construtores e crie cada círculo (item a) com um construtor. Professora : Jane10 Exercícios ... Do Plano de Aula 4 d) calcule a distância de um círculo a outro. Para isso, implemente um método float distancia(Circulo outroCirculo) que calcula a distância de um círculo a outro. Dica: A distância entre dois pontos é dada pela fórmula: 22 abab yyxxd Professora : Jane11 Exercícios ... Do Plano de Aula 4 e) calcule a área de cada círculo. Para isso, implemente um método de nome calcularArea. f) calcule o perímetro de cada círculo. Para isso, implemente um método de nome calcularPerimetro. g) imprima todos os dados de cada círculo. Para isso, implemente um método de nome imprimirDados.
Compartilhar