Keeper of Knowledge. Capítulo 2 Classes em Java



Documentos relacionados
Programação Orientada a Objetos em Java

Módulo 07 Características Avançadas de Classes

POO Programação Orientada a Objetos. Classes em Java

Construção de novas Classes em Java. Classes Atributos Métodos Herança...

Paradigmas da Programação PPROG. Linguagem JAVA. Interfaces. (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33

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

Capítulo 4. Packages e interfaces

Java 2 Standard Edition Como criar classes e objetos

Implementando uma Classe e Criando Objetos a partir dela

ESTRUTURA BÁSICA DE UM PROGRAMA JAVA

Noções sobre Objetos e Classes

Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código }

Classes Abstratas e Interfaces

A Introdução à Programação Orientada a Objetos. Programação e Sistemas de Informação

Introdução a Java. Hélder Nunes

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

Técnicas de Programação II

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA

Aula 04 Operadores e Entrada de Dados. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Java Básico. Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp

Algoritmos e Programação II. Sobrecarga

Projeto de Software Orientado a Objeto

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA

Prova de Java. 1) Copie o programa abaixo no eclipse e complete-o, utilizando os conceitos aprendidos durante o curso. (4 pontos)

Programação por Objectos. Java

Módulo 02 Programação Orientada a Objetos. Última atualização: 07/06/2010

Programação por Objectos. Java

Encapsulamento de Dados

insfcanceof new public switch transient while byte continue extends for int null

Prof. Esp. Adriano Carvalho

Criar a classe Aula.java com o seguinte código: Compilar e Executar

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

Java. Marcio de Carvalho Victorino

Programação Avançada

Orientação a Objetos com Java

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais

A ) O cliente terá que implementar uma interface remota. . Definir a interface remota com os métodos que poderão ser acedidos remotamente

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

Sistemas Paralelos e Distribuídos /2004 Curso: Matemática /Informática Sistemas Distribuídos /2004 Curso: Ensino da Informática

CURSO DE PROGRAMAÇÃO EM JAVA

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this.

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões

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

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

Programação Orientada a Objetos (DPADF 0063)

Threads e Concorrência em Java (Material de Apoio)

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

Sobre o Professor Dr. Sylvio Barbon Junior

Num sistema de objectos distribuídos, dois conceitos são fundamentais.

Um pouco do Java. Prof. Eduardo

SISTEMAS DISTRIBUÍDOS

Programação com Objectos. Processamento de Dados I. 4. Classes Abstractas

Orientação a Objetos

Programação online em Java

Java TM e o Modelo de Objetos

Exemplo 1. Um programa que cria uma instância de uma classe que herda da classe Frame

Análise de Programação

Implementação de Classe e Auto-Relacionamento em Java

Linguagem de Programação III

Aula 2. Objetivos Conceitos; Instalação do Text Pad; Entendendo o código java do AloMundo1 Codificação do AloMundo2,AloMundo3 e AloMundo4.

JAVA Orientação a Objetos. Usando diálogos com JOptionPane

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

Exercícios de Revisão Java Básico

Relacionamentos entre objetos. Relacionamentos entre objetos. Relacionamentos entre objetos. Relacionamentos entre objetos

Professor: Douglas Sousa Cursos de Computação

Técnicas de Programação Avançada TCC Profs.: Anselmo Montenegro Conteúdo: Introdução à Orientação a Objetos

Java - Introdução. Professor: Vilson Heck Junior. vilson.junior@ifsc.edu.br

Reuso com Herança a e Composiçã

Especialização em desenvolvimento para web com interfaces ricas. Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares

Tutorial RMI (Remote Method Invocation) por Alabê Duarte

Prof. Jhonatan Fernando

THREADS EM JAVA. George Gomes Cabral

Herança. Alberto Costa Neto DComp - UFS

Prototype, um Design Patterns de Criação

Sistemas Distribuídos

Modificador static e Pacotes. Alberto Costa Neto DComp - UFS

Profº. Enrique Pimentel Leite de Oliveira

7 RTTI e Interfaces. Desenvolvimento OO com Java. Vítor E. Silva Souza (vitorsouza@inf.ufes.br)

