DCC / ICEx / UFMG. Membros de Classes. Eduardo Figueiredo.

Documentos relacionados
Tópicos da Aula. Classes e Objetos. Classe Pública em Java. Classes em Java. Assinatura de Métodos. Corpo de Classes e Métodos. Conceitos de classe

Classes e objetos: Um exame mais profundo by Pearson Education do Brasil

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

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

Tratamento de Exceção. Tratamento de Exceções. Vantagens de TE. Exemplos de Exceções. Exemplo: Divide1 (sem TE)

Programação Orientada a Objetos. Aula 1.9 this e static. Prof. Bruno Moreno

Implementando um Projeto. Programação em Java. Do Projeto para Implementação. Classe Pública em Java. Corpo de Classes e Métodos. Convenção de Nomes

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

Análise de Programação

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

Especificam quem tem acesso a cada entidade, isto é, quem tem acesso a. cada classe e cada membro da classe (dados e métodos)

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

Idiomas de Programação

Universidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática

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

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

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos

Classes e Objetos. Sintaxe de classe em Java

Genéricos. Profa. Thienne Johnson EACH/USP

Linguagens de Programação

Programação Orientada a Objetos

Linguagem de Programação II Implementação

UNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o.

AULA TEÓRICA 9. Tema 8. Herança (continuação) Ø Sobreposição de métodos. Ø Variáveis e métodos estáticos. Ø Hierarquia de classes.

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

Engenharia de Software Aula 21. Revisão da Prova 2. Eduardo Figueiredo.

Universidade Federal de Mato Grosso do Sul. Propriedades da Programação Orientada a Objetos

Programação Orientada a Objetos. Herança

Atributos e Métodos Estáticos

Definição de classes em Java (introdução) PCO / PPO Departamento de Informática Faculdade de Ciências da Universidade de Lisboa

Aula 6 POO 1 Construtores. Profa. Elaine Faria UFU

Linguagem de Programação Orientada a Objeto Polimorfismo, Classes Abstractas e Interfaces

Linguagem de Programação Orientada a Objeto Abstração - Encapsulamento

Programação Orientada a Objetos

Programação Orientada a Objetos

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

Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM

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

Programação. Orientada a Objetos: Herança. Objetos. Relacionamento entre classes. Análise e Projeto Orientados a. Objetos

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

Programação Orientada a Objetos. Professor: André Luis Meneses Silva br.geocities.com/programacao2ufs

Programação Orientada a Objetos (DPADF 0063)

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

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

AspectJ. AspectJ. Extensões de AspectJ. Pontos de Junção. Exemplos de Pontos de Junção. Modelo de Pontos de Junção

Threads. O que é uma Thread? Paralelismo

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

Programação Orientada a Objetos para Redes de Computadores

Lição 4 Fundamentos da programação

Herança e Polimorfismo - Parte II -

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

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

Fundamentos de programação

Programação por Objectos. Java

Extensão de classes em Java - noções elementares - PCO / PPO Departamento de Informática Faculdade de Ciências da Universidade de Lisboa

4 Conceito de Herança

Programação OO em Java. Profa Andréa Schwertner Charão DLSC/CT/UFSM

Linguagem de Programação III

Programação por Objectos. Java

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

Computação II - Java - Teste 1.2 Prof. Adriano Joaquim de Oliveira Cruz 2015/04/27

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

Instituto de Informática Estrutura de Dados II

Aula teórica 14. Tema 12. Subprogramas (cont)

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

O AMBIENTE DE DESENVOLVIMENTO

Polimorfismo e Ligação Dinâmica. Alcides Pamplona Polimorfismo e Ligação Dinâmica

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

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

