5COP088 Laboratório de Programação - barbon.com.br · Experiência Não Acadêmica: Analista...

25
5COP088 – Laboratório de Programação Aula 1 – Java 5COP088 Laboratório de Programação Laboratório de Programação Aula 1 Java Prof. Dr. Sylvio BarbonJunior 1 Sylvio Barbon Jr – [email protected]

Transcript of 5COP088 Laboratório de Programação - barbon.com.br · Experiência Não Acadêmica: Analista...

5COP088 – Laboratório de ProgramaçãoAula 1 – Java

5COP088 Laboratório de ProgramaçãoLaboratório de Programação

Aula 1

Java

Prof. Dr. Sylvio Barbon Junior

1Sylvio Barbon Jr – [email protected]

5COP088 – Laboratório de ProgramaçãoAula 1 – Java

Sobre o Professor – Dr. Sylvio Barbon Junior

Formação: Ciência e Engenharia da Computação (2005 e 2008) – São José do Rio Preto, Mestrado em Física Computacional (2007) – São Carlos, Doutorado em Física Computacional (2011) – São Carlos.

Experiência Acadêmica: Docente no Senac (2008 -2010), Universidade do Estado de Minas Gerais (2008 – 2012), Faculdade de Tecnologia de São José do

2Sylvio Barbon Jr – [email protected]

Estado de Minas Gerais (2008 – 2012), Faculdade de Tecnologia de São José do Rio Preto (2010 – 2012), UEL (2013).

Experiência Não Acadêmica: Analista desenvolvedor Riosoft (2004 – 2006) e Gerente de Projetos Net-Fit (2008-2011). Certificado SCJP.

Áreas de Interesse: Processamento de Sinais (Imagem e Áudio) e Mineração de Dados. Projetos de Mineração de Texto em Redes Sociais, Reconhecimento de Patologias Mentais pela Voz e Reconhecimento de Imagens Médicas.

5COP088 – Laboratório de ProgramaçãoAula 1 – Java

Ementa – Laboratório de Programação“Estudo e prática de linguagens de programação de alto nível”

Objetivo: Revisar e nivela os conhecimentos em linguagens de programação estruturada e prática de programação orientada a objetos.

Conteúdo Programático:1) Declaração e Controle de Acesso;

3Sylvio Barbon Jr – [email protected]

1) Declaração e Controle de Acesso;2) Orientação a Objetos;3) Atribuições;4) Operadores;5) Controle de Fluxo, Exceções e Assertivas;6) Strings, Entrada e Saída, Formatação e Parsing;7) Genéricos e Conjuntos;8) Classes Internas;9) Threads;10) JSP e Servlets.

5COP088 – Laboratório de ProgramaçãoAula 1 – Java

Aula 1 – Introdução [Java]

5COP088 – Laboratório de ProgramaçãoAula 1 – Java

Aula 1 – Introdução [Java]

Motivos para se estudar Java:

- Linguagem Simples;- Linguagem Orientada a Objetos;- Multithread;- Interpretada (vantagem?);- Interpretada (vantagem?);- Independência de Arquitetura (Hardware e Software);- Portabilidade (Linux, Mac, Windows etc);- Alto desempenho (garbage collector);- Robusta (tipagem rígida, inicialização automática, exceções).

5COP088 – Laboratório de ProgramaçãoAula 1 – Java

Aula 1 – Declarações e Controle de Acesso

Identificadores- Os identificadores podem começar com uma letra, underline

ou um caractere monetário;- Depois do primeiro caractere, pode-se incluir dígitos;- Os identificadores podem ter qualquer comprimento;- Os métodos deve ser nomeados usando “camelCase”, - Os métodos deve ser nomeados usando “camelCase”,

dependendo do propósito devem começar com set, get, is, add ou remove.

class Aula1 {public int idade;public int _idade;public int iDaDe; // não gera erro, apenas fora do padrão camelCase

}

5COP088 – Laboratório de ProgramaçãoAula 1 – Java

Aula 1 – Declarações e Controle de Acesso

Método principal de inicialização- publico (public);

- estático (static);

- sem retorno (void);

- chamado “main”;- parâmetro deve ser um vetor de String (String[] args)- parâmetro deve ser um vetor de String (String[] args)

class Aula1_2{public static void main (String[] args) {

System.out.println("Argumento - " + args[0]);}

}

Error: Main method not found in class Aula1, please define the main method as:public static void main(String[] args)

Erro: Ausência do método principal

Classe com método principal

