42
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS INTRODUÇÃO A CLASSES E OBJETOS Prof. Thiago Pereira Rique <[email protected]>

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

Embed Size (px)

Citation preview

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

LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

INTRODUÇÃO A CLASSES E OBJETOS

Prof. Thiago Pereira Rique

<[email protected]>

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

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

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

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.

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

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.

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

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

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

DECLARANDO UMA CLASSE COM UM MÉTODO E INSTANCIANDO UM OBJETO DE UMA CLASSE

A classe GradeBook

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

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

{ }

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

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 { }

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

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

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

DECLARANDO UMA CLASSE COM UM MÉTODO E INSTANCIANDO UM OBJETO DE UMA CLASSE

A classe GradeBookTest

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

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

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

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

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

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

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

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

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

DECLARANDO UM MÉTODO COM UM PARÂMETRO

A classe GradeBook Método com um parâmetro

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

DECLARANDO UM MÉTODO COM UM PARÂMETRO

A classe GradeBookTest

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

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

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

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

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

VARIÁVEIS DE INSTÂNCIA, MÉTODOS SET E GET

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

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

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

VARIÁVEIS DE INSTÂNCIA, MÉTODOS SET E GET

Classe GradeBookTest

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

VARIÁVEIS DE INSTÂNCIA, MÉTODOS SET E GET

Classe GradeBookTest Saída

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

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)

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

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

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

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”

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

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.

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

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.

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

INICIALIZANDO OBJETOS COM CONSTRUTORES

Classe GradeBook modificada com construtor

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

INICIALIZANDO OBJETOS COM CONSTRUTORES

Classe GradeBook modificada com construtor

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

INICIALIZANDO OBJETOS COM CONSTRUTORES

Classe GradeBookTest

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

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.

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

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

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

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

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

NÚMEROS DE PONTO FLUTUANTE E TIPO DOUBLE

A classe Account com uma variável de instância do tipo double

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

NÚMEROS DE PONTO FLUTUANTE E TIPO DOUBLE

A classe AccountTest

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

NÚMEROS DE PONTO FLUTUANTE E TIPO DOUBLE

A classe AccountTest

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

NÚMEROS DE PONTO FLUTUANTE E TIPO DOUBLE

A classe AccountTest Saída

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

ESTUDO DE CASO DE GUI: UTILIZANDO CAIXAS DE DIÁLOGO

Exibindo texto em uma caixa de diálogo

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

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

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

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”);

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

ESTUDO DE CASO DE GUI: UTILIZANDO CAIXAS DE DIÁLOGO

Inserindo texto em uma caixa de diálogo

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

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