3.1.7 Variáveis de Classe e Instância

Slides:



Advertisements
Apresentações semelhantes
Polimorfismo e Acoplamento Dinâmico
Advertisements

Membros estáticos.
Orientação a Objetos Classes
Interfaces.
Atributos, Encapsulamento e Interface em Java
Orientação a Objetos usando Java
Herança e Arquitetura em camadas
Aula Prática 5 05/05/2010. //Estrutura do método public int subtrair (int a, int b){ //Calcule a operação desejada. int resultado = a – b; //Retorne o.
1 Design Pattern Double Checked Locking. 2 Design Pattern Apresenta soluções para problemas que ocorrem repetidamente em nosso ambiente computacional.
Conceitos de OO em Java Parte I
Associação. 2 Desafio – Aula class Aluno { 2. private String nome; 3. private float nota; 4. public Aluno(String nome, float nota){ 5. this.nome.
Implementação Orientada a Objetos – Aula 04 Métodos, parâmetros e retorno Prof. Danielle Martin/Marcia Bissaco Universidade de Mogi das Cruzes
IDENTIFICAÇÃO DOS RELACIONAMENTOS Nesta atividade devem ser definidos os relacionamentos entre as classes Podem ser representados pela: – associação, –
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
CLASSES EM JAVA Dilvan Moreira (baseado no livro Big Java)
PROGRAMANDO EM JAVA Dilvan Moreira (baseado no livro Big Java)
PROGRAMAÇÃO ORIENTADA A OBJETOS EM C++ Professor: Dilvan Moreira.
TÉCNICO EM INFORMÁTICA Linguagem e Técnica de Programação III PROF. MARCELO N. SANTOS
Atributos e Métodos Restrições de Acesso Encapsulamento Herança.
1 Programação em C Aula 7. 2 Um lojista atribui o preço de venda dos itens de sua loja com um número racional (uma fração de inteiros). Este comerciante.
Classes Objetos Atributos Métodos Coletor de Lixo (Garbage Collector ) Confraria do Java Nivelamento. Caroline, Marcelo e Luiz 12/05/2007.
Generalização, Especialização e Conceitos Carlos Bazilio Depto de Ciência e Tecnologia Pólo Universitário de Rio das Ostras Universidade Federal Fluminense.
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal
Estruturas de Dados Aula 2: Estruturas Estáticas
Polimorfismo e suas aplicações em C++.
Módulo I Capítulo 2: IDE e Variáveis
Introdução Java.
3.1 Classes e Objetos Em um programa orientado a objetos normalmente existem vários objetos de um mesmo tipo. Por exemplo, um programa de controle de.
INF1007: Programação 2 9 – Tipos Abstratos de Dados
Java: Interfaces Alcides Calsavara.
Singleton e Template Method
Criação e manipulação de objetos
Unidade IV– Relacionamento entre Objetos
Unidade V – Herança e Ligação Dinâmica
Programação Orientada a Objetos
Programação Orientada a Objetos
Tipos de Arquivos Arquivos podem armazenar caracteres (arquivo texto) ou bytes (arquivos binários); Na prática, arquivos textos são abertos por editores.
Desenvolvimento de Sistemas Orientados a Objetos
Não tem introdução vcs vai começar aprendendo: isso sempre é o que vem em primeiro no código: using System;  usa o sistema inicia ele using System.Collections.Generic;
Unidade VI – Exceções e Interfaces
Elaborando as Interfaces Aulas 37, 38 e 39.
Wrappers.
Programação Orientada a Objetos*
Programação Orientada a Objetos*
Rosemary Silveira Filgueiras Melo
Pacotes Servem para organizar o código, por exemplo, agrupar classes correlatas. Vamos supor uma classe Ponto2D pertencente ao pacote formas. A classe.
Programação Orientada a Objetos*
3.2 Sobrecarga de Métodos (Overloading)
Programação Orientada a Objetos*
Rosemary Silveira Filgueiras Melo
Rosemary Silveira Filgueiras Melo
Programação Orientada a Objetos
Programação Orientada a Objetos
Laboratório I Mateus Raeder.
Laboratório I Mateus Raeder.
Laboratório I Mateus Raeder.
Rosemary Silveira Filgueiras Melo
Curso básico de PHP. 1 Vantagens: Gratuito Multiplataforma Estável Rapidez Comunicação.
Tipos Primitivos de Dados
Java interface Projeto – Pacote - Class.
Compilação de Linguagens OO
RESULUÇÃO DOS EXERCÍCIOS,
Ordenando Coleções A Classe Collections.
A interface java.util.List
Programação II Mateus Raeder.
Programação Orientada a Objetos
Constantes, Variáveis e Memória
RESULUÇÃO DOS EXERCÍCIOS E
Percorrendo coleções com Iterator
Programação de Computadores II
Transcrição da apresentação:

3.1.7 Variáveis de Classe e Instância As variáveis de uma classe podem ser de instância ou de classe. Cada classe possui as suas próprias cópias das variáveis de instância, enquanto que as variáveis de classe são compartilhadas. Alan Santos

3.1.7 Variáveis de Classe e Instância Altere a classe ContaCorrente acrescentando a variável de classe dinheiroTotal, para guardar o somatório dos saldos de todas as contas. Alan Santos

3.1.7 Variáveis de Classe e Instância class ContaCorrente { static float dinheiroTotal; float saldo; String nome; float verificaSaldo ( ) { return saldo; } void depositaValor (float valor) { saldo = saldo + valor; dinheiroTotal += valor; void retiraValor (float valor) { if (saldo>=valor) { saldo = saldo – valor; dinheiroTotal -= valor; Alan Santos

3.1.7 Variáveis de Classe e Instância Cada instância da classe ContaCorrente (objeto) terá as mesmas variáveis (saldo e nome), porém, elas podem ter valores diferentes em cada instância. A variável de classe (dinheiroTotal), porém, é compartilhada por todos os objetos. Por isso, possui o mesmo valor para todos os objetos e se um objeto modificar o seu valor, o novo valor é visto por todos os outros objetos. Alan Santos

3.1.7 Variáveis de Classe e Instância Múltiplas instâncias de uma classe Alan Santos

3.1.7 Variáveis de Classe e Instância Membros static Definem membros da classe Não existem em cada objeto Pode ser aplicado a atributos e métodos Podem ser acessados por objetos Não é necessário criar objeto, pode-se acessar diretamente da classe NomeClasse.membro Alan Santos

3.1.7 Variáveis de Classe e Instância Nome do projeto: poligonos public class ImprimirStrings { 1 String str = “atributo-nao-estatico”; 2 public void imprimir() { 3 String a = new String(“abcdef”); 4 String b = new String(“xyz”); 5 System.out.println(a.concat(b)); 6 } 7 public static void main(String[] args) { 8 imprimir(); 9 } 10 } Alan Santos

3.1.7 Variáveis de Classe e Instância O compilador acusa o seguinte erro na linha 9: non-static method imprimir() cannot be referenced from static context. Por que isso acontece? Um método de classe não pode chamar um método de instância, pois não há objeto instanciado. Alan Santos

3.1.7 Variáveis de Classe e Instância Se fizermos referência ao atributo não-estático ‘str’ no método main ou no imprimir obtermos o seguinte erro de compilação: non-static variable str cannot be referenced from static context. Por que isso acontece? Métodos estáticos NÃO acessam variáveis de instância Métodos estáticos SÓ acessam variáveis estáticas e/ou declaradas no corpo do método Alan Santos

3.1.7 Variáveis de Classe e Instância Resumindo: Métodos e atributos não-estáticos não podem ser referenciados em contextos estáticos. Alan Santos

3.1.7 Variáveis de Classe e Instância 1 public class Circulo { 2 static final double PI = 3.14159; 3 public static double calculaArea(double raio) { 4 return PI * ( raio * raio ); 5 } 6 } 7 // um método qualquer // utilizamos o nome da classe 10 double areaCirculo = Circulo.calculaArea(5); Alan Santos

3.1.7 Variáveis de Classe e Instância Não devemos abusar de métodos estáticos porque um programa que utiliza somente métodos de classe não é orientado a objetos (não há objetos) Alan Santos