LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS INTRODUÇÃO A CLASSES E OBJETOS Prof. Thiago Pereira...

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