Classes o Objetos. Classes, objetos, métodos e variáveis de instância

Documentos relacionados
Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan

Java Como Programar, 8/E

Linguagem de Programação III

CONCEITOS BÁSICOS DE ORIENTAÇÃO A OBJETOS PROF. ME. HÉLIO ESPERIDIÃO

Introdução a classes e objetos. Copyright 2006 by Pearson Education

PROGRAMAÇÃO ORIENTADA A OBJETOS: CONSTRUTORES

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis

Introdução à Programação Orientada a Objetos em C++

Engenharia da Computação Prof. Cícero Quarto POO PROGRAMAÇÃO ORIENTADA A OBJETOS. Capítulo 3. Introdução a classes e objetos

Linguagem de programação Java

Linguagem Java. Introdução. Rosemary Silveira Filgueiras Melo

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura

Aula 03 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Array em Java. Figura 1 - Exemplo de um array de inteiros

Programação Orientada a Objetos II

Programação Orientada a Objetos Aula I Declaração de classes, métodos construtores. Prof.: Bruno E. G. Gomes IFRN

Instituto de Informática Estrutura de Dados II

Classes. BCC Programação Orientada a Objectos(POO) Departamento de Computação - UFOP Baseado nos slides do Prof. Marco Antônio Carvalho

Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; IFSC/POO + JAVA - prof. Herval Daminelli

Estrutura de Dados Funções e Procedimentos

Classes e Objetos. Sintaxe de classe em Java

Algoritmos e Programação 2. Objetos e Classes em Java. Classes. Revisão. Definições de classes incluem (geralmente):

Introdução à Programação

Algoritmos II prof. Daniel Oliveira

Estrutura de Dados. Introduc a o e Alocac a o de Memo ria. Vilson Heck Junior. Instituto Federal de Santa Catarina

Aula 3 POO 1 Classe e Objeto. Profa. Elaine Faria UFU

Linguagem de Programação

Introdução aos aplicativos Java. Prof. Marcelo Roberto Zorzan

Análise de Programação

Java e sua Sintaxe. Estrutura mínima de um programa em Java: public class Exemplo { }

Classes e Objetos INTRODUÇÃO À ORIENTAÇÃO A OBJETOS COM JAVA - MÓDULO II. Classes. Objetos. Um modelo para a criação de objetos

Lição 4 Fundamentos da programação

Linguagem de Programação

AULA 6 - ARRAYS. Array de 10 elementos

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Aula 3 Conceitos de memória, variáveis e constantes Cleverton Hentz

Linguagem de Programação II Implementação

Vetores. e o programa deverá ler os valores separadamente:

Conceitos de Programação Orientada a Objetos

Linguagem de Programação II Implementação

Conceitos de Programação Orientada a Objetos

Capítulo 6: Linguagens de Programação

Obs.: para realizar estas atividades tenha certeza de que já tenha instalado no sistema operacional o Java JDK e o NetBeans.

Métodos Computacionais

Unidade Acadêmica: Faculdade de Computação FACOM Disciplina: Programação Orientada a Objetos I Professor: Fabiano Azevedo Dorça Prática 01

ALGORITMOS. Professor: Diego Oliveira. Aula 06 - Tipos Primitivos de Dados

Introdução a classes e objetos by Pearson Education do Brasil

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

EXPRESSÕES BOOLEANAS. Ex: boolean b = false; // declara uma variável do tipo boolean e atribui false

Linguagem de Programação Orientada a Objeto Construtores e Sobrecarga

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

Um Modelo Semântico para a Linguagem Java Jorge Henrique Cabral Fernandes CIC-UnB Junho de Introdução

Linguagem C Princípios Básicos (parte 1)

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

Aula 6 POO 1 Construtores. Profa. Elaine Faria UFU

Genéricos. Profa. Thienne Johnson EACH/USP

LÓGICA DE PROGRAMAÇÃO (JAVA) CLASSES E OBJETOS. Professor Carlos Muniz

Introdução à Orientação a Objetos em Java

Programação com Objectos. Processamento de Dados I. 2. Classes, Atributos e Métodos

Programação Java. - Classes, Objetos, Atributos e Métodos - Marco Fagundes Marco Fagundes -

Programação Orientada a Objetos

Tipos de Dados, Variáveis e Entrada e Saída em C. DCC 120 Laboratório de Programação

Linguagem C: Introdução

Orientação a Objetos e Java

Palavras Reservadas da Linguagem Java

A Linguagem C. A forma de um programa em C

Introdução aos Algoritmos

Vetores. IFSC/Florianópolis - Programação Orientada a Objetos + POO - prof. Herval Daminelli

