Java 1 visão geral. Vitor Vaz da Silva



Documentos relacionados
Programação de Computadores - I. Profª Beatriz Profº Israel

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

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

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

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

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

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

A Linguagem Java. Alberto Costa Neto DComp - UFS

Java. Marcio de Carvalho Victorino

Java 2 tipos, operadores, String. Vitor Vaz da Silva

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

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

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

Introdução à Linguagem Java

Programação Orientada a Objetos

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

Programação por Objectos. Java

2 Orientação a objetos na prática

CURSO DE PROGRAMAÇÃO EM JAVA

Algoritmia e Programação APROG. Linguagem JAVA. Básico. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31

JAVA. Introdução. Marcio de Carvalho Victorino. Page 1 1/40 2/40

Noções sobre Objetos e Classes

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

Universidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java

Java Laboratório Aula 1. Divisões da Plataforma. Introdução a Plataforma Java. Visão geral da arquitetura da

JAVA. Fabrício de Sousa

Prof. Esp. Adriano Carvalho

Sintaxe Básica de Java Parte 1

Módulo 06 Desenho de Classes

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

Keeper of Knowledge. Capítulo 1 Conceitos Básicos do Java

Linguagens de. Aula 02. Profa Cristiane Koehler

3 Classes e instanciação de objectos (em Java)

JavaScript 2.0X X

JSP - ORIENTADO A OBJETOS

Componentes da linguagem C++

Introdução a Linguagem

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

Técnicas de Programação II

Tipos, Literais, Operadores

Tipos, Literais, Operadores

Linguagem de Programação Introdução a Linguagem Java

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

MsC. João Maria MsC. Liviane Melo

FBV - Linguagem de Programação II. Um pouco sobre Java

Programação de Computadores II TCC Turma A-1

Orientação a Objetos

Desenvolvimento Web TCC Turma A-1

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

Algoritmos e Programação

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

AULA Uma linguagem de programação orientada a objetos

Relevância e Motivação. Programação Orientada a Objetos Utilizando Java. Qualidade do Software. Objetivos. Cancelamentos.

Java 2 Standard Edition Como criar classes e objetos

Programação de Computadores - I. Profª Beatriz Profº Israel

Programação Orientada a Objetos em Java

Orientação a Objetos em Java. Leonardo Gresta Paulino Murta leomurta@ic.uff.br

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

Linguagem Java - Introdução

MC102 Algoritmos e programação de computadores Aula 3: Variáveis

INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO

2. OPERADORES ALGORITMOS, FLUXOGRAMAS E PROGRAMAS FUNÇÕES... 10

PROGRAMAÇÃO JAVA. Parte 1

INTRODUÇÃO AO JAVA PARA PROGRAMADORES C

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

Organização de programas em Java. Vanessa Braganholo

Roteiro 1: Dados, variáveis, operadores e precedência

Algoritmos e Programação 2. Introdução à Programação Orientada a Objetos. Orientação a Objetos. O que é um paradigma de programação?

Orientação a Objetos com Java

Fundamentos de Programação. Turma CI-240-EST. Josiney de Souza.

BSI UFRPE Prof. Gustavo Callou

Introdução a Java. Hélder Nunes

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

Universidade Federal de Uberlândia

Programação em C++: Introdução

Notas de Aula 01: Introdução à linguagem de programação Java e ao ambiente de desenvolvimento NetBeans

Projeto de Software Orientado a Objeto

Introdução à linguagem

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição

Programação por Objectos. Java

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

Programação Orientada a Objetos em java. Polimorfismo

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

LINGUAGEM DE PROGRAMAÇÃO JAVA

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

Unidade IV: Ponteiros, Referências e Arrays

ESTRUTURA BÁSICA DE UM PROGRAMA JAVA

Palavras Reservadas da Linguagem Java

Sobre o Professor Dr. Sylvio Barbon Junior

ÇÃO COM OBJECTOS PROGRAMAÇÃ. Programação com Objectos. Programação com Objectos TUDO É UM OBJECTO TUDO É UM OBJECTO ÍNDICE.

UNIVERSIDADE FEDERAL DO PARANÁ

A Linguagem Algorítmica Estrutura de Repetição. Ex. 2

Análise e Projeto Orientados por Objetos

Computação II Orientação a Objetos

Transcrição:

Java 1 visão geral Vitor Vaz da Silva

