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

Documentos relacionados
Análise de Programação

OO Orientação a Objetos

Linguagem de Programação II Implementação

Palavras Reservadas da Linguagem Java

OO - Orientação a Objetos

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

Orientação a Objetos Básica

Encapsulamento e Métodos (Construtores e Estáticos) João Paulo Q. dos Santos

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

POO fundamentos Parte II. Professor Vicente Paulo de Camargo

Programação Java Aula 03

Linguagem de Programação III

Modificadores de Acesso e Atributos de Classe

Linguagem de Programação II Implementação

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

JAVA TÓPICOS ESPECIAIS DE PROGRAMACAO ORIENTADA A OBJETOS

Linguagem de Programação III

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

Introdução. Atributos em Java. Atributos. Acesso à atributos em Java. Atributo versus variável. Atributos, métodos e encapsulamento.

Classes e Objetos. Sintaxe de classe em Java

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; }

Variáveis primitivas e Controle de fluxo

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

AULA 6 - ARRAYS. Array de 10 elementos

RESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em:

Instituto de Informática Estrutura de Dados II

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

Aula 05 Classes, Atributos, Métodos. Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes

Relacionamentos entre objetos

Classes e Objetos. Prof. Fernando V. Paulovich 9 de agosto de 2010

Programação Java. Marco Fagundes. - Herança, Classes Abstratas e Interfaces Marco Fagundes -

Programação Orientada a Objetos Introdução a POO

COMPORTAMENTOS - Observações

PROGRAMAÇÃO ORIENTADA A OBJETOS JAVA

[Desenvolvimento OO com Java] Orientação a objetos básica

Herança. Prof. Fernando V. Paulovich 23 de agosto de 2010

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas

Estrutura de Dados Funções e Procedimentos

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

Tipos, Literais, Operadores

Tipos, Literais, Operadores

Programação Estruturada e Orientada a Objetos. Objetos e Métodos

[Desenvolvimento OO com Java] Modificadores de acesso e atributos de classe

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

Programação Orientada a Objetos

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

1 Introdução e Conceitos básicos

Algoritmos I Aula 13 Linguagem de Programação Java

Métodos em Java. Prof. Esp. André Aparecido da Silva (Aulas 31 a 33) Disponível em:

Apêndice A. Alguns construtores e métodos importantes e úteis da classe Vector são:

Orientação a Objetos e Java

Linguagem de Programação II Importando Classes/Pacotes

Classe. Objeto é uma instância de uma classe. Classe é onde conceituamos o objeto É a essência do objeto Define os atributos e métodos

PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS - ORIENTAÇÃO A OBJETOS

Programação Orientada a Objetos. Métodos e Atributos. Métodos. Métodos. Alexandre César Muniz de Oliveira. Parte III

Conceitos Básicos da Programação OO