Vejamos o seguinte exemplo public class Exemplo private int testada = 20; public void testapalavra(int testada) JOptionPane.showMessageDialog(null,"Pa

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

Programação Orientada por Objectos 2010/11. 2º Exame 28 de Junho de 2011

LÓGICA DE PROGRAMAÇÃO INTRODUÇÃO AO JAVA. Professor Carlos Muniz

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

Programação Orientada a Objetos II JAVA Décima Aula. Prof. Rogério Albuquerque de Almeida

Aula 5 POO 1 Encapsulamento. Profa. Elaine Faria UFU

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

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

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação

Herança e Polimorfismo -Parte II -

Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção.

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

Programação Orientada a Objetos em Java

Módulo 5. Programação Orientada a Objetos. Programação Orientada a Objetos I Java (Rone Ilídio)

Modificadores de Acesso JAVA

Programação Java (nível intermediário) 4. Polimorfismo

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

Conceitos Básicos da Programação OO

BCC221 Programação Orientada a Objetos. Prof. Marco Antonio M. Carvalho 2014/2

Programação Orientada a Objetos

Padrões de Projeto. Padrões de Projeto. Além dos 23 Padrões GoF. Os 23 Padrões de Projeto. Documentação de um Padrão. Classificação dos Padrões

Herança. Universidade Católica de Pernambuco Ciência da Computação. Prof. Márcio Bueno.

Introdução à Programação. Encapsulamento e Herança

Ex: carro_desportivo poderá ser uma subclasse de automóvel (carro_desportivo é_um automóvel)

Programação Orientada a Objetos. SANTOS, Rafael (PLT) e Guia de Estudo SCJP. SIERRA, Kathy e BATES, Bert

JAVA. Professor: Bruno Toledo

Transcrição:

DCC / ICEx / UFMG Membros de Classes Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo

Membros de Uma Classe Construtor Métodos De classe De objeto Variáveis De classe De Objeto Constantes

Construtores de Objetos

Construtor Padrão Toda classe deve ter pelo menos um construtor Responsável pela criação do objeto A chamada do construtor deve ser precedida pela palavra reservada new Se nenhum construtor for declarado, o compilador adiciona automaticamente o construtor padrão Construtor vazio e sem parâmetros

Exemplo: Time1 public class Time1 { private int hour; // 0-23 private int minute; // 0-59 private int second; // 0-59 public void settime( int h, int m, int s ) { hour = ( ( h >= 0 && h < 24 )? h : 0 ); minute = ( ( m >= 0 && m < 60 )? m : 0 ); second = ( ( s >= 0 && s < 60 )? s : 0 ); Construtor vazio da classe não precisa ser declarado. public Time1 ( ) { public String tostring() { return ( ( hour == 0 hour == 12 )? 12 : hour % 12 ) + ":" + minute + ":" + second + " " + ( hour < 12? "AM" : "PM" );

Exemplo: Time1Test public class Time1Test { public static void main( String[] args ) { Time1 time = new Time1(); System.out.print( "Hora inicial: " ); System.out.println( time.tostring() ); System.out.println(); Chamada ao construtor padrão cria um objeto Time1. time.settime( 13, 27, 6 ); System.out.print( "Hora apos settime: " ); System.out.println( time.tostring() ); System.out.println(); time.settime( 99, 99, 99 ); System.out.println( "Apos definir hora invalida." ); System.out.print( "Hora: " ); System.out.println( time.tostring() );

Construtores Sobrecarregados Pode-se definir vários construtores para uma classe Construtores devem ter assinaturas diferentes (parâmetros) Se for declarado algum construtor, o vazio só existe quando declarado Construtor vazio só não precisa ser declarado se não existe outro construtor

Exemplo: Time2 public class Time2 { public Time2() { this( 0, 0, 0 ); public Time2( int h ) { this( h, 0, 0 ); public Time2( int h, int m ) { this( h, m, 0 ); public Time2( int h, int m, int s ) { settime( h, m, s ); Construtores da public Time2( Time2 time ) { classe Time2. this( time.gethour(), time.getminute(), time.getsecond() );...

Exemplo: Time2 public class Time2 { public Time2() { this( 0, 0, 0 ); public Time2( int h ) { this( h, 0, 0 ); public Time2( int h, int m ) { this( h, m, 0 ); public Time2( int h, int m, int s ) { settime( h, m, s ); public Time2( Time2 time ) { this( time.gethour(), time.getminute(), time.getsecond() );... Se outros construtores forem declarados, o construtor padrão (sem argumentos) não é fornecido automaticamente.

Exemplo: Time2 public class Time2 { public Time2() { this( 0, 0, 0 ); public Time2( int h ) { this( h, 0, 0 ); public Time2( int h, int m ) { this( h, m, 0 ); public Time2( int h, int m, int s ) { settime( h, m, s ); public Time2( Time2 time ) { this( time.gethour(), time.getminute(), time.getsecond() );... A referência this indica a chamada do construtor correspondente.

Exemplo: Time2Test public class Time2Test { public static void main( String[] args ) { Time2 t1 = new Time2(); Time2 t2 = new Time2( 2 ); Time2 t3 = new Time2( 21, 34 ); Time2 t4 = new Time2( 12, 25, 42 ); Time2 t5 = new Time2( 27, 74, 99 ); Time2 t6 = new Time2( t4 ); Criação de 6 objetos usando diferentes construtores. System.out.print( "t1: " ); System.out.println( t1.tostring() ); System.out.print( "t2: " ); System.out.println( t2.tostring() ); System.out.print( "t3: " ); System.out.println( t3.tostring() ); System.out.print( "t4: " ); System.out.println( t4.tostring() ); System.out.print( "t5: " ); System.out.println( t5.tostring() ); System.out.print( "t6: " ); System.out.println( t6.tostring() );

Membros Estáticos e Constantes

Membros Estáticos Variável de Classe Usada quando apenas uma variável é compartilhada pelos objetos da classe Método de Classe Funções que podem ser executadas independente de um objeto Variáveis e métodos estáticos podem ser usados mesmo sem nenhum objeto

Exemplo: Employee public class Employee { private String firstname; private String lastname; protected static int count = 0; public Employee( String first, String last ) { firstname = first; lastname = last; ++count; public String getfirstname() { return firstname; public String getlastname() { return lastname; Variável de classe conta o número de objetos Employee. Um método estático só pode acessar diretamente membros estáticos. public static int getcount() { return count;

Exemplo: EmployeeTest public class EmployeeTest { public static void main( String[] args ) { System.out.println( "Incio do programa, count: " + Employee.count); Employee e1 = new Employee( "Susan", "Baker" ); System.out.println( "Criou Susan" ); System.out.println( "e1.count: " + e1.count); Cria Employee Susan. Employee e2 = new Employee( "Bob", "Blue" ); System.out.println( "Criou Bob" ); System.out.println( "e2.count: " + e2.count); Cria Employee Bob. System.out.println( "" ); System.out.println( "Employee.count: " + Employee.count); System.out.println( "e1.count: " + e1.count); System.out.println( "e2.count: " + e2.count);

Exemplo: EmployeeTest public class EmployeeTest { public static void main( String[] args ) { System.out.println( "Incio do programa, count: " + Employee.count); Employee e1 = new Employee( "Susan", "Baker" ); System.out.println( "Criou Susan" ); System.out.println( "e1.count: " + e1.count); Employee e2 = new Employee( "Bob", "Blue" ); System.out.println( "Criou Bob" ); System.out.println( "e2.count: " + e2.count); Os valores são o mesmos (2) porque os objetos compartilham a mesma variável count System.out.println( "" ); System.out.println( "Employee.count: " + Employee.count); System.out.println( "e1.count: " + e1.count); System.out.println( "e2.count: " + e2.count);

Constantes O modificador final é usado para indicar constantes do programa Os valores não podem ser modificados O uso do modificador final torna o programa mais robusto Evita que o valor seja acidentalmente modificado

Exemplo: Increment public class Increment { private int total = 0; private final int INCREMENT; public Increment( int incrementvalue ) { INCREMENT = incrementvalue; A padronização do nome de constantes é MAIUSCULO. O valor de uma constante só pode ser alterado no construtor. public void addincrementtototal() { total += INCREMENT; public String tostring() { return "total = " + total; Constantes podem ser acessadas da mesma forma que variáveis.

Exemplo: IncrementTest public class IncrementTest { public static void main( String[] args ) { Increment value = new Increment( 5 ); System.out.println( "Before incrementing: " + value ); for ( int i = 1; i <= 3; i++ ) { value.addincrementtototal(); System.out.println( "After increment " + i + ": " + value );

Método finalize O método finalize esta disponível em todo objeto Ele pertence a classe Object, que toda classe estende direta ou indiretamente Antes de um objeto ser descartado pelo coletor de lixo, o método finalize é chamado Este método pode ser sobrescrito por qualquer objeto (o que deve ser evitado)

Bibliografia da Aula DEITEL, H. M.; DEITEL P. J. Java: Como Programar, 8a. Edição. Pearson, 2010. Capítulo 8 Classes e Objetos Capítulo 9 Herança