Introdução 1991 Um grupo de projectistas da Sun Green Team tenta criar uma nova geração de computadores portáteis inteligentes e com grande capacidade de comunicação. Esse processo criativo leva a criarem uma plataforma para o software ser portado para dispositivos diferentes. Pensaram inicialmente em utilizar o C++ mas isso não facilitava a ideia que tinham de portabilidade Vitor Vaz da Silva 2

Introdução Decidem criar uma nova linguagem OAK, nome em memória do carvalho que estava à frente do gabinete de James Gosling. Desenvolveram também um sistema operativo Green OS para dar suporte a essa linguagem e uma interface gráfica padrão. Vitor Vaz da Silva 3

Introdução Dificuldades de copyright levam à criação de um novo nome, inspirado nas bicas que a equipa tomava num café onde se reuniam Java Em 1994, a Java é utilizada quando foi desenvolvido a aplicação WebRunner capaz de realizar o download e executar o código Java pela Internet. Vitor Vaz da Silva 4

Introdução A Sun decide disponibilizar gratuitamente a Java embora continue a deter os direitos relativos à linguagem e ferramentas. Surge assim o JDK 1.0 Java Developer s Kit O JDK passa a ser chamado de J2SE Java 2 Platform, Standard Edition Há múltiplas plataformas e kits de desenvolvimento. Vitor Vaz da Silva 5

Características Orientado por objectos Tudo são Classes Excepto os tipos primitivos de dados Vitor Vaz da Silva 6

Características Independente das plataformas Java é compilada para uma linguagem intermédia bytecode. A bytecode é executada pela JVM A JVM é a máquina virtual para java (Java Virtual Machine) Vitor Vaz da Silva 7

Características Ausência de ponteiros Não há manipulação directa de endereços de memória Não é necessário reciclar a memória Vitor Vaz da Silva 8

Características Alto desempenho Linguagem Compilada - Java Linguagem interpretada - Bytecode Vitor Vaz da Silva 9

Segurança Java possui mecanismos que impedem Realizar qualquer operação no sistema de arquivos da máquina-alvo. Caso o applet seja considerado seguro, são especificados diferentes níveis de acesso ao sistema alvo. Vitor Vaz da Silva 10

Concorrência Multithread execução em simultâneo de rotinas. Thread é uma dessas rotinas. Contém mecanismos de sincronismo entre threads Vitor Vaz da Silva 11

E ainda. Tipo de inteiros e virgula flutuante compatíveis com o IEEE Suporta caracteres UNICODE Desenhada para desenvolvimento de aplicações distribuídas (e em rede) Vitor Vaz da Silva 12

Vitor Vaz da Silva 13

? BOLA Vitor Vaz da Silva 14

? CALÇADO Vitor Vaz da Silva 16

Aprender Ensinar Vitor Vaz da Silva 18

Identidade Caracteriza um objecto Torna-o único Bilhete de Identidade Vitor Vaz da Silva 19

Classificação Definir a que grupo (classe) pertence um objecto Sistemática ordenação em grupos de acordo com critérios determinados Vitor Vaz da Silva 20

Polimorfismo Reconhecer num objecto outro mais geral Vitor Vaz da Silva 21

Hereditariedade Definir novas classes a partir de classes já existentes Vitor Vaz da Silva 22

Encapsulamento Permite utilizar um objecto conhecendo apenas a sua interface. As propriedades internas ficam protegidas Vitor Vaz da Silva 23

Programar Orientado por Objectos Pensar! Visualizar! Descrever! O mundo em objectos E os acontecimentos no tecido do tempo Construir Classes Criar Objectos instanciando as classes Vitor Vaz da Silva 24

Classe Atributos Características O que é, como é Dados Métodos Funções O que faz, como faz, quando faz Manipula dados Vitor Vaz da Silva 25

Instanciação Instanciar criar um novo objecto a partir de uma classe A classe e o objecto podem ter restrições, ou melhor qualificadores Vitor Vaz da Silva 26

Qualificador Public público O conteúdo da classe pode ser utilizado tanto pela classe como por outra classe que faça referência ao objecto Vitor Vaz da Silva 27

Qualificador Protected protegido A classe só pode ser referenciada por métodos que estão dentro do mesmo pacote ou em membros da própria classe Vitor Vaz da Silva 28

Qualificador Private privado Acesso restrito; membros da mesma classe. Vitor Vaz da Silva 29

Qualificador Abstract abstracto Possui métodos abstractos Não implementou todos os métodos de uma interface a que fez referência Especifica o que fazer Não indica como se faz Vitor Vaz da Silva 30

Qualificador Final A classe não pode servir de base para herança de outra classe. Vitor Vaz da Silva 31

