• Nenhum resultado encontrado

OBJETIVOS DO CURSO

N/A
N/A
Protected

Academic year: 2021

Share "OBJETIVOS DO CURSO"

Copied!
32
0
0

Texto

(1)

Programação Orientada a Objetos em Java

Prof. Giuliano Prado de Morais Giglio, M.Sc.

[email protected] http://www.giulianoti.tk

A Plataforma Java

Programação Orientada a Objetos em Java

OBJETIVOS DO CURSO

n Fornecer uma visão geral da linguagem Java e apresentar suas potencialidades.

n Capacitar os alunos a trabalhar com a linguagem de programação Java.

n Capacitar os alunos a trabalharem com os conceitos da Orientação a Objetos.

n Introduzir as principais fundamentos de

implementação de aplicações multiplataforma.

(2)

PLANO DE CURSO

1. Introdução a linguagem JAVA;

2. Estrutura da Linguagem;

3. Java e Orientação a Objetos;

4. Classes

ü Objetos (Instanciação) ü Atributos

ü Métodos ü Construtores ü Encapsulamento;

ü Sobrecarga de Métodos;

5. Classes especiais da API Java 6. Herança

ü Sobrescrita de métodos ü Polimorfismo

ü Classes abstratas

7. Coleção de Objetos

8. Tratamento de Exceções

Introdução a Linguagem Java

Prof. Giuliano Prado de Morais Giglio, M.Sc.

A Plataforma Java

Programação Orientada a

Objetos em Java

(3)

CONCEITOS DO JAVA

Java é:

Uma Linguagem de Programação – Um Ambiente de Desenvlvimento – Um Ambiente de Aplicativos

CONCEITOS DO JAVA

n J2SE

– Contém as classes principais da plataforma Java, e é chamado às vezes de Core Java Plataform.

n J2EE

– É um conjunto de tecnologias que fornecem APIs e um ambiente para desenvolvimento e execução de aplicações coorporativas.

n J2ME

– É o Java para pequenos dispositivos, desde palms até celulares.

(4)

INTRODUÇÃO AO JAVA

n

Vantagens de Java como Linguagem de Programação:

vOrientada a Objetos (O.O)

vcódigo sem bugs: mais fácil em Java que em C++

vdesalocação manual de memória não existe vindependência de plataforma!

JAVA

n Simples

üSintaxe similar a C / C++

üNão possui os recursos “perigosos”, desnecessários ou pouco usados:

üAritmética de ponteiros (*--pt = vet+5) üEstruturas (struct)