PROGRAMAÇÃO ORIENTADA A OBJETOS JAVA

Linguagem de Programação III

Linguagem de Programação II Programação Orientada a Objetos. Orientação a Objetos

JAVA. Professor: Bruno Toledo

Seleção Múltipla Laços (while, do-while, for) AULA 05

Introdução à Programação. Introdução a Linguagem C. Prof. José Honorato F. Nunes

Classes e Objetos em Java. Algoritmos e Programação I. Classes. Classes. Modificadores de Acesso. Classes. Revisão

Classes, instâncias e métodos de acesso. prática

Introdução aos Algoritmos

Dados armazenados em um objeto podem ser tanto primitivos, tais como inteiros ou caracteres, ou referências para outros objetos.

Algoritmos e Programação

Programação: Vetores

ECT1203 Linguagem de Programação

Conceitos Básicos da Programação OO

Algoritmos. Algoritmos. Linguagem de programação. Conceitos. Conceitos. Conceitos. Sintaxe do comando para incluir bibliotecas no programa:

CCO 016 Fundamentos de Programação

Introdução à Programação

Tema da aula Introdução ao paradigma de programação: Orientado a Objetos

Simulação de Caixa Automático

Algoritmos e Estruturas de Dados I (DCC/003) Introdução à Programação de Computadores. Aula - Tópico 1

A figura abaixo representa uma classe denominada Carteira. Esta classe é composta dos métodos depositar(valor) e retirar(valor) e do atributo saldo.

PROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S

Sintaxe Básica do Java. João Paulo Q. dos Santos

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

Sobrecarga. Algoritmos e Programação II. Aula 3 Sobrecarga

Linguagem C. André Tavares da Silva.

Para entender o conceito de objetos em programação devemos fazer uma analogia com o mundo real:

Algoritmos e Programação

PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

Prof. A. G. Silva. 06 de setembro de Prof. A. G. Silva INE5603 Introdução à POO 06 de setembro de / 1

Transcrição:

Classes o Objetos Um recurso comum de cada aplicativo feito até agora é que todas as instruções que realizavam tarefas localizavam-se no método main. Se você tornar parte de uma equipe de desenvolvimento na indústria, poderá trabalhar em aplicativos com centenas, ou até milhares, de classes. Classes, objetos, métodos e variáveis de instância Para realizar uma tarefa em um programa é necessário um método. O método descreve os mecanismos que realmente realizam suas tarefas. O método oculta de seu usuário as tarefas complexas que ele realiza. Em Java, primeiro criamos uma unidade de programa chamada classe para abrigar um método. Em uma classe, você fornece um ou mais métodos que são projetados para realizar as tarefas da classe. Por exemplo, uma classe que representa uma conta bancária poderia conter um método para fazer depósitos de dinheiro em uma conta, outro para fazer saques e um terceiro para perguntar qual é o saldo atual. Você deve construir um objeto de uma classe antes de fazer um programa realizar as tarefas que a classe descreve como fazer. Essa é a razão de o Java ser conhecido como uma linguagem de programação orientada a objetos. Você envia mensagem para um objeto cada mensagem é conhecida como uma chamada de método e instrui um método do objeto a realizar sua tarefa. Um objeto tem atributos que são portados com o objeto quando ele é utilizado em um programa. Esses atributos são especificados como parte da classe do objeto. Por exemplo, um objeto conta bancária tem um atributo saldo que representa a quantidade de dinheiro na conta. Cada objeto conta bancária sabe o saldo que ele representa, mas não sabe os saldos de outras contas no banco. Os atributos são especificados pelas variáveis de instância da classe. Exemplo 1: Apresenta uma classe LivroNotas com um método que simplesmente exibe uma mensagem de boas-vindas quando é chamado. A declaração da classe LivroNotas contém um método mostramensagem que exibe uma mensagem na tela. A linha 5 da classe realiza o trabalho de exibir a mensagem. A declaração da classe inicia na linha 3. Cada declaração de classe contém a palavra-chave class seguida imediatamente do nome da classe. A declaração de método começa com a palavra-chave public para indicar que o método está disponível para o público isto é, pode ser chamado de fora do corpo da declaração de classe por métodos de outras classes. A palavra-chave void indica que esse método realizará uma tarefa, mas não retornará nenhuma informação para seu método de chamada ao completar a tarefa. Os parênteses depois do nome do método