5COP088 – Laboratório de ProgramaçãoAula 1 – Java

Aula 1 – Declarações e Controle de Acesso

Comandos java e javac- javac é o comando de compilação java, deve ser passado

como parâmetro uma classe java (fonte “.java”)e será gerado uma classe compilada (.class) .

Compilando classe Java

- java é o comando para invocar a JVM (Java Virtual Machine)

javac Aula1_2.java

Compilando classe Java

java Aula1_2

Executando classe Java

java Aula1_2 MeuParametro

Executando classe Java com parâmetro

5COP088 – Laboratório de ProgramaçãoAula 1 – Java

Aula 1 – Declarações e Controle de Acesso

Identificadores

Classes utilizando a Modelagem UML com o Diagrama de Classes

5COP088 – Laboratório de ProgramaçãoAula 1 – Java

Aula 1 – Declarações e Controle de Acesso

Regras de declaração

- Um arquivo de código fonte só pode ter uma classe pública;- O nome do arquivo deve coincidir com o dessa classe;- O arquivo só pode ter uma instrução de pacote;- Um arquivo pode ter várias instruções;- Um arquivo pode ter várias instruções;- A instrução de pacote deve ficar na primeira linha do código;- A instrução de importação deve vir depois do pacote;- O arquivo pode ter mais de uma classe não pública;- Se os arquivos não tiverem classes públicas, não há restrição

para o nome;

5COP088 – Laboratório de ProgramaçãoAula 1 – Java

Aula 1 – Declarações e Controle de Acesso

Regras de declaração

package uel;

import javax.swing.*;

Classe com método principal

java uel.Aula1_3 5 2

Executando classe

public class Aula1_3{

public static void main(String[] args){int a = Integer.parseInt(args[0]);int b = Integer.parseInt(args[1]);int soma = a + b;

JOptionPane.showMessageDialog(null, "A soma é \""+soma+"\"", "Resultado", JOptionPane.WARNING_MESSAGE); // JOptionPane.ERROR_MESSAGE

}}

5COP088 – Laboratório de ProgramaçãoAula 1 – Java

Aula 1 – Declarações e Controle de Acesso

Identificadores

Classe utilizando a Modelagem UML com o Diagrama de Classes

5COP088 – Laboratório de ProgramaçãoAula 1 – Java

Aula 1 – Declarações e Controle de Acesso

Modificadores de acesso a classe- Três modificadores: public, protected e private;- Quatro níveis: public, protected, default e private;- As classes só tem acesso public e default;

Private Protected

Default Public

5COP088 – Laboratório de ProgramaçãoAula 1 – Java

Aula 1 – Declarações e Controle de Acesso

Modificadores de classe (não se referem a acesso)

- As classes podem ser: final, abstract ou strictfp;- Uma classe não pode final e abstract;- Uma classe final não pode ter subclasse;- Uma classe abstract não pode ser instanciada;- Uma classe abstract não pode ser instanciada;- Uma classe somente com um método abstract significa que

a classe inteira deve ser abstract;- Uma classe abstract pode ter métodos abstracts ou não;- A primeira classe concreta a estender uma classe abstract

terá que implementar todos os métodos abstracts.

5COP088 – Laboratório de ProgramaçãoAula 1 – Java

Aula 1 – Declarações e Controle de Acesso

Modificadores de classe (não se referem a acesso)

package uel;

public class Aula1_4{

Classe Mãe ou Superclasse

public int totalSuperclasse;public int totalClasse;private int totalRestrito;

}

5COP088 – Laboratório de ProgramaçãoAula 1 – Java

Aula 1 – Declarações e Controle de Acesso

Modificadores de classe (não se referem a acesso)

package uel;