Sistemas Distribuídos

Orientação a Objetos e a Linguagem Java

Acesso a Banco. Conexão em Java. Conexão em Java. Programação Orientada a Objetos Profa. Cristiane e Prof. Daniel

Programação Orientada a Objetos e Java - Introdução. Carlos Lopes

UML Aspectos de projetos em Diagramas de classes

Chamadas Remotas de Procedimentos (RPC) O Conceito de Procedimentos. RPC: Programa Distribuído. RPC: Modelo de Execução

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS

public Agenda() { compromissos = null; } public int getnumerodecompromissos() { if (compromissos==null) return 0; else return compromissos.

Análise e Projeto Orientados por Objetos

Persistência de Classes em Tabelas de Banco de Dados

Exercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this.

Universidade Federal de Uberlândia Disciplina: POO2 Prof. Fabiano Dorça. Padrões de Projeto. Padrão Command

O que é um algoritmo? O que é um programa? Algoritmos. Programas. Aula 1 Tipo Abstrato de Dados

Membros de classe e de instância. PARTE III: Java e OO - detalhes. Exemplo 1: método. Exercício. Exemplo 1 corrigido

PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

Simulado de Linguagem de Programação Java

Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans.

Curso de PHP. FATEC - Jundiaí. A programação orientada a objetos (object-oriented oriented programming

8 Classes Internas. Desenvolvimento OO com Java. Vítor E. Silva Souza

Transcrição:

Capítulo 2 Classes em Java INTRODUÇÃO Uma classe é um conjunto de software que representa uma realidade qualquer, que pode ser representada por números e símbolos. Uma classe possui dados de um ou mais tipos e métodos que actuam sobre dados específicos. A classe é a arquitectura de um objecto. É a representação geral de vários casos particulares (os Objectos). A classe é um ficheiro texto com extensão.java onde o nome da classe é o nome do ficheiro.java. Ou seja se tivermos o ficheiro teste.java o nome da classe tem de ser teste. INICIAÇÃO Por norma o nome de uma classe deve respeitar a seguinte regra: 1ªLetra : Maiúscula. Restantes: Minusculas, excepto quando for outra palavra agregada. Por norma o nome de um método(que não um construtor) e dos dados respeitam a seguinte regra: 1ªLetra : Minúscula. Restantes: Minusculas, excepto quando for outra palavra agregada. Exs: ClasseTeste, Macacada //CORRECTO classeteste, macacada //INCORRECTO metodoteste, macacada //CORRECTO MetodoTeste, Macacada //INCORRECTO dadosteste, macacada //CORRECTO DadosTeste, Macacada //INCORRECTO 1

ESTRUTURA DE UMA CLASSE package ClassPath; //Se estiver na root não é necessário colocar Package /* Não é obrigatório colocar import (O import é a instrução que permite dizer onde se vai buscar classes que não pertençam ao mesmo package) */ import _ public class NOMEDACLASSE //ZONA DE DADOS (Vem antes dos construtores, local onde se define variáveis) //ZONA DE MÉTODOS (Um construtor é um método) //Construtor por default da classe CasseMain public NOMEDACLASSE() //Construtor por argumentos public NOMEDACLASSE(TIPO NOMEARGUMENTO1,TIPO NOMEARGUMENTO2, ) /* Pode-se fazer quantos construtores se quiser, desde que possuam argumentos diferentes */ //Método que retorna valores e não possui argumentos public TIPORETORNO NOMEMETODO1() //Método que não retorna valores(ver void) e recebe argumentos public void NOMEMETODO1(TIPO NOMEARGUMENTO1, TIPO NOMEARGUMENTO2, ) Ex: Pessoa.java 2

CLASSE MAIN Em java e em grande parte das linguagens a classe main é SEMPRE a primeira classe a ser executada. A classe main pode ter uma designação qualquer, mas o que a diferencia das outras é que possui um método denominado "main" que é a primeira zona de código a ser executada. Para executar uma operação de soma, criar um objecto, em suma, criar um programa, é necessário que haja um main. Todo o código que queremos correr tem de estar de alguma forma, ligado a esse main (caso excepcional: Applet). O main pode receber x número de argumentos do tipo String (Ver glossário). Esses argumentos são recebidos na variável args[]. Para saber quantos argumentos se encontram em args, basta usar o método do array.length; Ex: public class nomedaclassequetemomain public static void main(string args[]) int numeroargumentos=args.length; HERANÇA DE CLASSES É um processo que permite a uma classe obter métodos e dados que se encontram implementados ou por implementar, noutra classe distinta. Existem dois tipos de herança: 1) Herança Simples: Permite a uma classe usar os métodos e dados de outra classe, mas só de uma. 2) Herança Multipla: Permite a uma classe usar determinados métodos e dados de uma ou mais classes, com as quais não possuem qualquer relação lógica. 3