indicam que isso é um método. Um conjunto vaio de parênteses indica que esse método não requer informações adicionais para realizar sua tarefa. Uma classe que contém um método main é um aplicativo Java. Essa classe é especial porque a JVM pode utilizar o main para iniciar a execução. A classe LivroNotas não é um aplicativo porque não contém o main. Para utilizar a classe LivroNotas em um aplicativo é necessário declarar uma classe separada que contenha um método main ou colocar um método main na classe LivroNotas. Na indústria, utiliza-se uma classe separada que contém o método main para cada classe nova criada. A declaração da classe TestaLivroNotas contém o método main que controlará a execução do nosso aplicativo. Qualquer classe que contém o main declarado pode ser utilizada para executar um aplicativo. A palavra-chave static indica que o main é um método especial que pode ser chamado sem primeiro criar um objeto da classe em que o método é declarado. A declaração da variável meulivronotas é do tipo LivroNotas. Cada nova classe que você cria torna-se um novo tipo em Java que pode ser utilizado para declarar variáveis e criar objetos. A variável meulivronotas é inicializada com o resultado da expressão de criação da instância de classe new LivroNotas(). A palavrachave new cria um novo objeto da classe especificada à direita da palavra-chave. Os parênteses em combinação com um nome de classe representam uma chamada para um construtor, que é semelhante a um método, mas é utilizado no momento em que um objeto é criado para inicializar os dados do objeto. Agora podemos utilizar meulivronotas para chamar o método mostramensagem. Você pode compilar as classes criadas antes de executar o aplicativo. No diretório que contém os arquivos de código-fonte do aplicativo, digite o comando javac LivroNotas.java TestaLivroNotas.java Se o diretório que contém o aplicativo incluir somente os arquivos desse aplicativo, você pode compilar todas as classes no diretório com o comando java *.java Um diagrama de classe UML para a classe LivroNotas. Na UML cada classe é modelada em um diagrama de classes como um retângulo com três compartimentos. O compartimento superior contém o nome da classe. O compartimento do meio contém os atributos da classes, que correspondem às variáveis de instância em Java. O compartimento do meio está vazio porque a versão de classe LivroNotas não tem nenhum atributo. O compartimento inferior contém as operações da classe, que correspondem aos métodos em Java.

Exemplo 2: Modifica o primeiro para permitir ao método receber um nome do curso como um argumento e exibir o nome como parte da mensagem de boas-vindas. A classe LivroNotas2 declara um método mostramensagem que exibe o nome do curso como parte da mensagem de boas-vindas. O novo método mostramensagem requer um parâmetros que representa o nome do curso a ser enviado para a saída. A nova classe é utilizada a partir do método main da classe TesteLivroNotas2. A linha 5 cria um Scanner chamado leia para ler o nome do curso fornecido pelo usuário. A linha 6 cria um objeto da classe LivroNotas e o atribui à variável meulivronotas. A linha 7 exibe um prompt que pede ao usuário digitar o nome de um curso. A linha 8 atribui o nome digitado à variável NomeCurso, utilizando o medo Scanner nextline() para realizar a entrada. O método nextline lê os caracteres digitados pelo usuário até o carectere de nova linha ser encontrado. O caractere nova linha é descartado. O método next lê palavras individuais, até achar um espaço em branco (espaço, tabulação ou nova linha). O caractere de espaço em branco é descartado. A linha 10 chama o método mostramensagem do meulivronotas. A variável NomeCurso entre parênteses é o argumento que é passado ao método mostramensagem para o método poder realizar sua tarefa. O diagrama de classe UML abaixo modela a classe LivroNotas. Essa classe contém a operação public mostramensagem. Entretanto, essa versão ter um parâmetro. A UML modela um parâmetro de modo um pouco diferente do Java listando o nome do parâmetro, dois-pontos e o tipo de parâmetro nos parênteses que seguem o nome da operação. A UML tem seus próprios tipos de dados semelhantes àqueles do Java. Exemplo 3: Armazena o nome do curso em um objeto LivroNotas. As variáveis declaradas no corpo de um método particular são conhecidas como variáveis locais e só podem ser utilizadas nesse método. Quando esse método terminar, os valores de suas variáveis locais são perdidos.