Qualificador Strictfp Todos os valores utilizados são transformados em virgula flutuante Vitor Vaz da Silva 32

Qualificador Static - estático Permite utilização de campos estáticos mesmo que a classe esteja dentro de outra classe Vitor Vaz da Silva 33

Identificadores Java distingue maiúsculas de minúsculas Classes começam com Maiúscula public class EisUmaClasse{ }; Os objectos começam com minúscula EisUmaClasse eisumobjectodaclasseeisumaclasse; Constantes todos caracteres em Maiúculas Color.GREEN; Números e _ também podem ser utilizados excepto como primeiro caractere Acentos espaços e pontuação não podem ser utilizados nos identificdores Vitor Vaz da Silva 34

Pacotes Package Organização hierárquica semelhante às directorias Contém pacotes e classes Exemplo: java.awt.image Vitor Vaz da Silva 35

Import Indicar ao compilador onde encontrar as classes Pacote padrão já importado java.lang Usar directiva import Exemplo: import java.awt.graphics2d; import java.io.*; Vitor Vaz da Silva 36

Package Para incluir as classes em pacotes utiliza-se a directiva package. Exemplo package minhas.classes; public class Acetato{. } Algures import minhas.classes.acetato; Vitor Vaz da Silva 37

Ficheiros e Classes Pormenores Um ficheiro só pode conter diversas classes mas só uma delas pode ser pública. O nome do ficheiro coincide com o nome da classe e com extensão java Vitor Vaz da Silva 38

Class Estrutura da classe Atributos - variáveis Métodos funções public class Caneta{ int tinta; int cor; } public void escreve(){ } Vitor Vaz da Silva 39

UML UML Unified Modeling Language OMT Object Modeling Technique + public - private # protected - cor # tinta Caneta + escrever() + tirartampa() + portampa() - usartinta() NomeDaClasse Atributos Métodos() Vitor Vaz da Silva 40

UML Public class Caneta{ private int cor; protected int tinta; } public String escrever(){ } public void tirartampa(){ } public void portampa(){ } protected void usartinta(){ } - cor # tinta Caneta + escrever() + tirartampa() + portampa() - usartinta() Vitor Vaz da Silva 41