Exs: 1) public class ClassePai int valor; public ClassePai() public class ClasseFilho extends ClassePai public ClasseFilho() A ClasseFilho herda os métodos e dados da ClassePai neste caso herda uma variável valor e um método/construtor. 2) public interface Comunicador public String infotextual(); public class ClasseProdutoraDeTexto1 implements comunicador public ClasseProdutorDeTexto() public String infotextual return new String("O meu texto específico"); 4

public class ClasseProdutoraDeTexto2 implements comunicador public ClasseProdutorDeTexto() public String infotextual return new String("O meu texto MARAVILHA"); public class ClasseMostraTexto public ClasseMostraTexto() //Designação da classe que implementa o interface Comunicador com=new ClasseProdutoraDeTexto1(); //Apresentação no ecrã de: O meu texto específico System.out.println(com.infoTextual); //Designação da classe que implementa o interface Comunicador com=new ClasseProdutoraDeTexto1(); //Apresentação no ecrã de: O meu texto MARAVILHA System.out.println(com.infoTextual); /* O "com.infotextual" é uma chamada designada de "Callback" */ IMPORTANTE: Ambos os tipos de herança acima descritos possuem as mesmas regras das classes, ou seja necessitam de package, nome, podem ter dados e métodos, no entanto existe uma diferença nos interfaces, todos os métodos são por default public abstract final. Quem usar o interface tem acesso a todos os seus dados e métodos(public), que alguém tem de os implementar(abstract) e que não podem ser sobrepostos(final). (ver capítulo de encapsulamento). 5

CLASSES ASTRACTAS Uma classe abstracta é uma classe como as outras, mas com pequenas diferenças: 1) Não pode ser compilada por si só. 2) Não diz como se executam todos os seus métodos (esses métodos são abstractos) Um método abstracto tem de ser implementado algures nas classes filhas, da classe abstracta, para que se possa executar e compilar a classe. Uma classe filha só não é obrigada a implementar um método se esta for abstracta e definir esse método como abstracto. Se assim for o método é propagado da seguinte forma: ClassePai-->ClasseFilha-->ClasseNeta A classeneta para poder ser compilada e executada deve implementar o método e não pode ser abstracta. Quando se utiliza classes abstractas? As classes abstractas são usadas quando existem semelhanças entre classes, mas alguns métodos são implementados de forma diferente. Ex: public abstract class SerVivo String nomeespecie=new String(); //Espécie: homo sapiens sapiens, gorila String raca=new String(); //Raça: caucasiana, gorila do Buim long tempodvidamedio; //TVM: 80, 30 String convertetempo; //MTVM: anos, minutos, segundos, séculos public SerVivo() abstract void apresentastringcominfo(); 6

public class Homem extends SerVivo int numerodeolhos; public Homem() nomeespecie="homo Sapiens Sapiens"; numerodeolhos=2; void apresentastringcominfo() System.out.println(" O "+ nomeespecie +" TEM "+ numerodeolhos +"OLHOS"); public class Virus extends SerVivo int numerodeolhos; public virus() nomeespecie="virus"; void apresentastringcominfo() System.out.println(" O "+ nomeespecie +" NÃO TEM OLHOS"); Como se pode ver o método apresentastringcominfo() tem uma implementação diferente conforme a classe. Para melhorias ou dúvidas contactar FAILPROOF. 7