Introdução a classes e objetos Prof. Marcelo Roberto Zorzan Aula de Hoje n n n n Abstração de Dados Classes e Objetos Definição de Métodos Métodos com parâmetro Abstração de Dados § “Processo mental através do qual nos concentramos nos aspectos relevantes de um conjunto de objetos desconsiderando as suas diferenças.” § O que vocês estão vendo aqui? Abstração de Dados § E aqui? Problema Joãozinho ao chegar em casa depois de um dia cheio de aulas na UFV pega Mariazinha fazendo contas em uma calculadora de brinquedo. Joãozinho querendo entrar na brincadeira propõe para Mariazinha desenvolver um programa usando os conhecimentos adquiridos na linguagem Java para que a calculadora dela ficasse mais bonita! Para isso, ele desenvolveu uma aplicação que executa além das operações de somar e subtrair, a exibição do nome dela no início de cada cálculo. Mariazinha que é muito curiosa logo quis testar a aplicação que é capaz de somar as idades dos pais, além de calcular a diferença de idade dela com Joãozinho. Conceitos § Objeto § Representa uma entidade do mundo real § Classe § Representa um características afins conjunto de § Atributos § São as características de um objeto § Métodos § Definem as habilidades dos objetos objetos com Conceitos § Exemplo: § Classe: Humano àAtributos: nome, cor do olho, altura, peso, dataNasc à Métodos: calcularIdade, definirGorduraCorporea à Objetos: João, que tem olho azul, 1.70m, 80kg, nasceu em 10/10/1972 Classe public class <NomeDaClasse> { // Atributos ou variáveis de instância // Métodos } § Classe: unidade de programa que abriga atributos e métodos § Depois de construir a classe, deve ser construído o objeto de uma classe Classe public class <NomeDaClasse> { // Atributos ou variáveis de instância // Métodos } § Nome de classe sempre começa com letra maiúscula. § A palavra class na definição da classe é sempre minúscula. Atributos e Métodos § Atributos ou variáveis de instância descrevem as características de um objeto § Pessoa (nome, idade, sexo, altura, peso) § Conta Bancária (nome do correntista, número da conta) saldo, § Métodos descrevem o comportamento de um objeto § Pessoa (andar, comer, dormir) § Conta Bancária (imprimir saldo, efetuar saque, depositar dinheiro, visualizar extrato) Classe e método } public class BoasVindas { public void exibeMensagem() { System.out.println(“Bem vindo!”); } § public: acesso público § void: não haverá valor de retorno § exibeMensagem: nome do método Classe e método public class BoasVindasTeste { public static void main(String args[]) { BoasVindas teste = new BoasVindas(); teste.exibeMensagem(); } } § Obs.: § Método main controla a execução do aplicativo § Método static pode ser chamado sem primeiro criar um objeto da classe em que o método é declarado Classe e Objeto § Exemplos de criação de classes no Java § Classe BoasVindas : exibe uma mensagem de boas vindas na tela § Classe BoasVindasTeste : é uma classe de aplicativo que faz a chamada da classe BoasVindas Obs.: cada classe que começa com a palavra public deve ser armazenada em um arquivo que tenha o mesmo nome da classe e termina com a extensão .java Classe e Objeto § Você não pode chamar um método que pertença a outra classe sem criar um objeto dessa classe § No exemplo anterior criamos o objeto teste § A palavra chave new cria um novo objeto da classe especificada Métodos da classe § Regras para métodos de uma classe § Métodos devem ser declarados dentro do corpo da classe (a parte entre as chaves { e } ) e depois dos atributos. § As regras de nomes de métodos são as mesmas para variáveis. § Métodos não podem ser criados dentro de outros métodos. Métodos da classe § Declaração de métodos <modif_acesso> <tipo> <identificador>(parâmetros){} § Todo método deve ter um tipo de retorno. § Caso o método não retorne nada, isto é, caso ele execute uma operação sem retornar valores, o valor de retorno dele deverá ser void. § Métodos que retornam valor diferente de void devem ter, em seu corpo, a palavra-chave return seguida de uma constante ou variável do tipo que foi declarado como sendo o tipo de retorno do método. Diagramas de Classe UML § Diagramas de classe UML: § Compartimento superior contém o nome da classe. § Compartimento intermediário contém atributos ou variáveis de instância da classe. § Compartimento inferior contém operações ou métodos da classe. à Sinal de adição indica os métodos public. Diagramas de Classe UML § Diagrama UML indicando que a classe BoasVindas tem um método público chamado exibeMensagem BoasVindas nome da classe atributos +exibeMensagem() métodos Métodos com parâmetros § Parâmetros de método: § Informações adicionais método. passadas para um § Uma chamada de método fornece valores (chamados argumentos) para cada um dos parâmetros do método. § Ex: o método System.out.println(…) exige um argumento que especifica quais dados enviar para a janela de comando Métodos com parâmetros § Exemplo § Codificação da classe BoasVindas com um método exibeMensagem que exibe o nome do curso com uma mensagem de boas vindas § O método parâmetro exibeMensagem requer um Métodos com parâmetros public class BoasVindas { public void exibeMensagem(String curso) { System.out.printf(“Bem vindo ao curso %s !”, curso); } } Métodos com parâmetros public class BoasVindasTeste { public static void main(String args[]) { BoasVindas teste = new BoasVindas(); teste.exibeMensagem(“Comp. Orient. Objetos”); } } Métodos com parâmetros § Para fazer a leitura do nome do curso fornecida pelo usuário, os seguintes comandos devem ser usados: § import java.util.Scanner; § Scanner entrada = new Scanner(System.in); § String nomecurso = entrada.nextLine(); § teste.exibeMensagem(nomecurso); Métodos com parâmetros § Os parâmetros de um método são colocados dentro dos parênteses que seguem o nome do método § A lista de parâmetros pode conter qualquer número de parâmetros, inclusive nenhum (use parênteses vazio) § Todo parâmetro deve especificar um tipo e um identificador § Ex: String à tipo curso à Identificador Métodos com parâmetros § O nome da variável de parâmetro pode ser o mesmo nome (ou um nome diferente) da variável de argumento § Os parâmetros são separados por vírgula § O número de argumentos deve corresponder ao número de parâmetros na declaração do método § Os tipos de argumento devem ser consistentes com os tipos dos parâmetros na declaração do método Declaração import § A declaração import indica ao compilador que o programa utiliza uma determinada classe à Ex: import java.util.Scanner; § As classes System e String não precisam ser importadas pois estão no pacote java.lang que é implicitamente importado em todo programa Java §As classes que estão no mesmo pacote são importadas implicitamente Variáveis locais § As variáveis declaradas no corpo de um método são conhecidas como variáveis locais e só podem ser usadas nesse método public class Principal { public static void main(String args[]) { String nome = “Paula”; System.out.println(“Nome: ” + nome); } } Variáveis - Atributos § Um objeto tem atributos que são portados com o objeto quando ele é utilizado - Eles existem antes de um método ser chamado e depois do método completar sua execução § Os atributos são representados como variáveis em uma declaração de classe – São declaradas dentro da classe mas fora dos corpos dos métodos da classe § Uma classe consiste em um ou mais métodos que manipulam os atributos que pertencem a um objeto Um novo Problema!!! Mariazinha pediu para Joãozinho otimizar a sua aplicação, fazendo com que ela fosse capaz de exibir o nome de qualquer pessoa antes de cada operação. Dessa forma, ela seria capaz de mostrar para os seus pais o resultado de uma conta personalizada, fazendo com que seus pais ficassem muito orgulhosos deles!!! Atributos • Formato: <tipo> <nomeDaVariável> • Tipos primitivos em java - inteiros (byte, short, int, long) - ponto flutuante (double, float) - booleano (boolean) - caractere (char) • String: - A classe String é usada para representar cadeias de caracteres (strings) - String não é um tipo de dado primitivo. Variáveis - Atributos public class BoasVindas { private String curso; public void setCurso(String nomec){ curso = nomec; } public String getCurso(){ return curso; } public void exibeMensagem(){ System.out.prinf(“Bem vindo ao curso %s!”, curso); } } Tipos Primitivos x Tipos por Referência § Tipos primitivos: boolean, byte, char, short, int, long, float e double à As variáveis do tipo byte, char, short, int, long e float são inicializadas com 0 à As variáveis do tipo boolean são inicializadas com false § Tipos por referência: referenciam objetos no programa à As variáveis de tipo por referência são inicializadas com null Próxima Aula... • Introdução a classes e objetos (cont.)