Uma classe normalmente consiste em um ou mais métodos que manipulam os atributos que pertencem a um objeto particular da classe. Os atributos são representados como variáveis em uma declaração de classe. Essas variáveis são chamadas de campos e são declaradas dentro de uma declaração de classe, mas fora dos corpos das declarações de método da classe. Quando cada objeto de uma classe mantém sua própria cópia de um atributo, o campo que representa o atributo também é conhecido como uma variável de instância cada objeto (instância) da classe tem uma instância separada da variável na memória. O exemplo abaixo demonstra uma classe LivroNotas que contém uma variável de instância nomecurso para representar o nome do curso de um objeto LivroNotas particular. A classe contém três métodos setnomecurso, getnomecurso e mostramensagem. O método setnomecurso armazena o nome de um curso em um LivroNotas. O método getnomecurso obtém o nome de um curso de um LivroNotas. O método mostramensagem exibe uma mensagem de boas vindas que inclui o nome do curso método obtém o nome do curso chamando o método getnomecurso na mesma classe. A linha 3 declara que nomecurso é uma variável de tipo String, declarada no corpo da classe, mas fora dos corpos dos métodos da classe. A linha 3 é uma declaração para uma variável de instância. A maioria das declarações de variável de instância é precedida pela palavrachave private, que é um modificador de acesso. As variáveis ou métodos declarados com o modificador de acesso private só são acessíveis a métodos da classe em que são declarados. O método setnomecurso (linhas 4 6) não retorna quaisquer dados quando ele completa sua tarefa, portanto seu tipo de retorno é void. O método recebe um parâmetro nome que presenta o nome do curso que será passado para o método como um argumento. A linha 5 atribui nome à variável de instância nomecurso. O método getnomecurso (linhas 7 9) retorna um nomecurso do objeto LivroNotas particular. O método tem uma lista vazia de parâmetros, então não exige informações adicionais para realizar sua tarefa. O método especifica que ele retorna uma String. Quando um método que especifica um tipo de retorno for chamado e completar sua tarefa, o método retornará um resultado para seu método chamador. O método mostrarmensagem (linhas 11 14) não retorna quaisquer dados quando ele completa sua tarefa, portanto seu tipo de retorno é void. As linhas 12 e 13

geram a saída de uma mensagem de boas-vindas que inclui o valor de variável de instância nomecurso. Precisamos criar um objeto de classe LivroNotas e chamar seus métodos antes que a mensagem de boas-vindas possa ser exibida. A classe TestaLivroNotas3 cria um objeto da classe LivroNotas3 e demonstra seus métodos. Um diagrama de classe UML do LivroNotas com uma variável de instância e os métodos set e get. O diagrama de classe UML indica que a classe LivroNotas3 tem um atributo nomecurso do tipo UML String e três operações setnomecurso (com um parâmetro de nome de tipo UML String), getnomecurso (retorna o tipo UML String) e mostrarmensagem. Os tipos de dados em Java estão divididos em duas categorias tipos primitivos e tipos por referência (tipos não-primitivos). Os tipos primitivos são boolean, byte, char, short, int, long, float e double. Todos os tipos não-primitivos são tipos por referência, então as classes, que especificam os tipos de objetos, são tipos por referência. Uma variável de tipo primitivo pode armazenar exatamente um valor de seu tipo declarado por vez. Os programas utilizam as variáveis de tipo por referência para armazenar as localizações de objetos nas memória do computador. Essas variáveis referenciam objetos no programa. Os objetos que são referenciados podem conter muitas variáveis de instância e métodos. Exemplo 4: Demonstra como os dados em um objeto LivroNotas podem ser inicializados quando o objeto é criado. Cada classe que você declara pode fornecer um construtor que pode ser utilizado para inicializar um objeto de uma classe quando o objeto for criado. A palavra chave new chama o construtor da classe para realizar a inicialização. A chamada de construtor é indicada pelo nome da classe seguido por parênteses. Ao declarar uma classe, você pode fornecer seu próprio construtor a fim de especificar a inicialização personalizada para objetos de sua classe.

As linhas 4 a 6 declaram o construtor para a classe LivroNotas4. Um construtor deve ter o mesmo nome da sua classe. Como um método, um construtor especifica em sua lista de parâmetros os dados que ele requer para realizar sua tarefa. A linha 4 indica que o construtor da classe LivroNotas4 tem um parâmetro chamado nome do tipo String. Na linha 5 do corpo do construtor, o nome passado para o construtor é atribuído à variável de instância nomecurso. As linhas 4 e 5 criam e inicializam um objeto LivroNotas4. As linhas 6 e 7 repetem o processo para outro objeto LivroNotas4. Um diagrama de classe UML que modele a classe LivroNotas4, que tem um construtor com um parâmetro nome de tipo String. Assim como nas operações, a UML modela construtores no terceiro compartimento de uma classe em um diagrama da classe. É habitual listar construtores antes de outras operações no terceiro compartimento. Exemplo 5: Procedimento para realizar a operação de adição entre dois valores, sem a passagem de parâmetros.

Exemplo 6: procedimento para realizar a operação de adição entre dois valores com a passagem de parâmetros.