5COP088 Laboratório de Programação

Propaganda
5COP088 – Laboratório de Programação
Aula 1 – Java
5COP088
Laboratório de Programação
Aula 1
Java
Prof. Dr. Sylvio Barbon Junior
Sylvio Barbon Jr – [email protected]
1
5COP088 – Laboratório de Programação
Aula 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
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.
Sylvio Barbon Jr – [email protected]
2
5COP088 – Laboratório de Programação
Aula 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;
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.
Sylvio Barbon Jr – [email protected]
3
5COP088 – Laboratório de Programação
Aula 1 – Java
Aula 1 – Introdução [Java]
5COP088 – Laboratório de Programação
Aula 1 – Java
Aula 1 – Introdução [Java]
Motivos para se estudar Java:
- Linguagem Simples;
- Linguagem Orientada a Objetos;
- Multithread;
- 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ção
Aula 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”,
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ção
Aula 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)
Erro: Ausência do método principal
Error: Main method not found in class Aula1, please define the main method as:
public static void main(String[] args)
Classe com método principal
class Aula1_2{
public static void main (String[] args) {
System.out.println("Argumento - " + args[0]);
}
}
5COP088 – Laboratório de Programação
Aula 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
javac Aula1_2.java
- java é o comando para invocar a JVM (Java Virtual Machine)
Executando classe Java
java Aula1_2
Executando classe Java com parâmetro
java Aula1_2 MeuParametro
5COP088 – Laboratório de Programação
Aula 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ção
Aula 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;
- 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ção
Aula 1 – Java
Aula 1 – Declarações e Controle de Acesso
Regras de declaração
Classe com método principal
package uel;
Executando classe
java uel.Aula1_3 5 2
import javax.swing.*;
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ção
Aula 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ção
Aula 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
Default
Protected
Public
5COP088 – Laboratório de Programação
Aula 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 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ção
Aula 1 – Java
Aula 1 – Declarações e Controle de Acesso
Modificadores de classe (não se referem a acesso)
Classe Mãe ou Superclasse
package uel;
public class Aula1_4{
public int totalSuperclasse;
public int totalClasse;
private int totalRestrito;
}
5COP088 – Laboratório de Programação
Aula 1 – Java
Aula 1 – Declarações e Controle de Acesso
Modificadores de classe (não se referem a acesso)
Classe Filha ou subclasse
package uel;
public class Aula1_5 extends Aula1_4{
public int totalClasse;
public static void main(String args[]){
new Aula1_5();
}
// continuação no outro slide
}
5COP088 – Laboratório de Programação
Aula 1 – Java
Aula 1 – Declarações e Controle de Acesso
Modificadores de classe (não se referem a acesso)
Classe Filha ou subclasse (continuação)
public Aula1_5(){
totalClasse = 1;
super.totalClasse = 2;
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ção
Aula 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;
- 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ção
Aula 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 + 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ção
Aula 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ção
Aula 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;
- 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ção
Aula 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
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ção
Aula 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 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ção
Aula 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;
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ção
Aula 1 – Java
Referências
Deitel,P.; Deitel, H. Java Como Programar.
Download