5. Classes e Interfaces
•A primeira letra deve ser maiúscula e, se
várias palavras forem escritas juntas para
formar o nome, a primeira letra de cada
palavra deverá ser maiúscula. (camelCase)
6. Classes e Interfaces
•A primeira letra deve ser maiúscula e, se
várias palavras forem escritas juntas para
formar o nome, a primeira letra de cada
palavra deverá ser maiúscula. (camelCase)
Cachorro
7. Classes e Interfaces
•A primeira letra deve ser maiúscula e, se
várias palavras forem escritas juntas para
formar o nome, a primeira letra de cada
palavra deverá ser maiúscula. (camelCase)
Cachorro
Conta
8. Classes e Interfaces
•A primeira letra deve ser maiúscula e, se
várias palavras forem escritas juntas para
formar o nome, a primeira letra de cada
palavra deverá ser maiúscula. (camelCase)
Cachorro PrintWriter
Conta
9. Classes e Interfaces
•A primeira letra deve ser maiúscula e, se
várias palavras forem escritas juntas para
formar o nome, a primeira letra de cada
palavra deverá ser maiúscula. (camelCase)
Cachorro PrintWriter
Conta
Runnable
10. Classes e Interfaces
•A primeira letra deve ser maiúscula e, se
várias palavras forem escritas juntas para
formar o nome, a primeira letra de cada
palavra deverá ser maiúscula. (camelCase)
Cachorro PrintWriter
Conta
Runnable
Serializable
11. Métodos
• A primeira letra deve ser minúscula, e depois
as regras do camelCase deverão serem
aplicadas.
12. Métodos
• A primeira letra deve ser minúscula, e depois
as regras do camelCase deverão serem
aplicadas.
getBalance
13. Métodos
• A primeira letra deve ser minúscula, e depois
as regras do camelCase deverão serem
aplicadas.
getBalance
doCalculation
14. Métodos
• A primeira letra deve ser minúscula, e depois
as regras do camelCase deverão serem
aplicadas.
getBalance
setCustomerName
doCalculation
15. Variáveis
• Como nos métodos, o formato camelCase
deve ser usado, começando com uma letra
minúscula.
16. Variáveis
• Como nos métodos, o formato camelCase
deve ser usado, começando com uma letra
minúscula.
tamanhoBotao
17. Variáveis
• Como nos métodos, o formato camelCase
deve ser usado, começando com uma letra
minúscula.
tamanhoBotao
valorCoca
18. Variáveis
• Como nos métodos, o formato camelCase
deve ser usado, começando com uma letra
minúscula.
tamanhoBotao minhaString
valorCoca
19. Constantes
• As constantes Java são criadas marcando-se
variáveis como static e final. Elas devem ser
nomeadas usando letras maiúsculas com
caracteres underscore como separadores
20. Constantes
• As constantes Java são criadas marcando-se
variáveis como static e final. Elas devem ser
nomeadas usando letras maiúsculas com
caracteres underscore como separadores
LARGURA_MAXIMA
21. Constantes
• As constantes Java são criadas marcando-se
variáveis como static e final. Elas devem ser
nomeadas usando letras maiúsculas com
caracteres underscore como separadores
LARGURA_MAXIMA
ALTURA_MAXIMA
22. Método getters
• Se a propriedade não for booleana, o
prefixo do método getter deve ser get.
23. Método getters
• Se a propriedade não for booleana, o
prefixo do método getter deve ser get.
getNome
24. Método getters
• Se a propriedade não for booleana, o
prefixo do método getter deve ser get.
getNome
getIdade
25. Método getters
• Se a propriedade não for booleana, o
prefixo do método getter deve ser get.
getNome
getTamanho
getIdade
26. Método getters
• Se a propriedade não for booleana, o
prefixo do método getter deve ser get.
getNome
getTamanho
getIdade
getDataNascimento
27. Método getters
• Se a propriedade for booleana, o prefixo do
método getter poderá ser get ou is
28. Método getters
• Se a propriedade for booleana, o prefixo do
método getter poderá ser get ou is
isAdmin
29. Método getters
• Se a propriedade for booleana, o prefixo do
método getter poderá ser get ou is
isAdmin
getAdmin
30. Método getters
• Se a propriedade for booleana, o prefixo do
método getter poderá ser get ou is
isAdmin
getAdmin
isUsuarioNormal
31. Método getters
• Se a propriedade for booleana, o prefixo do
método getter poderá ser get ou is
isAdmin
getAdmin
isUsuarioNormal
getUsuarioNormal
34. Método setters
• O prefixo do método setter deverá ser set.
setIdade
setNome
35. Método setters
• O prefixo do método setter deverá ser set.
setIdade
setNome
setSobrenome
36. Método setters
• O prefixo do método setter deverá ser set.
setIdade
setNome
setSexo setSobrenome
37. Classe
public class Pessoa {
private String name;
private Integer age;
private boolean operadorAtivado;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public boolean isOperadorAtivado() {
return isOperadorAtivado;
}
public void setOperadorAtivado(boolean operadorAtivado) {
this.operadorAtivado = operadorativado;
}
}
38. Variável
Uma variável é um objeto normalmente
localizado na memória utilizado para
representar valores, quando declaramos uma
variável estamos associando seu nome
(identificador) ao local da memória onde está
armazenado sua informação, as variáveis em
Java podem ser do tipo primitivo ou objeto.
40. Objetos
String nome = new String();
Nome = "LuizRomero";
nome = nome.substring(0, 3);
41. Operadores
Operador Nome Exemplo Descrição
> Maior que x>y x maior que y
>= Maior ou igual a x >= y x maior ou igual a y
< Menor que x<y x menor que y
<= Menor ou igual a x <= y x menor ou igual a y
"==" Igual a x == y x igual a y
!= Diferente de x != y x diferente de y
! NAO logico (NOT) !y contrario de y
&& E logico (AND) x && y xey
|| OU logico (OR) x || y x ou y
instaceof Verif Instância x instanceof y x é instancia da classe y
48. Controladores - if
if (x == 11) {
System.out.println("x é igual 11");
}
if (x >= 33) {
System.out.println("x é maior ou igual a 33");
}
49. Controladores - if
if (x == 11) {
System.out.println("x é igual 11");
}
if (x >= 33) {
System.out.println("x é maior ou igual a 33");
}
if (x<0) {
System.out.println("x é menor que 0");
} else {
System.out.println("x é maior ou igual a 0");
}
61. Exercício
• Criar uma variável do tipo int chamada idade
• Deverá imprimir: “É maior de 18 anos” caso seja maior
de idade
• Deverá imprimir: “É menor de 18 anos” caso seja menor
de idade
Dica
System.out.println("Texto.");
63. Código
public static void main(String[] args) {
int idade = 16;
if (idade >= 18)
System.out.println("É maior de 18 anos.");
else
System.out.println("É menor de 18 anos.");
}
64. Exercício
• Fazer calculo da nota da escola.
• Deverá ter 4 notas
• Verificar se média é maior que 7, se for mostrar imprimir
“Passou. Sua média Foi: X”, se não imprimir “Reprovou.
Sua média foi: X”.
Concatenação:
System.out.println("Passou. Sua média foi: " + media);
65. Código
public static void main(String[] args) {
double nota1=5, nota2=6,nota3=8,nota4=9;
double media = (nota1+nota2+nota3+nota4)/4;
if (media >= 7)
System.out.println("Passou. Sua média foi:" + media);
else
System.out.println("Reprovou. Sua média foi:" + media);
}
66. Controladores - switch
byte x = 3;
switch (x) {
case 1 : {
System.out.println("x vale 1");
break;
}
case 2:
System.out.println("x vale 2");
break;
default:
System.out.println("x é maior que 2");
break;
}
67. byte x = 3;
switch (x) {
case 1 : {
Exercício
System.out.println("x vale 1");
break;
}
case 2:
System.out.println("x vale 2");
break;
default:
System.out.println("x é maior que 2");
break;
• Criar um programa que contenha um valor
}
de um produto e um código de aumento.
• Deverá imprimir o valor da taxa e o valor
do produto final
Código Aumento
Dica 1 10
Criar 3 variaveis:
Código da taxa de aumento
3 25
Valor do produto 6 30
Percentual da taxa
10 50
69. Controladores - while
int x = 0; Retorno
while (x<=10) {
System.out.println(x++); 0
} 1
2
3
4
while (true) { 5
if (condicao) 6
break; 7
} 8
9
10
70. Exercício
• Criar um programa que imprima todos os
números divisíveis por 2 de 1 a 100 usando
o while
71. Código
public static void main(String[] args) {
int count=1;
while (count <= 100) {
if (count % 2 == 0)
System.out.println("Número: " + count);
count++;
}
}
72. Controladores - for
Retorno
for ( int i = 0; i <= 10; i++ ) {
0 System.out.print(i);
1 }
2
3
4
5 for ( int i = 0; i <= 10; i++ ) {
6 System.out.println(i);
7 if (condicao)
8 break;
9 }
10
73. Exercício
• Criar um programa que imprima todos os
números divisíveis por 2 de 1 a 100 usando
o for
74. Código
public static void main(String[] args) {
for (int i = 0; i <= 100; i++) {
if (i % 2 == 0)
System.out.println("Número: " + i);
}
}
76. Exceções
try {
// primeira linha vigiada
}
catch (Exception e) {
// primeira linha que será executada caso haja um exceção do
tipo Exception
}
finally {
// bloco que será executado, havendo ou não uma exceção
(sempre!)
}
77. Exceções
try {
1. Aloca memória para abertura de um arquivo
2. Abre um arquivo
3. Imprime arquivo na porta da impressora
4. Fecha arquivo
5. Desaloca memória
}
catch (ArquivoNaoExisteException e1) {
1. Desaloca Memória
2. Mostra mensagem que arquivo não foi encontrado
}
catch (PortadaImpressoraNaoResponde e2) {
1. Desaloca Memória
2. Fecha Arquivo
}
78. Exceções
public class AulaJava {
public static void main(String[] args) {
try {
metodoDoMal();
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("Erro: " + e.getMessage());
e.printStackTrace();
}
}
public static void metodoDoMal() throws IOException {
throw new IOException("eu fiz um erro");
}
}
79. •
Exercício
Criar um método chamado twittar(String texto) onde o mesmo poderá
receber até 140 caracteres, se passar disso deverá jogar uma excessão
• O método twittar deverá imprimir o texto caso tenha até o tamanho máximo
permitido
public class AulaJava {
public static void main(String[] args) {
try {
metodoDoMal();
} catch (IOException e) {
// TODO Auto-generated catch block
System.out.println("Erro: " + e.getMessage());
e.printStackTrace();
}
}
Dica
public static void metodoDoMal() throws IOException {
texto.length() throw new IOException("eu fiz um erro");
}
}
80. Código
public static void main(String[] args) {
try {
twittar("teste");
} catch (Exception e) {
System.out.println("Erro: " + e.getMessage());
}
}
private static void twittar(String texto) throws Exception {
if (texto.length() > 140)
throw new Exception("Ultrapassou o limite de 140
caracteres.");
System.out.println(texto);
}
87. Criando sua excessão
public class LimiteDeCaracteresException extends Exception {
private static final long serialVersionUID = 1L;
public LimiteDeCaracteresException() {
super("Limite de caracteres excedidos.");
}
}
88. Criando sua excessão
import com.itcursos.exception.LimiteDeCaracteresException;
public class AulaJava {
public static void main(String[] args) {
try {
twittar("teste");
} catch (LimiteDeCaracteresException e) {
System.out.println("Erro: " + e.getMessage());
}
}
private static void twittar(String texto) throws
LimiteDeCaracteresException {
if (texto.length() > 140)
throw new LimiteDeCaracteresException();
System.out.println(texto);
}
89. public class Pessoa { Extends
private String nome;
public void ImprimeNome(){
System.out.println("o nome é:" + nome);
}
public String getNome() {
return nome; public static void main(String[] args) {
} Cliente c = new Cliente();
c.setNome("Carlos");
public void setNome(String nome) {
this.nome = nome; c.ImprimeNome();
} }
}
public class Cliente extends Pessoa {
}
90. public class Pessoa { Extends
private String nome;
public void ImprimeNome(){
System.out.println("o nome é:" + nome);
}
public String getNome() {
return nome; public static void main(String[] args) {
} Cliente c = new Cliente();
c.setNome("Carlos");
public void setNome(String nome) {
this.nome = nome; c.ImprimeNome();
} }
}
public class Cliente extends Pessoa {
}
91. public class Pessoa { Extends
private String nome;
public void ImprimeNome(){
System.out.println("o nome é:" + nome);
}
public String getNome() {
return nome; public static void main(String[] args) {
} Cliente c = new Cliente();
c.setNome("Carlos");
public void setNome(String nome) {
this.nome = nome; c.ImprimeNome();
} }
}
public class Cliente extends Pessoa {
}
92. public class Pessoa { Extends
private String nome;
public void ImprimeNome(){
System.out.println("o nome é:" + nome);
}
public String getNome() {
return nome; public static void main(String[] args) {
} Cliente c = new Cliente();
c.setNome("Carlos");
public void setNome(String nome) {
this.nome = nome; c.ImprimeNome();
} }
}
public class Cliente extends Pessoa {
}
93. Implements
public interface Pessoa {
public void falar();
}
public static void main(String[] args) {
Cliente c = new Cliente();
c.falar();
}
public class Cliente implements Pessoa {
public void falar() {
System.out.println("olá");
}
}
94. Implements
public interface Pessoa {
public void falar();
}
public static void main(String[] args) {
Cliente c = new Cliente();
c.falar();
}
public class Cliente implements Pessoa {
public void falar() {
System.out.println("olá");
}
}
95. Implements
public interface Pessoa {
public void falar();
}
public static void main(String[] args) {
Cliente c = new Cliente();
c.falar();
}
public class Cliente implements Pessoa {
public void falar() {
System.out.println("olá");
}
}
96. Implements
public interface Pessoa {
public void falar();
}
public static void main(String[] args) {
Cliente c = new Cliente();
c.falar();
}
public class Cliente implements Pessoa {
public void falar() {
System.out.println("olá");
}
}
97. Exercício
• Crie uma interface AnimalVoador
• Deverá ter o método voar()
• Crie uma classe Mamifero
• Deverá ter o método mamar()
• Crie uma classe Morcego que implemente o AnimalVoador
e extenda do Mamifero
• Cria uma classe Superman que implemente AnimalVoador e
extenda do Mamifero
• Vamos instanciar um Superman e um Morcego no método
main e chamar seus métodos
98. Código
public class Mamifero {
public void mamar() {
System.out.println("Estou mamando");
}
}
public interface AnimalVoador {
void voar();
}
99. Código
public class Superman extends Mamifero implements AnimalVoador {
@Override
public void voar() {
System.out.println("Sou um homem voador. blaf blaf blaf");
}
}
public class Morcego extends Mamifero implements AnimalVoador {
@Override
public void voar() {
System.out.println("Estou voando. blaf blaf blaf");
}
}
100. Código
public static void main(String[] args) {
Superman superman = new Superman();
superman.voar();
superman.mamar();
Morcego morcego = new Morcego();
morcego.voar();
morcego.mamar();
}
Console
Sou um homem voador. blaf blaf blaf
Estou mamando
Estou voando. blaf blaf blaf
Estou mamando
115. Código
public class Superman extends Mamifero implements AnimalVoador {
@Override
public void voar() {
System.out.println("Sou um homem voador. blaf blaf blaf");
}
public void voar(String texto) {
System.out.println(texto);
}
}
116. Código
public class Superman extends Mamifero implements AnimalVoador {
@Override
public void voar() {
System.out.println("Sou um homem voador. blaf blaf blaf");
}
public void voar(String texto) {
System.out.println(texto);
}
}
117. Código
public class AulaJava {
public static void main(String[] args) {
Superman superman = new Superman();
superman.voar("Testando voo");
}
}
Console
Testando voo
118. Código
public class AulaJava {
public static void main(String[] args) {
Superman superman = new Superman();
superman.voar("Testando voo");
}
}
Console
Testando voo
119. Exercício
• Criar uma classe Pessoa
• Criar método falar()
• Criar uma classe Cliente que extende de Pessoa
• Faça um overload e um override do método falar
• Implemente no main e verifique a saída no console
120. Vetor
Segundo a definição mais clássica da
informática, um vetor é uma estrutura de dados
homogenia, ou seja, todos os elementos de um
vetor são do mesmo tipo.
121. Vetor
Segundo a definição mais clássica da
informática, um vetor é uma estrutura de dados
homogenia, ou seja, todos os elementos de um
vetor são do mesmo tipo.
int[] vetorDeInteiros;
float[] vetorDeFloat;
String[] vetorDeString;
long[] vetorDeLong;
122. Vetor
Segundo a definição mais clássica da
informática, um vetor é uma estrutura de dados
homogenia, ou seja, todos os elementos de um
vetor são do mesmo tipo.
Exemplos
int[] vetorDeInteiros;
float[] vetorDeFloat;
String[] vetorDeString;
long[] vetorDeLong;
123. Vetor
Inicialização de dados do vetor
int[] vetorDeInteiros = new int[4];
float[] vetorDeFloat = new float[5];
String[] vetorDeString = new String[6];
124. Vetor
Exemplo
índice vetor
0 2
int vetor[] = {2, 5, 4, 8, 5};
1 5
2 4
3 8
4 5
vetor.length - Retorna tamanho do vetor
vetor[index] - retorna valor da posição informada
125. Exercício
• Crie um vetor de qualquer tipo de tamanho 5
• Preencha os 5 valores
• Faça um laço percorrendo-os e escreva-o no console. E
identifique quem é par e impar
126. Código
public static void main(String[] args) {
int vetor[] = {2, 5, 4, 8, 5};
for (int i = 0; i < vetor.length; i++) {
int numero = vetor[i];
if (numero % 2 == 0)
System.out.println("Número par: " + vetor[i]);
else
System.out.println("Número impar: " + vetor[i]);
}
}
127. Código
public static void main(String[] args) {
int vetor[] = {2, 5, 4, 8, 5};
for (int i = 0; i < vetor.length; i++) {
int numero = vetor[i];
if (numero % 2 == 0)
System.out.println("Número par: " + vetor[i]);
else
System.out.println("Número impar: " + vetor[i]);
}
}
Número par: 2
Número impar: 5
Número par: 4
Número par: 8
Número impar: 5
128. Código
public static void main(String[] args) {
int vetor[] = {2, 5, 4, 8, 5};
for (int i = 0; i < vetor.length; i++) {
int numero = vetor[i];
if (numero % 2 == 0)
System.out.println("Número par: " + vetor[i]);
else
System.out.println("Número impar: " + vetor[i]);
}
}
Console
Número par: 2
Número impar: 5
Número par: 4
Número par: 8
Número impar: 5
129. Lista
import java.util.List;
List<String> nomes = new ArrayList<String>();
nomes.add("Carlos");
nomes.add("Fulano");
nomes.size() - retorna tamanho da lista
nomes.get(index) - retorna valor da posição informada
nomes.clear() - Limpa a lista
nomes.remove(index) - Remove valor da posição informada
130. List vs Vetor
• Vetor
• Mais lento
• É ThreadSafe
• ArrayList • Não é Necessário
• Mais rápido implementar bloco
“synchronized”
• Não é ThreadSafe
• Necessário implementar
bloco “synchronized”
132. Dojo
Segundo o http://codingdojo.org/:
“Um Coding Dojo é um encontro
onde um grupo de programadores
se reúne para trabalhar em
conjunto em um desafio de
programação. Eles estão lá para
se divertir, e, através de uma
metodologia pragmática,
melhorar suas habilidades de
programação e de trabalho em
grupo.”
133. Regras
• Desenvolvimento orientado a Testes: Desenvolver um teste antes mesmo
de fazer qualquer tipo de implementação, com intuito de passar avisão correta da
implementação desejada.
• Pequenos Passos (ou passos de bebê): Deve-se desenvolver o código o
mais simples possível para que o teste passe, quando for escrever um
outro teste para o mesmo método deve-se escrever um teste um pouco
mais complexo (ou melhor, um pouco menos simples).
• Programação em par: Junção de 2 pessoas em um computador.
Onde uma é o chamado piloto e a outra o co-piloto, ou seja, o
piloto mete a mão no teclado, já o co-piloto, podemos dizer
assim, “coordena” os passos tomados. Valendo salientar que
essas 2 pessoas no Dojo devem ficar explicando em voz alta o
que estão fazendo para a platéia.
134. Três momentos:
Vermelho: Quando um ou mais testes não estão passando.
A dupla que está de “posse” do computador deve fazer o
teste passar e a platéia não deve falar neste momento, para
não atrapalhar.
Verde: Quando os testes são rodados e os mesmos
passados, aí sim, neste momento a platéia poderá dar
sugestões para melhor o código.
Amarelo: Resumindo, refatoração. Após a platéia dar
sugestões de modificações.
136. Ano Bissexto
Você está resolvendo este problema.
Este problema foi utilizado em 80 Dojo(s).
A cada 4 anos, a diferença de horas entre o ano solar e o do calendário convencional completa cerca de 24 horas (mais
exatamente: 23 horas, 15 minutos e 864 milésimos de segundo). Para compensar essa diferença e evitar um descompasso em
relação às estações do ano, insere-se um dia extra no calendário e o mês de fevereiro fica com 29 dias. Essa correção é
especialmente importante para atividades atreladas às estações, como a agricultura e até mesmo as festas religiosas.
Um determinado ano é bissexto se:
■ O ano for divisível por 4, mas não divisível por 100, exceto se ele for também divisível por 400.
Exemplos:
São bissextos por exemplo:
■ 1600
■ 1732
■ 1888
■ 1944
■ 2008
Não são bissextos por exemplo:
■ 1742
■ 1889
■ 1951
■ 2011
Escreva uma função que determina se um determinado ano informado é bissexto ou não.
Notes de l'éditeur
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
- Vari&#xE1;veis primitivas: podem ser do tipo byte, short, int, long, float, double, char ou boolean.\n
- Vari&#xE1;veis de refer&#xEA;ncia: usada para referenciar um objeto. Quando usamos uma vari&#xE1;vel de refer&#xEA;ncia definimos qual o tipo do objeto ou um subtipo do tipo do objeto (veremos isso mais para frente).\n\na diferen&#xE7;a entre variaveis primitivas e variaveis de tipo de referencia &#xE9; que as primitivas n&#xE3;o possuem comportamento, quando se chama um m&#xE9;todo passando uma varivael primitiva\n