üDefinição de tipos (typedef) üPré-processamento (#define)

üLiberação explícita de memória (free)

üEliminação de 50% dos erros mais comuns üInterpretadores pequenos (256 Kb)

(5)

COLETOR DE LIXO

n

A Linguagem Java realiza a liberação de memória, que antes era responsabilidade do programador.

JAVA

n

Orientada a Objetos

Utiliza o paradigma atual de objetos

n

Distribuída

Implementa os protocolos da arquitetura TCP/IP, tais como: HTTP, SMTP, TCP, UDP, RTP, FTP, etc.

(6)

JAVA

n

Robusta

üPossui checagem em tempo de compilação e execução.

üGerenciamento automático de memória (“garbage collector” ).

üAusência de recursos “perigosos”.

üExtensiva verificação do código

INDEPENDÊNCIA DE PLATAFORMA

n

Robusta e Interpretada

üO fonte é compilado para um código intermediário (“bytecode”).

üO interpretador funciona como uma Máquina Virtual Java (JVM).

üOs bytecodes são executados por um interpretador (JVM) embora existam opções de compilação.

(7)

JVM - JAVA VIRTUAL MACHINE

n Cabe ao interpretador Java de cada plataforma de hardware específica assegurar a execução do código compilado para a JVM.

Compilação e

Interpretação

(8)

AMBIENTE DE

PROGRAMAÇÃO JAVA

n Java 2 Standard Developers Kit (J2SDK)

JVM mais todas as APIs, compilador e ferramentas (tudo o que você precisa para escrever programas Java)

JVM mais as APIs (tudo o que você precisa para executar programas Java)

Documentação das APIs (Application Programming Interface)

AMBIENTE DE

PROGRAMAÇÃO JAVA

n

Java 2 Standard Developers Kit (J2SDK ou simplesmente JDK)

ØDisponível para download no Site Java da Oracle (www.oracle.com/java/index.html) ØVersão atual (J2SDK 8.40)

ØPrincipais aplicativos:

§ javac (compilador)

§ java (interpretador)

§ applet viewer (visualizador de Applets)

(9)

AMBIENTE DE

PROGRAMAÇÃO JAVA

n

Documentação das APIs (Application Programming Interface)

ØDescreve quais são as classes definidas pela linguagem, o que fazem e como elas devem ser usadas nos programas.

ØDisponível para download ou on-line no Site Java da Oracle

(https://docs.oracle.com/javase/7/docs/api/)

AMBIENTE DE

PROGRAMAÇÃO JAVA

n

Existem editores (IDEs) específicos para o desenvolvimento de Aplicativos Java

vOracle NetBeans vEclipse

vBlueJ vJCreator vJDeveloper

vBorland JBuilder

(10)

INSTALAÇÃO

n Fazer o download do J2SDK.

n Instalar o arquivo jdk-8u40-windows-i586.exe

n Instalação no estilo “next > next > next”

n Somente após o passo seguinte que poderá ser instalado a IDE de sua preferência (JCreator ou BlueJ, etc)

n Recomendado incluir as seguintes variáveis de ambiente, porém, não obrigatório:

Ø JAVA_HOME:apontará para o diretório onde o J2SDK foi instalado = C:\Arquivos programas\Java\jdk1.6.23

Ø CLASSPATH:responsável por definir um caminho de pesquisa para as classes do J2SE

=;.JAVA_HOME

Ø PATH: responsável por definir um caminho de pesquisa para arquivos executáveis. Se está variável não for configurada, o processo de compilação dos programas feitos em Java somente poderá ser executado dentro da pasta “lib” do diretório de instalação do J2SE 6.0 JDK =C:\Arquivos programas\Java\jdk1.6.23\bin

PRIMEIRO PROGRAMA JAVA

Digite o programa “Teste.java”apresentado abaixo, utilizando o BlueJ

/*** Primeiro Programa Java ***/

class Teste {

public static void main(String arg[]) {

System.out.println(“Teste em Java”);

} }

(11)

PRIMEIRO PROGRAMA JAVA

AMBIENTE DE

PROGRAMAÇÃO JAVA

Executar:

Teste.class

Teste de Java

(12)

DETALHES IMPORTANTES

n

Programa fonte tem extensão ‘.java’

n

Programa compilado tem extensão

‘.class’

n

A linguagem é “case-sensitive”, letras maiúsculas são diferentes de letras minúsculas

n

Cada programa é uma classe

DETALHES IMPORTANTES

n Nome da classe no programa tem que ser igual ao nome do arquivo físico ‘.java’

n Sintaxe similar a linguagem C/C++

n As classes podem estar agrupadas em package

Package é um subdiretório.

n As classes podem ser compactadas (zip ou jar)

(13)

ANATOMIA DO PROGRAMA

n

Comentários

n

Os comentários em Java seguem a mesma sintaxe de c.

Ø

/* texto */

Ø

// texto

Ø

/*** Primeiro Programa Java ***/

(JavaDocs)

n

O compilador ignora estas linhas

ANATOMIA DO PROGRAMA

n

Definição de Classe

n

É a unidade básica para uma linguagem OO como Java

n

class Nome { ...

}

n

class é a palavra reservada que marca

o início da declaração de uma classe.

(14)

ANATOMIA DO PROGRAMA

n

Delimitação de Blocos

Ø

Um bloco está sempre entre chaves { }

Ø

Em Java as instruções terminam em ponto-e-vírgula (;)

ANATOMIA DO PROGRAMA

Método main

n Toda aplicação Java, (exceto Applets e Servlets), deve possuir o método main.

public static void main (String args[ ]){

System.out.println("Teste em Java!");

}

n O método main indica o início de

execução de qualquer programa Java.

(15)

ANATOMIA DO PROGRAMA

Argumentos do Método main

Ø public - é um qualificador do método que indica que este é acessível externamente a esta classe.

Ø static - é um outro qualificador que especifica o método como sendo um método de classe.

Ø void - indica que não existe retorno a este método.

Ø main - é o nome do método.

Ø String args[ ] - Armazena valores passados por linha de comando.

ANATOMIA DO PROGRAMA

n

System.out.println(“Teste em Java”);

üEscreve na tela o conteúdo nos parêntesis.

üChamada do método println para o atributo out da classe System.

üO argumento (“...”) é do tipo String.

(16)

ANATOMIA DO PROGRAMA

n

System.out.println (sequência de escape)

§ \n (nova linha)

§ \t (tabulação horizontal)

§ \r (retorno de carro)

§ \\ (barra invertida)

§ \” (aspas duplas)

ESTRUTURAS DE PROGRAMAÇÃO

n

Identificadores

ØNomeiam variáveis, funções, classes e objetos

ØPodem conter letras e/ou dígitos, “_” e “$”

ØNão podem ser iniciados por dígito ØNão podem ser palavras reservadas ØNão tem tamanho máximo

(17)

ESTRUTURAS DE PROGRAMAÇÃO

VÁLIDOS

n

Nome

n

NumDepen

n

total_geral

n

NOME

INVÁLIDOS

n

1prova

n

total geral

ESTRUTURAS DE

PROGRAMAÇÃO

(18)

ESTRUTURAS DE PROGRAMAÇÃO

n

Variáveis

n

Inicialização padrão Java

• variáveis numéricas com zero

• variáveis booleanas com false

• outras variáveis com null

ESTRUTURAS DE

PROGRAMAÇÃO

(19)

ESTRUTURAS DE PROGRAMAÇÃO

n

Inteiro

byte index = 50;

short soma = 2000;

int num carros = 5;

long valor = 0XDADAL;

ESTRUTURAS DE PROGRAMAÇÃO

n

Tipos Ponto Flutante (Real)

• float 32 bits

• double 64 bits

n

– Representações:

• 3.14

• 6.02E23

• 2.718F

• 123.4E+306D

float pi = 3.1415f;

double pi = 3.1415;

(20)

OPERADORES

n

Atenção (programadores C/C++):

• int i, j;

• float r;

• i = r / j; // ERADO!

• i = (int) r / j; // OK!

ESTRUTURAS DE PROGRAMAÇÃO

n

Declarações e atribuições de variáveis

• As declarações podem ser exibidas em qualquer posição do código-fonte.

int x, y;

float z = 3.144f;

double w = 3.1415;

boolean verdade = true;

char c, d;

c = 'A';

d = '\u0013';

x = 6;

y = 1000;

(21)

Exemplo de utilização de float, double e int

Fazer o exercício 01 da lista:

Lista_Pratica_Intro_Java.pdf disponível no site da disciplina.

TIPOS DE DADOS

Texto

n char: representa um caracter Unicode de 16 bits (exemplos: ‘a’, ‘M’, ‘\t’, ‘\u02B1’)

– retrocesso – tab

– avanço de linha – retorno de carro – aspas

– apóstrofo – barra invertida

• \b

• \t

• \n

• \r

• \”

• \’

• \\

(22)

TIPOS DE DADOS

Texto

n String: representa uma seqüência de caracteres

String frase;

frase = Ordem e Progresso; char opcao;

opcao = 'S';

opcao = 'N';

TIPOS DE DADOS

n boolean: representa somente dois valores:

true (verdadeiro) e false (falso)

booolean achou;

achou = false;

(23)

OPERADORES

n

Aritméticos

Soma ( + )

Subtração ( - )

Multiplicação ( * )

Divisão ( / )

Resto ( % )

n

Relacionais

<

>

<=

>=

==

!=

!

OPERADORES

n

Lógicos

• Junção de expressões: && (or), || (and)

• Comparação de objetos: instanceof()

(24)

OPERADORES

n

Considere um operador @ qualquer

n

Expressões do tipo X = X @ Z podem ser substituídas por X @= Z

x = x + 3 x += 3

x = x * ( 9 + y ) x *= ( 9 + y )

OPERADORES

n

Atenção (programadores C/C++):

• O operador + não é apenas aritmético (por ex. pode ser utilizado para inicialização e concatenação de strings)

• Existe o tipo booleano, logo os operadores relacionais e lógicos NÃO geram inteiros

• Não há conversões automáticas (por ex.

real para inteiro)

(25)

CONVERSÃO DE TIPOS

n

Exemplos:

STRING VALOR NUMÉRICO

String str = "34";

int num_int = Integer.parseInt(str);

float num_float = Float.parseFloat(str);

double num_double = Double.parseDouble(str);

VALOR NUMÉRICO STRING

Integer.toString(num_int);

String valor_str = Float.toString(num_float);

Double.toString(num_double);

Estruturas Condicionais

n

Estrutura de Decisão - If / Else

if (expressão booleana)

{ instrução ou bloco de comandos } else

{ instrução ou bloco de comandos }

if (cont >= 0) {

System.out.println(“Erro !!!”);

} else {

System.out.println(Ok !);

}

(26)

Estruturas Condicionais

n Estrutura de Decisão - switch

switch (expressão short, int, byte ou char) {

case expressão2: comandos;

break;

case expressão3: comandos;

break;

default: comandos;

break;

}

Estruturas Condicionais

n Estrutura de Decisão - switch

switch (opcao) {

case 0:

valor = a + b; break;

case 2:

valor = (a * b) - c; break;

default:

valor = a; break;

}

n A instrução break (opcional) impede que o fluxo de execução continue pelas opções seguintes

n A cláusula default é opcional

(27)

Estruturas de Repetição

n

Estrutura de Repetição – for

for (expr_inicial; expr_booleana; expr_increm) { bloco de comandos }

for (int x=0; x<10; x++) {

System.out.println(" Valor do X : " + x);

}

Estruturas de Repetição

n

Estrutura de Repetição - while

while (expr_booleana) { bloco de comandos }

int cont = 0

while (cont < 100) {

System.out.println(" contando " + cont);

cont++;

}

(28)

Estruturas de Repetição

n

Estrutura de Repetição - do while

do

{ bloco de comandos } while (expr_booleana)

int x = 0;

do {

x++;

} while (x <10);

VETORES(Arrays)

n Declaração

• Podem ser declarados arrays de quaisquer dos tipos através dos símbolos “[” e “]”.

• A declaração não cria o array, isto é, não aloca memória. Isso é feito pela instrução new (arrays são objetos em Java).

char s[ ]; // declaração

s = new char[3]; // Criação

s[0] = ‘A’; s[1] = ‘B’; s[2] = ‘C’; // atribuição

(29)

VETORES(Arrays)

n

Declaração

Os colchetes podem ser usados antes ou depois da variável.

Exemplo:

üchar s[ ];

üchar [ ]s;

VETORES(Arrays)

n Declarando, criando e iniciando um array

n Em Java array é um objeto, mesmo quando é composto por tipos primitivos. Apenas a declaração não cria o objeto, sendo necessário o uso da palavra reservada new.

char s[ ] = {'A', 'B', 'C'};

// declaração, criação e incialização

int p[ ] = new int[5];

p[0] = 25;

p[1] = 32;

(30)

VETORES(Arrays)

n Arrays não podem ser dimensionados na definição:

n

Arrays não podem ser utilizados sem a criação:

int vector[5]; //ERRADO!

int vector[];

vector[0] = 4; //ERRADO!

VETORES(Arrays)

n

Para determinarmos o seu tamanho podemos usar o método length:

int lista [] = new int [10];

for (int j = 0; j < lista.length; j++) {

System.out.println(lista[j]);

}

(31)

VETORES(Matrizes)

n

Multi-dimensionais

int lista [] = new int [10];

int matriz [][] = new int [4][5];

matriz [0][0] = 300;

matriz [1][3] = 600;

For “aprimorado”

n

Esse for permite percorrer um array ou um enum

(ou ainda uma Collection – que só veremos láááá na frente)

de forma mais simples

n

Definimos o tipo que é retornado pelo

array ou pelo enum, e pegamos a lista a

percorrer

(32)

Pra usar o for com array

public class TestaFor {

public static void main(String args[]) { int vet[] = {4,5,6,3,4,2,1};

for (int valor : vet) { System.out.println(valor);

} }

}

n Nesse exemplo, foi declarada uma variável de controle do FOR ( valor ) que receberá, cada elemento do vetor.

n Por isso ela foi criada inteira (pois os elementos do vetor são inteiros)

n Perceba que foi dada a ela o vetor (vet) que, em cada interação do FOR, dará um elemento à variável valor

n Nesse caso ( valor ) não é o índice e sim o elemento!

Referências

Documentos relacionados

Mathes and Nahai 20 con- ducted a detailed study of the vascular anatomy of the muscles, where the blood configuration model of the muscle determines how safe it is to

Segundo Luz (1995) problemas como a comunicação inadequada, conflitos interpessoais, política ineficaz de gestão, normas rigorosas e inflexíveis, precárias

Os traficantes exploram justamente esse impulso, ajudados pelo crescimento econômico dos países, que fez surgir mercados de trabalho até então inexistentes e muitas vezes

O relatório encontra-se dividido em 4 secções: a introdução, onde são explicitados os objetivos gerais; o corpo de trabalho, que consiste numa descrição sumária das

psicológicos, sociais e ambientais. Assim podemos observar que é de extrema importância a QV e a PS andarem juntas, pois não adianta ter uma meta de promoção de saúde se

Os principais resultados obtidos pelo modelo numérico foram que a implementação da metodologia baseada no risco (Cenário C) resultou numa descida média por disjuntor, de 38% no

II - os docentes efetivos, com regime de trabalho de 20 (vinte) horas semanais, terão sua carga horária alocada, preferencialmente, para ministrar aulas, sendo o mínimo de 8 (oito)

Foram analisados a relação peso-comprimento e o fator de condição de Brycon opalinus, em três rios do Parque Estadual da Serra do Mar-Núcleo Santa Virgínia, Estado de São