package editora; import resma.folha; public class Impressao{ } } SEM ACESSO public Impressao(){ } public void inserir(){ Folha pg = new Folha(); pg.tamanhoa3(); pg.tamanhoa4(); pg.tamanhoa5(); public static void main(string args[]){ new Impressao(). inserir(); } package resma; public class Folha{ public Folha(){ } private void tamanhoa3(){ } protected void tamanhoa4(){ } public void tamanhoa5(){ } public void tamanhoa2(){ tamanhoa3(); tamanhoa4(); tamanhoa5(); } } package resma; public class Cartolina extends Folha{ public Cartolina(){ } private void tamanhoa0(){ tamanhoa3(); tamanhoa4(); tamanhoa5(); } } // Uma linha de Comentário /* Um Bloco Comentado */ Vitor Vaz da Silva 42

Variáveis Podem começar com _ ou $ Não podem ser palavras reservadas abstract assert boolean break byte case catch char class const continue default do double else enum extends false final finally float for goto if implements import instanceof int interface long native new null package private protected public return short static strictfp super switch synchronized this throw throws transient true try void volatile while Vitor Vaz da Silva 43

Atribuição Atribuir valores às variáveis double precobatatas=1.99; boolean portaaberta=true; int quantidade=4, idade=20; int cadeiras=quantidade; float valorreal=12.234f; Vitor Vaz da Silva 44

Tipos de Dados Primitivos Inteiro byte short int long Vírgula flutuante float double Caractere char Lógico boolean Vitor Vaz da Silva 45

Inteiros Tipo Bits Mínimo Máximo byte 8-128 +127 short 16-32 768 +32 767 int 32-2 147 483 648 +2 147 483 647 long 64-9 223 372 036 854 775 808 +9 223 372 036 854 775 807 Vitor Vaz da Silva 46

Vírgula Flutuante Tipo Bits Mínimo Máximo float 32 1.4 x 10-45 3.4028235 x 10 +38 double 64 4.9 x 10-324 1.7976931348623157 x 10 +308 A mesma gama de valores para os números negativos Vitor Vaz da Silva 47

Caractere Tipo Bits Mínimo Máximo char 16 0 65 535 A \x41 \0101 \u0041 65 em decimal \n Mudança de Linha \r Voltar ao início da linha \b Ir uma posição para a esquerda \t Um tab \f Mudança de página \ Um apóstrofo \ Uma aspa \\ A própria barra invertida \uhhhh Caractere unicode (0-9, A-F) \0ooo Caractere octal (0-7) \xhh Caractere hexadecimal (0-9, A-F) Vitor Vaz da Silva 48

Lógico Tipo Bits Mínimo Máximo boolean 8 false true Vitor Vaz da Silva 49

Casting Permite converter um tipo noutro sem alterar o seu valor binário. Pode gerar erros Pode ser necessário: Acrescentar bits Remover bits Vitor Vaz da Silva 50

Operadores Matemáticos Incremento e Decremento Relacionais Lógicos Vitor Vaz da Silva 51

Operadores Matemáticos + adição - subtracção * multiplicação / divisão % resto da divisão inteira 7 % 3 tem como resultado 1 Vitor Vaz da Silva 52

Operadores Incremento e Decremento ++ -- += -= *= /= %= ++a; // a=a+1; a++; // a=a+1 Operação e Atribuição b=++a; //a=a+1; b=a; b=a++; //b=a; a=a+1; a/=3; // a=a/3; a%=5; //a=a%5; Vitor Vaz da Silva 53

Operadores Relacionais ==!= > < >= <= Vitor Vaz da Silva 54

Operadores Lógicos true false &&! ^ & Vitor Vaz da Silva 55

Operadores Operadores array index, method call, member access [] (). postfix expr++ expr-- Precedência unary ++expr --expr +expr -expr ~! multiplicative * / % additive + - shift << >> >>> relational equality ==!= bitwise AND bitwise exclusive OR bitwise inclusive OR logical AND logical OR ternary? : < > <= >= instanceof & ^ && assignment = += -= *= /= %= &= ^= = <<= >>= >>>= Vitor Vaz da Silva 56

Matrizes Tabela De linhas com colunas De colunas com linhas int papeis[5][4]; papeis[3] é o quê? Vitor Vaz da Silva 57

Ponto de entrada C int main(int argc, char *argv[]) Java public static void main(string args[]) Vitor Vaz da Silva 58

Início Executável -.exe O sistema operativo executa uma função init() que abre os ficheiros de entrada e saída (teclado e placa de vídeo) e depois chama C main() Java main() Para ser chamado da linha de comando Applet - primeira.class O método init() da classe primeira Vitor Vaz da Silva 59

static main() Static -> O método é da classe caso contrário é do objecto Dados X Código (Idem para Atributos) Static Vitor Vaz da Silva 60

Instanciar um Objecto Criar um objecto. new Integer(3); new String( Penso ); Planeta terra = new Planeta(); Integer tres = 3; String existo= eu ; int bi= new Integer(9999); // String existo = new String( eu ); // int bi= (int) new Integer(9999); Vitor Vaz da Silva 61

String Classe Manipula caracteres que não se pretende serem alterados String s = Olá ; // String s = new String( Olá ); s = s + Bom + Dia ; // s = new String (s + new String( Bom ) + new String( Dia )); Vitor Vaz da Silva 62

StringBuffer Manipula caracteres que serão alterados durante a execução do programa. StringBuffer b = new StringBuffer(); b.append( Olá ); b.append( Bom ); b.append( Dia. ); String s = b.tostring(); Vitor Vaz da Silva 63

.length.length() Uma medida do objecto Depende do contexto Vitor Vaz da Silva int comp=new String( ola ).length(); StringBuffer sb = new StringBuffer(); //sb.append( ); comp = sb.length(); Livro liv = new Livro( Contos de encantar! ); comp = liv.length(); //tem de ser feito! String a[][] = new String[2][7]; i=a[2].length; i=a[2][3].length(); 64

Construtor Tem o mesmo nome da Classe Define as características iniciais Pode haver vários com o mesmo nome e argumentos diferentes tantos construtores quanto as variedades de objectos Vitor Vaz da Silva 65

public class Livro{ int NumPaginas; public Livro(){ NumPaginas=0; } public Livro(int numpag){ } public Livro(String titulo){ } public Livro(int altura, int largura, int numpag, String isbn){ } Construtor } public length(){ return(numpaginas); } Livro lb = new Livro(); Livro liv = new Livro(123); Livro lt = new Livro(23,17, 32, 5603452341 Livro lj= new Livro( Java é um objecto? ); Vitor Vaz da Silva 66

Referências http://www.java2s.com/tutorial/java/catalogjava.htm http://introcs.cs.princeton.edu/11style/ http://tektonia.com Vitor Vaz da Silva 84