public class Aula1_5 extends Aula1_4{

Classe Filha ou subclasse

public int totalClasse;

public static void main(String args[]){new Aula1_5();

}

// continuação no outro slide}

5COP088 – Laboratório de ProgramaçãoAula 1 – Java

Aula 1 – Declarações e Controle de Acesso

Modificadores de classe (não se referem a acesso)

public Aula1_5(){totalClasse = 1;super.totalClasse = 2;totalSuperclasse = 3;

Classe Filha ou subclasse (continuação)

totalSuperclasse = 3;super.totalSuperclasse = 4;

System.out.println("O total na classe é "+totalClasse);System.out.println("O total na classe é "+super.totalClasse);System.out.println("O total na classe é "+totalSuperclasse);System.out.println("O total na classe é "+super.totalSuperclasse);

}

5COP088 – Laboratório de ProgramaçãoAula 1 – Java

Aula 1 – Declarações e Controle de Acesso

Implementação de Interfaces- As interfaces são contratos que definem o que a classe

poderá fazer, mas não dizem nada sobre a maneira pela qual ela deverá fazê-lo.

- As interfaces pode ser implementadas por qualquer classe, de qualquer árvore de herança;de qualquer árvore de herança;

- A interface é como uma classe 100% abstract;- Uma interface só pode ter métodos abstracts, nenhum

método concreto é permitido;- Os métodos das interfaces são por padrão public e

abstracts, sendo a declaração explícita um opcional;- As interfaces podem ter constantes que serão sempre

implicitamente public, static e final;

5COP088 – Laboratório de ProgramaçãoAula 1 – Java

Aula 1 – Declarações e Controle de Acesso

Implementação de Interfaces- Uma classe de implementação de uma interface que seja

“não-abstract” válida, deverá:> Fornecer a implementação concreta dos métodos;> Deve seguir todas as regras de sobrecarga válida;> Não deve declarar nenhuma exceção nova;> Não deve declarar nenhuma exceção nova;> Não deve declarar nenhuma exceção + abrangente.> Pode declarar exceções de tempo de execução;> Deve manter a assinatura e retorno dos métodos;

- Uma classe que estiver implementando uma interface pode ser abstract;

- Uma classe de implementação abstract não precisa implementar todos os métodos da interface;

- A classe pode implementar várias interfaces;

5COP088 – Laboratório de ProgramaçãoAula 1 – Java

Aula 1 – Declarações e Controle de Acesso

Implementação de Interfaces- As interfaces não podem estender uma classe ou

implementar uma classe ou interface;

5COP088 – Laboratório de ProgramaçãoAula 1 – Java

Aula 1 – Declarações e Controle de Acesso

Modificadores de acesso a membros- Os métodos e variáveis de instância são conhecidos como

membros;- Os membros podem usar os quatro níveis de acesso;- Se uma classe não puder ser acessada, seus métodos

também não serão;também não serão;- Se um membro da superclasse for public, a subclasse o

herdará;- Membros acessados sem o operador “.” pertencem a mesma

classe;- A palavra reservada this refere-se ao objeto em execução em

determinado momento;- Os membros private só podem ser acessados por membros

da mesma classe;

5COP088 – Laboratório de ProgramaçãoAula 1 – Java

Aula 1 – Declarações e Controle de Acesso

Modificadores de acesso a membros- Os membros default e protected só diferem quando

subclasses estão envolvidas;- Os membros protected só podem ser acessados por outras

classes de mesmo pacotes;- As declarações de variáveis locais não podem ter - As declarações de variáveis locais não podem ter

modificadores de acesso;- final é o único modificador disponível para variáveis locais;- As variáveis locais não recebem valores padrão, assim devem

ser inicializadas antes do uso;

5COP088 – Laboratório de ProgramaçãoAula 1 – Java

Aula 1 – Declarações e Controle de Acesso

Outros modificadores- Os métodos final não podem ser sobrecarregados dentro de

uma subclasse;- Os métodos abstract terminam com “;” e não com chaves;- Um método não é abstrata :

> Quando não é marcado como abstract;> Quando não é marcado como abstract;> Quando possui chaves;> Quando possui um código entre as chaves;

- A primeira classe não abstrata a estender uma classe abstract deve implementar todos os métodos abstract dessa;

- O modificador synchronized só é aplicado a métodos e blocos de códigos

- O método abstract não pode ser final nem private.

5COP088 – Laboratório de ProgramaçãoAula 1 – Java

Aula 1 – Declarações e Controle de Acesso

Declaração de Array- Os arrays podem armazenar tipos primitivos ou objetos, mas

o array propriamente dito é sempre um objeto;- Quando você declara um array, os colchetes podem ficar à

esquerda ou à direita do nome da variável;- Nunca é válido incluir o tamanho do array na declaração;- Nunca é válido incluir o tamanho do array na declaração;

Declaração de Array- Não são associados a nenhuma instância específica da classe;- Não é necessária a existência da instância de uma classe para

que os membros static desta sejam usados;- Só haverá uma cópia da variável ou classe static e todas as

instâncias a compartilharão;- Os métodos static não têm acesso direto a não-static;

5COP088 – Laboratório de ProgramaçãoAula 1 – Java

Referências

Deitel,P.; Deitel, H. Java Como Programar.