View
114
Download
3
Category
Preview:
Citation preview
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS
INTRODUÇÃO A CLASSES E OBJETOS
Prof. Thiago Pereira Rique
<thiagorique2011@gmail.com>
AGENDA
Classes, objetos, métodos e variáveis de instância
Declarando uma classe com um método e instanciando um objeto de uma classe
Declarando um método com um parâmetro Variáveis de instância, métodos set e get Tipos primitivos versus tipos por referência Inicializando objetos com construtores Números de ponto flutuante e tipo double Estudo de caso de GUI: utilizando caixas de
diálogo
CLASSES, OBJETOS, MÉTODOS E VARIÁVEIS DE INSTÂNCIA
Suposição Você quer guiar um carro e fazê-lo andar mais
rápido pisando no pedal acelerador. Antes de tudo: o carro precisa ser projetado
(remete ao conceito de classe) O pedal “oculta” do motorista os complexos
mecanismos que fazem o carro andar mais rápido.
O pedal de freio “oculta” os mecanismos que diminuem a velocidade.
A direção “oculta” os mecanismos que mudam a direção do carro.
Isso permite que as pessoas dirijam um carro sem saber como os motores funcionam.
CLASSES, OBJETOS, MÉTODOS E VARIÁVEIS DE INSTÂNCIA
Realizar uma tarefa em um programa Método
Descreve os mecanismos que realizam sua tarefa Oculta as tarefas que realiza É abrigado em uma classe
Ex: classe que representa uma conta bancária Sacar Depositar Verificar saldo
Você deve construir um objeto de uma classe antes de construir um programa para realizar as tarefas que a classe descreve como fazer.
CLASSES, OBJETOS, MÉTODOS E VARIÁVEIS DE INSTÂNCIA
Enviar mensagens para um objeto Chamada de método
Continuando com o exemplo do carro Características (atributos)
Cor, número de portas, quantidade de gasolina no tanque, velocidade atual, total de quilômetros percorridos, etc.
Cada carro mantém seus próprios atributos. Esses atributos são especificados como parte da classe
do objeto. Variáveis de instância
DECLARANDO UMA CLASSE COM UM MÉTODO E INSTANCIANDO UM OBJETO DE UMA CLASSE
A classe GradeBook
DECLARANDO UMA CLASSE COM UM MÉTODO E INSTANCIANDO UM OBJETO DE UMA CLASSE
Declaração da classe Palavra reservada public
Modificador de acesso Palavra reservada class Nome da classe (identificador)
GradeBook Corpo da classe
{ }
DECLARANDO UMA CLASSE COM UM MÉTODO E INSTANCIANDO UM OBJETO DE UMA CLASSE
Declaração do método Palavra reservada public
Modificador de acesso “disponível para o público”
Palavra reservada void Tipo de retorno
Nome do método displayMessage
Cabeçalho do método public void displayMessage()
Corpo do método { }
DECLARANDO UMA CLASSE COM UM MÉTODO E INSTANCIANDO UM OBJETO DE UMA CLASSE
Usando a classe GradeBook em um aplicativo Aplicativo
Main A classe GradeBook não é um aplicativo java GradeBook
DECLARANDO UMA CLASSE COM UM MÉTODO E INSTANCIANDO UM OBJETO DE UMA CLASSE
A classe GradeBookTest
DECLARANDO UMA CLASSE COM UM MÉTODO E INSTANCIANDO UM OBJETO DE UMA CLASSE
A classe GradeBookTest public static void main()
Método static Não precisamos instanciar objetos da classe
Método displayMessage Necessário criar objeto da classe GradeBook GradeBook é um novo tipo GradeBook myGradeBook = new GradeBook();
Expressão de criação de instância de classe new GradeBook() Cria um novo objeto da classe GradeBook Parênteses são necessários
Chamada a um construtor
DECLARANDO UMA CLASSE COM UM MÉTODO E INSTANCIANDO UM OBJETO DE UMA CLASSE
A classe GradeBookTest Chamada a método
Ex: System.out.println(“Bem vindo”); myGradeBook.displayMessage();
Nome do objeto + ponto separador (.) + nome do método + conjunto vazio de parênteses
O método displayMessage possui lista de parâmetros vazia Nenhum argumento é passado ao método na sua
chamada
DECLARANDO UM MÉTODO COM UM PARÂMETRO
Conceito de parâmetro Informação adicional passada para um método
realizar sua tarefa Quanto um carro deve acelerar? Quanto sacar de uma conta? Quanto depositar?
Parâmetros são definidos em uma lista de parâmetros Separados por vírgula, 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 Todo parâmetro deve especificar um tipo e um
identificador
DECLARANDO UM MÉTODO COM UM PARÂMETRO
Argumentos Valores fornecidos para os parâmetros em uma
chamada de método Ex: public void depositar(double valor)
//parâmetro contabancaria.depositar(100.00); //argumento
DECLARANDO UM MÉTODO COM UM PARÂMETRO
A classe GradeBook Método com um parâmetro
DECLARANDO UM MÉTODO COM UM PARÂMETRO
A classe GradeBookTest
VARIÁVEIS DE INSTÂNCIA, MÉTODOS SET E GET
Variáveis locais Declaradas no corpo de um método particular Só podem ser utilizadas dentro do método no qual
foram declaradas Quando um método termina, os valores de suas
variáveis locais são perdidos Campos
Atributos (variáveis de instância) Existem mesmo antes da chamada de qualquer
método da classe onde foram declarados Cada objeto da classe possui os seus próprios
campos Podem ser manipulados por qualquer método da
classe em que foram declarados
VARIÁVEIS DE INSTÂNCIA, MÉTODOS SET E GET
Classe GradeBook uma variável de instância um método set um método get
VARIÁVEIS DE INSTÂNCIA, MÉTODOS SET E GET
VARIÁVEIS DE INSTÂNCIA, MÉTODOS SET E GET
Modificadores de acesso public e private Variáveis de instância ou métodos private
Podem ser acessados apenas por métodos da classe onde foram declarados
Ocultação de dados (ou informações) Ex: GradeBook Encapsulamento
courseName setCourseName getCourseName displayMessage
Variáveis de instância ou métodos public Podem ser acessados por métodos em outras classes
VARIÁVEIS DE INSTÂNCIA, MÉTODOS SET E GET
Classe GradeBookTest
VARIÁVEIS DE INSTÂNCIA, MÉTODOS SET E GET
Classe GradeBookTest Saída
VARIÁVEIS DE INSTÂNCIA, MÉTODOS SET E GET
Métodos set e get Set
Configurar (atribuir valores a) variáveis de instância private
setCourseName(String name) Get
Obter (obter/retornar valores de) variáveis de instância private
getCourseName() Convenção
Iniciar os nomes de métodos com as palavras set e get (não é obrigatório, é apenas uma convenção)
TIPOS PRIMITIVOS VERSUS TIPOS POR REFERÊNCIA
Tipos primitivos boolean byte char short int long float double
Tipos por referência Todos os tipos não primitivos
As classes que especificam os tipos de objetos
TIPOS PRIMITIVOS VERSUS TIPOS POR REFERÊNCIA Tipos primitivos
Variáveis de instância são inicializadas por padrão Valores numéricos: 0 (zero) Valores booleanos: false (falso)
Variáveis de tipo primitivo podem ser inicializadas na sua declaração
Variáveis locais NÃO são inicializadas por padrão Tipos por referência
Variáveis de tipo por referência REFERENCIAM um objeto na memória
Ex: a variável myGradeBook é uma REFERÊNCIA para um objeto GradeBook na memória
Variáveis de tipo por referência são inicializadas por padrão com null: “referência a nada”
INICIALIZANDO OBJETOS COM CONSTRUTORES
Quando criamos um objeto GradeBook, sua variável de instância courseName foi inicializado com null.
Você pode fornecer um nome de um curso ao criar um objeto GradeBook.
Construtor Método especial utilizado para inicializar um
objeto de uma classe quando de sua criação. O Java requer uma chamada de construtor para
todo objeto que é criado. O construtor deve ter o mesmo nome da classe.
INICIALIZANDO OBJETOS COM CONSTRUTORES
Construtor O compilador fornece um construtor padrão sem
parâmetros. Variáveis de instância são inicializadas por padrão.
Voltando a classe GradeBook Você pode querer especificar o nome de um
curso para um objeto GradeBook.
A instrução acima exige que a classe forneça um construtor com um parâmetro String.
INICIALIZANDO OBJETOS COM CONSTRUTORES
Classe GradeBook modificada com construtor
INICIALIZANDO OBJETOS COM CONSTRUTORES
Classe GradeBook modificada com construtor
INICIALIZANDO OBJETOS COM CONSTRUTORES
Classe GradeBookTest
INICIALIZANDO OBJETOS COM CONSTRUTORES
Diferença entre construtores e métodos Construtores não retornam valores. Sem tipo de retorno (nem mesmo void).
Normalmente, os construtores são declarados public.
Se você declarar qualquer construtor para uma classe, o compilador Java não criará um construtor padrão para essa classe.
INICIALIZANDO OBJETOS COM CONSTRUTORES
Construtores com múltiplos parâmetros GradeBook para armazenar o nome do curso e o
nome do instrutor courseName instructorName
Chamada ao construtor de GradeBook
NÚMEROS DE PONTO FLUTUANTE E TIPO DOUBLE
O Java fornece dois tipos primitivos para ponto flutuante float double A principal diferença entre eles é que variáveis do
tipo double podem armazenar números com maior magnitude e detalhes, isto é, com maior precisão.
Números de ponto flutuante de precisão simples (float) Até sete dígitos significativos
Números de ponto flutuante de precisão dupla (double) Até quinze dígitos significativos
Literais de ponto flutuante são double por padrão. Ex.: 7.33 e 0.0975
NÚMEROS DE PONTO FLUTUANTE E TIPO DOUBLE
A classe Account com uma variável de instância do tipo double
NÚMEROS DE PONTO FLUTUANTE E TIPO DOUBLE
A classe AccountTest
NÚMEROS DE PONTO FLUTUANTE E TIPO DOUBLE
A classe AccountTest
NÚMEROS DE PONTO FLUTUANTE E TIPO DOUBLE
A classe AccountTest Saída
ESTUDO DE CASO DE GUI: UTILIZANDO CAIXAS DE DIÁLOGO
Exibindo texto em uma caixa de diálogo
ESTUDO DE CASO DE GUI: UTILIZANDO CAIXAS DE DIÁLOGO
Exibindo texto em uma caixa de diálogo Método showMessageDialog
Exibe caixa de diálogo com uma mensagem Requer dois argumentos
null (o primeiro argumento ajuda o aplicativo Java a determinar onde posicionar a caixa de diálogo)
String a ser exibida
ESTUDO DE CASO DE GUI: UTILIZANDO CAIXAS DE DIÁLOGO
Introduzindo métodos static showMessageDialog é um método static Muitas vezes definem tarefas realizadas com
frequência Não é preciso criar um objeto da classe para
chamar um método static Chamada a um método static
Nome da classe seguido por um ponto (.) e nome do método
JOptionPane.showMessageDialog(null, “Mensagem”);
ESTUDO DE CASO DE GUI: UTILIZANDO CAIXAS DE DIÁLOGO
Inserindo texto em uma caixa de diálogo
ESTUDO DE CASO DE GUI: UTILIZANDO CAIXAS DE DIÁLOGO
Inserindo texto em uma caixa de diálogo Método static showInputDialog
Argumento String (prompt para o usuário) JOptionPane.showInputDialog(“Qual é o seu nome?”);
Retorna a String digitada pelo usuário Variável String name
Recebe/armazena a String retornada pelo método showInputDialog
Método static format da classe String String.format(“Bem vindo, %s, a programacao Java”,
name); Semelhante ao System.out.printf
printf exibe uma String formatada format retorna uma String formatada
Recommended