nome = n; cargo = c; salario = s; public void print() { System.out.println(nome cargo salario); public void aumento( double fator){

Programação Java. - Herança e Polimorfismo - Marco Fagundes Marco Fagundes -

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

INSTRUÇÕES DE REPETIÇÃO

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

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

Especialização em Engenharia de Software

Controlando Erros com Exceções

PROGRAMAÇÃO ORIENTADA A OBJETOS: OCULTAR INFORMAÇÕES E ENCAPSULAMENTO

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

[Desenvolvimento OO com Java] Orientação a objetos básica

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

Programação Orientada a Objetos Classes e Objetos. Prof. Vicente Paulo de Camargo

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

Programação Orientada a Objetos

Implementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação

Introdução a Programação. Tipos Estruturados de Dados

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

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

Desenvolvimento OO com Java Modificadores de acesso e atributos de classe

DIRETORIA ACADÊMICA DE GESTÃO E TECNOLOGIA DA INFORMAÇÃO DIATINF TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TADS

Lição 7 Array em Java

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

Java Variáveis e Controle Fluxo

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

Programação Orientada a Objetos

Orientação a objetos. Programação. Orientada a Objetos. Orientação a objetos. Orientação a objetos. Abstração e encapsulamento

Java Standard Edition (JSE)

Ambientação com a Sintaxe de Java: parte 1

AULA 13 MÉTODOS. Disciplina: Programação Orientada a Objetos Professora: Alba Lopes

Tipos de dados e comandos POO

Linguagem de Montagem. Objetos e classes. Métodos e parâmetros. Linguagem de Montagem. Profs. Marcelo Nogueira / Fábio Amaral 1

Universidade Estadual de Santa Cruz

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS

Usando o Eclipse - Fundamentos. Professor Vicente Paulo de Camargo

Fundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus

Sintaxe da linguagem Java

Transcrição:

2. Classes e Objetos Uma classe é um modelo que define os atributos e métodos comuns a um conjunto de objetos de forma encapsulada. Atributos são informações ou dados que descrevem, categorizam ou quantificam um objeto. Um objeto da classe Conta, por exemplo, terá o nome e saldo como atributos. Dados armazenados em um objeto podem ser tanto primitivos, tais como inteiros ou caracteres, ou referências para outros objetos. Uma classe pode conter também métodos que especifiquem o comportamento ou ações que a classe consegue realizar. A classe Conta, por exemplo, pode depositar, retirar e ver saldo. 2.1 - Criando uma classe Uma classe em Java é sempre declarada com a reservada class seguida do nome da classe. O nome da classe não pode conter espaços, deve ser sempre iniciado por um letra sendo esta em maiúsculo. Vamos agora criar a classe Conta com a seguinte especificação: Conta String nome int saldo Conta (String nome) void deposita (int valor) void retira (int valor) int getsaldo() atributos métodos public class Conta { public String nome; private int saldo; public Conta (String nome){ this.nome = nome; saldo = 0; saldo += valor; public void retira (int valor){ return saldo; Capítulo 2 Classes e Objetos Página 1

2.2 - Criando instâncias de objetos Para criar (construir) uma instância do objeto da classe Conta, basta usar a palavra reservada new (aciona o construtor da classe). class ExemploConta { public static void main(string[] args) { new Conta( João ); O código acima cria um objeto do tipo Conta, mas como acessar o objeto criado? Para isso é necessário criar uma variável de referência para o objeto criado. class ExemploConta { public static void main(string[] args) { Conta c; c = new Conta( João ); Através da variável c, agora podemos acessar o objeto recém criado para informar o nome do correntista, realizar um depósito e uma retirada e consultar saldo. Realizar mais uma retirada, um novo depósito e consultar o saldo novamente. Programa que usa a classe Conta public class ExemploConta { public static void main (String args[]) { Conta c; c=new Conta("João"); System.out.println("Nome:" +c.nome); c.deposita(1000); c.retira(200); System.out.println("Saldo:" +c.getsaldo()); c.retira(300); c.deposita(150); System.out.println("Saldo:" +c.getsaldo()); Acessando o conteúdo de um atributo: System.out.println("Nome:" +c.nome); objeto.atributo Chamando um método: c.deposita(1000); argumento de entrada System.out.println("Saldo:" +c.getsaldo()); objeto.metodo O valor retornado pode ser argumento de outro método. Capítulo 2 Classes e Objetos Página 2

2.3 - Métodos Quando você define uma classe é necessário também as operações que farão parte desta classe. Cada operação terá uma implementação específica que é conhecida como método. Um método em Java é equivalente a uma função, procedimento ou subrotina em outras linguagens, com a diferença que ele deve ser definido dentro da declaração da classe. 2.3.1 - Formato de uma definição de método Os elementos integrantes de um método são: modificador de acesso, tipo de retorno, nome da operação, parâmetros e corpo da operação. Modificador de acesso: utilizados para restringirem o acesso as operações. Pode ser public, default, protected ou private. public: Permite o acesso em qualquer classe; private: Permite o acesso somente dentro da classe onde foi declarado; package/default: Acesso público dentro do mesmo package da classe; protected: Usada em herença de classes. Permite que classes-filhas acessem ou modifiquem métodos na classe-pai. Tipo de retorno: pode ser um tipo primitivo (int, char) ou um tipo composto (um objeto String ou Clientes, por exemplo), ou mesmo não haver retorno algum. Neste caso deverá constar void como tipo de retorno. Nome da operação: deve expressar o que a operação faz, dando a idéia de uma ação. Parâmetros ou Argumento do método: representam os valores que podemos passar para a operação. Toda operação pode receber um ou mais parâmetros, sendo assim cada um deles deve ser separado dos demais por vírgula. Essa variável (int valor) é uma variável comum, chamada também de temporária ou local, pois, ao final da execução desse método, ela deixa de existir. Capítulo 2 Classes e Objetos Página 3

Dentro do método, podemos declarar uma nova variável. Essa variável, assim como o parâmetro (argumento), vai morrer no fim do método, pois este é seu escopo. Havendo ou não parâmetros, os mesmos devem ser representados entre parênteses. Corpo da operação: é o local onde fica a implantação da mesma. Este código deve ficar entre chaves, que representam o início e o fim do bloco. public void retira (int valor){ 2.3.2 Método com retorno Um método sempre tem que retornar alguma coisa, nem que essa coisa seja nada, como nos exemplos anteriores onde estávamos usando o void. Um método pode retornar um valor para o código que o chamou. No caso do nosso método getsaldo, podemos devolver o saldo (observe que o tipo retornado é inteiro, para apenas uso exemplificativo). return saldo; A palavra reservada return indica que o método vai terminar ali, retornando o saldo. Agora vamos colocar sofisticar o método retira da classe Conta: public void retira (int valor){ Observe que o método realiza a operação independente de possuir saldo ou não. Para melhorar isso, uma alternativa seria modificarmos o método: boolean retira(int valor) { if (saldo < valor) { return false; else { return true; Agora a declaração do método mudou. O método retira não tem void na frente. Isto quer dizer que quando é acessado, ele devolve algum tipo de informação(um boolean). Capítulo 2 Classes e Objetos Página 4

Exemplo de uso: c.saldo = 5000; if (c.retira(8000)){ System.out.println("Consegui sacar"); else { System.out.println("Não consegui sacar"); 2.3.3 A especificação this Como foi observado na classe Conta a especificação this é utilizada para fazer referência a partes da própria classe (depois veremos que é opcional). Em alguns casos, pode haver um nome de um argumento ou variável declarada por um método que coincida com o nome de um atributo da classe. Neste caso, para que neste método se possa referenciar o atributo, seja necessário usar this (o this referencia o objeto corrente). public Conta (String nome){ nome = nome; // ERRO this.nome = nome; // Forma correta saldo = 0; 2.4 Método Construtor Construtores são métodos especiais que são executados automaticamente pelo ambiente de execução Java quando um objeto é criado. Algumas características presentes na definição de um método construtor: Um construtor sempre possui o mesmo nome de sua classe; O construtor pode ou não ter argumentos; Pode-se ter vários métodos construtores numa mesma classe, o que os diferencia são os argumentos (sobrecarga de construtores); O construtor é diferente de outros métodos, pois ele não possui tipo de retorno. Não se pode chamar um construtor; É acionado pela palavra-chave new. Vamos analisar o construtor da classe Conta: public Conta (String nome){ this.nome = nome; saldo = 0; É possível colocar dentro do construtor um código a ser executado no momento da criação do objeto. Assim quando o objeto da classe Conta for instanciado este código será executado. No exemplo, é atribuído o nome do objeto e o saldo 0 para os atributos nome e saldo respectivamente. Construtor com mais de um parâmetro: public class Retangulo { private double base; private double altura; Capítulo 2 Classes e Objetos Página 5

public Retangulo (double b, double a) { base = b; altura = a; O que acontece se um construtor não é fornecido? Caso nenhum construtor seja fornecido, Java supre esta ausência com um construtor default. Este construtor não recebe nenhum parâmetro e não executa nenhuma tarefa de inicialização. 2.5 - Escopo de variáveis No Java, podemos declarar variáveis a qualquer momento. Porém, dependendo de onde você as declarou, ela vai valer de um determinado ponto a outro. As variáveis quando são declaradas estão visíveis dentro de um determinado escopo de código. Este escopo é delimitado por chaves que representam blocos de códigos. Isto significa que uma variável declarada dentro de um bloco de código é visível somente àquele bloco de código bem como a outros blocos que estiverem dentro deste. Veja o exemplo abaixo: Public class Conta{ ESCOPO DE CLASSE ESCOPO DO MÉTODO // código fonte ESCOPO DE BLOCO for, if, while etc Observe na classe Conta o escopo do atributo saldo foi definido dentro do escopo de classe, ou seja, dentro das chaves da classe. Pode, portando, ser acessado por qualquer operação que estiver também definida dentro do escopo de classe, como o método retira(). Capítulo 2 Classes e Objetos Página 6

Classe Conta Exemplo com duas contas: Utilizando a classe Conta, faça um programa que controle a conta corrente da Ana e da Beatriz. A seguir faça a entrada de um valor correspondente a um depósito. O valor informado deve instanciado (armazenado) em ambas as contas, para isso utilize o método deposita. O programa deverá solicitar um retirada de uma das contas, com a opção 1 para Ana e 2 para Beatriz, use o método retira. No final com o método getsaldo, imprima o saldo de Ana e Beatriz. import javax.swing.joptionpane; public class Exemplo2Contas { public static void main (String args[]) { Conta ca,cb; String sdep, sret, stipo; int dep, ret, tipo; ca = new Conta ("Ana"); cb = new Conta ("Beatriz"); sdep = JOptionPane.showInputDialog ("Depósito: "); dep = Integer.parseInt(sDep); ca.deposita(dep); cb.deposita(dep); sret = JOptionPane.showInputDialog("Retirada: "); ret = Integer.parseInt(sRet); stipo = JOptionPane.showInputDialog("1.Ana 2.Beatriz"); tipo = Integer.parseInt(sTipo); if (tipo==1) ca.retira(ret); else cb.retira(ret); System.out.println("Saldo conta Ana: "+ ca.getsaldo()); System.out.println("Saldo conta Beatriz: "+ cb.getsaldo()); System.exit(0); Exercícios utilizado a Classe Conta Capítulo 2 Classes e Objetos Página 7