Escolar Documentos
Profissional Documentos
Cultura Documentos
• Apresentação;
• O que é e para que serve Programação;
• 5 principais linguagens de programação;
• Porque programar em Java;
• Plataformas Java;
• Maquina Virtual (JVM);
• Comunidades: Os grupos de usuários Java são muito fortes em todo o mundo e graças a eles é possível obter
material para estudos de maneira fácil, participar de encontros regionais, palestras e até minicursos.
• Grande número de frameworks: Existem hoje uma variedade de frameworks que visam facilitar o trabalho do
desenvolvedor.
• O Java não roda somente Java: A máquina virtual Java atualmente roda cerca de 350 linguagens com pontos
interessantes, por exemplo, o Groovy linguagem dinâmica, Scala que é específica para concorrência dentre outras
linguagens como JPython , Python, Jruby e o Ruby.
• Desenvolva em qualquer sistema operacional para qualquer sistema operacional: Quando se compila um
arquivo em Java ele gera um bytecode que é interpretado numa JVM. Basta seu sistema operacional ter uma JVM,
é possível executar o Java nos sistemas operacionais Windows, GNU/Linux e Mac.
Montando Ambiente
https://www.eclipse.org/downloads/packages/installer
Pacote desenvolvedor –
Clique aqui para baixar o JDK
JRE = Java Runtime Environment, ambiente de execução Java, formado pela JVM
e bibliotecas, tudo que você precisa para executar uma aplicação Java.
Ele é formado pela JRE somado a ferramentas, como o compilador. Tanto o JRE e
o JDK podem ser baixados do site http://www.oracle.com/technetwork/java/.
Para criar um novo
projeto abra a IDE, que
instalamos na aula
anterior, e escolha a
opção Create New
Project.
• Na tela de criação do projeto, devemos escolher a
opção Java, no menu à esquerda, e em seguida clicar
sobre o botão Next.
• Na figura abaixo vemos em Project SDK a versão do
JDK reconhecida pela IDE selecionada.
Não precisa selecionar nada , pois não
iremos iniciar com código pronto.
• O Eclipse possui muitos atalhos úteis para o programador. Sem dúvida os 3 mais importantes de conhecer e de praticar são:
• Ctrl + 1 Aciona o quick fixes com sugestões para correção de erros.
• Ctrl + Espaço Completa códigos
• Ctrl + 3 Aciona modo de descoberta de menu. Experimente digitar Ctrl+3 e depois digitar ggas e enter. Ou então de Ctrl + 3 e digite new class.
• Ctrl + F11 roda a última classe que você rodou. É o mesmo que clicar no ícone verde que parece um botão de play na barra de ferramentas.
• Ctrl + PgUp e Ctrl + PgDown Navega nas abas abertas. Útil quando estiver editando vários arquivos ao mesmo tempo.
• Ctrl + Shift + F Formata o código segundo as convenções do Java
• Ctrl + M Expande a View atual para a tela toda (mesmo efeito de dar dois cliques no título da View)
• Ctrl + Shift + L Exibe todos os atalhos possíveis.
• Ctrl + O Exibe um outline para rápida navegação
• Alt + Shift + X e depois J Roda o main da classe atual. Péssimo para pressionar! Mais fácil você digitar Control+3 e depois digitar Run!. Abuse desde já do
Control+3
Plataformas Java:
O Java não se resume em uma linguagem, mas é uma plataforma de desenvolvimento.
• JSE: Java Standard Edition. A versão básica do Java com ela é possível desenvolver diversos
aplicativos para desktop, normalmente aqueles que querem se aprofundar nessa tecnologia
começam por essa plataforma. Existem pacotes para se desenvolver programas em console ou,
por exemplo, Swing que se pode desenvolver software com interface gráfica.
• Java TV: Dentro da plataforma JME, o Java TV traz uma API que ter permite o desenvolvimento para a
Televisão Digital com recursos como fluxo de áudio e vídeo, acesso aos dados nos canais de transmissão,
sincronia das mídias dentre outros. Esta tecnologia veio a ser amplamente estudada e desenvolvida após a
definição do padrão de televisão digital brasileiro.
• Java FX: Essa plataforma visa a criação da Internet rica, aplicações web com características de um
programa tradicional de um desktop, em diversos dispositivos (desktop, browser, telefone celulares, TVs,
video-games, Blu-rays players etc.).
• JEE: Java Enterprise Edition é uma versão voltada para as empresas e para aplicativos web. Uma grande
característica dessa plataforma é a necessidade de um servidor de aplicação. Recebeu a atualização para a
versão 6, dentre os frameworks dessa plataforma podemos citar: JSP (Java Server Pages): De uma maneira
geral ele executa Java em sua página.
Plataformas Java:
• JPA (Java Persistence API): Ele funciona como um padrão dos padrões de persistência. Com
ele se pode modificar de framework de persistência (hibernate, toplink etc) com impacto zero
em sua aplicação.
• JSF (Java Server Faces): Framework responsável pela camada de visão muito indicado para
programas que utilizarão o padrão MVC (Model View Control), uma de suas características é o
uso do AJAX de maneira nativa.
• Java Card: Programação voltada para o desenvolvimento de cartões inteligentes. Um dos
seus principais benefícios do seu uso é a portabilidade e a segurança. Esses dispositivos vêm
crescendo nos últimos anos e tendem a crescer ainda mais.
Sintaxe Java
Java - Introdução
• Java é uma linguagem de programação orientada a objetos e baseada em classes, muito utilizada
na programação web back-end e na programação mobile para Android.
• O objetivo dessa Aula é construir um programa, que escreve a frase Hello World no terminal
utilizando a linguagem Java.
• E pra chegar nesse resultado daremos dois passos fundamentais no aprendizado do Java que são:
• Criar uma primeira classe
• Criar uma instância dessa classe
• Esses dois passos serão reproduzidos diversas vezes ao escrever programas em Java.
O comando utilizado para escrever no
terminal possui a seguinte estrutura:
• Aqui utilizamos o
objeto System.out para invocar
o método println(), que pode
System.out.println(); receber como parâmetro o
texto que desejamos imprimir
no terminal.
Implementando “Hello World”:
• public class HelloWorld { Classe
Metodo
• public void sayHello() {
• // Imprime a mensagem Hello World! no terminal
• System.out.println("Hello World!");
• }
•}
Classes:
• Uma classe nada mais é do que um projeto que abstrai um conjunto de objetos com
características similares.
• Uma classe define o comportamento de seus objetos através de métodos e os estados possíveis
destes objetos através de atributos.
• Em outros termos, uma classe descreve os serviços providos por seus objetos e quais
informações eles podem armazenar.
Note que uma Classe não tem vida, é só um conceito.
• Mas os Objetos possuem vida.
• Classes não são diretamente suportadas em todas as linguagens, e são necessárias para que
uma linguagem seja orientada a objetos.
• Classes são os elementos primordiais de um diagrama de classes.
CLASSES E
OBJETOS
Quando damos new em um objeto, ele o inicializa com seus valores default,
0 para números, false para boolean e null para referências.
null é uma palavra chave em java, que indica uma referência para nenhum
objeto.
Se, em algum caso, você tentar acessar um atributo ou método de alguém que
está se referenciando para null, você receberá um erro durante a execução
(NullPointerException)
Instanciar uma Classe
Vamos criar uma nova classe , chamada Program e
instanciar a classe HelloWorld invocando o método SayHello.
}
}
}
}
MÁQUINA VIRTUAL Esse código executável (binário) resultante
será executado pelo sistema operacional e,
Linguagem Compilada
por esse motivo, ele deve saber conversar
com o sistema operacional em questão.
Algumas linguagens de programação como C ou
Pascal é necessário compilar o código para
diferentes sistemas operacionais
MÁQUINA VIRTUAL
Linguagem Interpretada
Para criar um identificador (nome da variável) em Java, precisamos seguir algumas regras,
listadas a seguir:
Uma estação ferroviária é composta por 1 ou mais linhas ferroviárias. Em uma linha ferroviária
podem estar estacionados diversos recursos ferroviários. Recursos ferroviários são vagões,
locomotivas ou trens. Um trem é formado por vagões e locomotivas. Podem existir vagões e
locomotivas estacionadas em uma linha sem estarem na formação de um trem. Uma estação
ferroviária tem uma sigla e uma descrição (que não precisa obrigatoriamente possuir um valor). Uma
linha ferroviária tem um número (que a diferencia de outra linha dentro da mesma estação), uma
extensão em metros e uma descrição (que não precisa obrigatoriamente ter um valor). Um vagão é
descrito por um número de série, tipo, capacidade de carga (valor default igual a 3000 ton),
comprimento entre testeiras e comprimento dos engates (um único valor correspondendo aos dois
lados). Uma locomotiva é descrita por um número de série, capacidade de tração e comprimento. Um
trem é descrito por um prefixo (ex: NAG1010) e data/hora de formação. Um trem é formado em uma
estação ferroviária de origem e tem como destino, uma outra estação ferroviária, ou seja, a estação de
origem não pode ser igual à estação de destino. Todo trem é formado por pelo menos uma
locomotiva e um vagão. Um trem não pode ter mais do que 150 recursos (vagões
e locomotivas).
Elabore um diagrama de classes (UML) ilustrando os conceitos (classes, atributos e relacionamentos)
e restrições mencionados no texto. Não esqueça de colocar os tipos, valor default e multiplicidade
dos atributos.
Restrições:
Um trem é formado por vagões e locomotivas estacionados na mesma linha
Podem existir vagões e locomotivas estacionadas em uma linha sem estarem na formação de um trem
A estação de origem não pode ser igual à estação de destino
Resposta Exercício de fixação:
Sintaxe
Para declarar uma classe em java, utilizamos a palavra reservada class seguida pelo nome da
classe.
Na sequencia, entre chaves, definimos os elementos da classe: atributos, construtores e
métodos.
Sintaxe de declaração de classe:
}
Sintaxe – modificador de acesso
Precisaremos especificar o modificador de acesso, que, por meio dele informamos a
visibilidade da classe, que pode ser public, private ou default.
public Produto() {
// Código do construtor
}
}
A classe Produto foi declarada como public, poderá ser utilizada por todas as classes do projeto.
Regras para nomeação de classes
• Variáveis Locais
• Podem ser utilizadas dentro do método onde foram declaradas, não sendo
acessíveis de outros pontos do programa.
• Variáveis de Classe
• Variáveis declaradas como estáticas são variáveis compartilhadas entre todos os
objetos instanciados a partir de uma classe. Por isso, essas variáveis também são
conhecidas como Variáveis de Classe.
Variáveis
Tipo Descrição
boolean Pode assumir o valor true ou o valor false
Caractere em notação Unicode de 16 bits. Serve para a armazenagem de dados alfanuméricos. Também pode ser usado como um
char dado inteiro com valores na faixa entre 0 e 65535.
byte Inteiro de 8 bits em notação de complemento de dois. Pode assumir valores entre -27=-128 e 27-1=127.
short Inteiro de 16 bits em notação de complemento de dois. Os valores possível cobrem a faixa de -2-15=-32.768 a 215-1=32.767
int Inteiro de 32 bits em notação de complemento de dois. Pode assumir valores entre -231=2.147.483.648 e 231-1=2.147.483.647.
long Inteiro de 64 bits em notação de complemento de dois. Pode assumir valores entre -263 e 263-1.
Representa números em notação de ponto flutuante normalizada em precisão simples de 32 bits em conformidade com a norma
float IEEE 754-1985. O menor valor positivo representável por esse tipo é 1.40239846e-46 e o maior é 3.40282347e+38
Representa números em notação de ponto flutuante normalizada em precisão dupla de 64 bits em conformidade com a norma IEEE
double 754-1985. O menor valor positivo representável é 4.94065645841246544e-324 e o maior é 1.7976931348623157e+308
Declaração e inicialização
Qual a diferença entre declaração e inicialização?
• Seu nome
• Seu endereço
• Sua idade
• Seu estado civil, representado por uma letra (C, S, V, D, E, etc)
• O salário, armazenado como tipo float.
E que depois exiba essas informações no console, uma por linha, como em um pequeno relatório.
A sintaxe é simples:
if (condicaoBooleana) {
codigo; public static void main(String[] args) {
int idade = 18;
}
if (idade < 18) {
System.out.println("Não pode entrar");
Qualquer expressão que retorne true } else {
ou false é uma condição booleana. System.out.println("Entrada Liberada");
}}
Costumamos usar os operadores: < , >
, <= , >=
Você pode concatenar expressões booleanas através dos operadores lógicos "E" e "OU".
O "E" é representado pelo && e o "OU" é representado pelo || .
Ex: if (idade < 18 && !amigoDoDono )
Classe Scanner
import java.util.Scanner;
Para fazer essa ação na prática, é necessário criar um objeto do tipo Scanner
que passa como argumento o objeto System.in dentro construtor
3- Leia o nome e imprime Ola (inclua o nome digitado), qual sua idade?;
4- Leia a idade e escreva : Ah! então voce tem : (idade digitada) anos nome digitado
Resposta Exercício Scanner
import java.util.Scanner;
}
O WHILE
************
O mesmo faremos na sequencia utilizando
texto.
import java.util.Scanner;
import java.util.Scanner;
switch(valor) {
case alternativa1:
código1;
break;
case alternativa2:
código2;
break;
case default:
códigoPadrão;
}
Switch - Exercício
"Linguagem desconhecida"
Switch - Resposta
import java.util.Scanner;
switch (nome) {
case "Java":
System.out.println("Melhor escolha! Esta linguagem é Orientada a Objetos");
break;
case "C":
System.out.println("Esta liguagem é estruturada");
break;
default:
System.out.println("Linguagem desconhecida");
}
}
}
switch
Execute o código
anterior comentando a
palavra
//Break
switch
A ausência desse comando faz com que a verificação passe para a próxima
alternativa até que todas tenham sido verificadas ou que o comando break seja
encontrado.
Atributos:
• Um atributo é uma variável declarada no corpo de uma classe.
• Os Atributos são os elementos que definem a estrutura de uma classe
(são as características de um objeto).
• Atributos são, basicamente, a estrutura de dados que vai representar a
classe.
• A declaração de um atributo especifica o seu nome, seu tipo (que pode
ser um dos tipos naturais, tais como int, char, double, float, ou o nome de
uma classe, como String ou Pessoa), você pode dar qualquer nome ao
atributo, desde que este nome não corresponda a uma palavra reservada
da linguagem.
• Por questões de padronização, o nome de um atributo sempre começa
com uma letra minúscula.
Métodos:
• Métodos são blocos de código que pertencem a uma classe e tem por
finalidade realizar uma tarefa.
• Os métodos determinam o comportamento dos objetos de uma classe,
métodos são as ações que um objeto pode realizar.
• Um método sempre tem que definir o que retorna, nem que defina que não
há retorno.
Métodos:
Queremos criar um método que saca uma determinada quantidade e não
devolve nenhuma informação para quem acionar esse método:
• class Conta {
• double salario;
• // ... outros atributos ...
•
• void saca(double quantidade) {
• double novoSaldo = this.saldo - quantidade;
• this.saldo = novoSaldo;
• }
• }
METODO SEM RETORNO - VOID
A palavra chave void diz que, nenhuma informação será enviada de volta a quem pediu.
Ou seja, teremos um método sem retorno.
Caso o método não retorne valor algum, é obrigatória a utilização do tipo void na assinatura do método
• Int age;
• return age;
• }
O comando return é utilizado para passar o valor requerido de volta para quem chamou o
método e é obrigatório quando o tipo de retorno não é void.
Instância
• Abstração
• Encapsulamento
• Herança
• Polimorfismo
Abstração:
Esse pilar, como o próprio nome diz, visa abstrair algo do mundo real e
transforma-lo em um objeto na programação.
Esse objeto será composto por uma identidade, propriedades e métodos.
Dessa forma fica mais simples trazer para dentro da programação o problema
que precisa ser resolvido ou o processo que precisará ser automatizado.
Encapsulamento
int numero;
String titular;
double saldo;
minhaConta.titular = "Mari";
minhaConta.saldo = 100000.0;
minhaConta.deposita(1000.00);
minhaConta.saca(1300.00);
• String cor;
• String modelo;
• double velocidadeAtual;
• double velocidadeMaxima;
• E os seguintes métodos:
• void liga() -> Apenas imprimi a mensagem que o carro esta ligado;
• void acelera(double quantidade) -> recebe o valor que será a velocidade atual;
• int pegaMarcha() -> dependendo da velocidade a marcha será diferente;
//liga o carro
void liga() {
System.out.println("O carro está ligado");
}
// liga o carro
meuCarro.liga();
}
Entendendo - Java
A linguagem Java possui várias regras que devem ser seguidas para que um programa possa ser
entendido e executado pela JVM.
class MinhaClasse {
//variáveis, métodos
}
Utilizamos a palavra chave class, em seguida informamos o nome da classe e abrimos e fechamos as
chaves.
Entendendo - Java
class Aluno {
String nome;
String matricula;
Por exemplo, se precisarmos criar um cadastro de alunos, podemos criar uma classe chamada Aluno
com atributos e métodos
Entendendo - Java
Declarando Variáveis
Existem variáveis locais primitivas ou de referencia, elas são locais na memória utilizado para armazenar
algum valor, para que possa ser acessado ou utilizado posteriormente.
Métodos: o nome dos métodos deve ter a primeira letra minúscula. Caso o nome também seja formado
por várias palavras, a primeira letra de cada palavra seguinte deve ter a primeira letra maiúscula.
Variáveis: a nomeação das variáveis segue o mesmo padrão dos métodos. São recomendados nomes
curtos e significativos, como nomeDoAluno, saldoDaConta;
Constantes: variáveis que são constantes são criadas marcando-as como static e final. Devem ser
nomeadas com todas as letras maiúsculas
Entendendo - Java
Quando uma classe é executada, a máquina virtual procura pelo método main().
Este método é o ponto de partida de todas as aplicações Java, e deve ser assinado desta forma:
}
Entendendo - Java
Conhecendo os Arrays
Um array é um objeto que pode armazenar vários valores. Contudo, cada array pode armazenar apenas
valores de um mesmo tipo
Int[] arrayDeInteiros = new int[2]; O primeiro (arrayDeInteiros) é um array que pode armazenar apenas dois
arrayDeInteiros[0] = 30; elementos, como foi definido no momento da instanciação.
arrayDeInteiros[1] = 50;
int[] outroArray = {230,150,2011}; O segundo array (outroArray), por sua vez, recebeu os valores no momento de
sua criação, e teve, implicitamente, seu tamanho definido para três
O Java possui operadores para a realização de funções como: adição, subtração, multiplicação e divisão. Assim
como na álgebra, estes possuem uma ordem de precedência, ou seja, alguns cálculos são realizados antes de
outros.
resultado = resultado - 5;
System.out.println(resultado); // imprime 10
resultado = resultado / 2;
System.out.println(resultado); // imprime 5;
resultado = resultado + 2;
resultado = resultado % 5;
System.out.println(resultado); // imprime 2
System.out.println(“Resultado: ” + resultado); //imprime “Resultado: 2”
}
}
Break
O break anteriormente vimos que pode ser utilizado para sair de um switch, mas também
podemos utilizá-lo para parar um while ou for.
Considere que temos um texto dividido em três seções separadas por um -, como o número de uma conta 00-
234-2333.
Agora, desejamos encontrar a posição do primeiro caractere - para extrair a primeira seção de dígitos dessa
conta.
String conta = "00-234-2333";
int posicao = 0;
Nesse caso, ao encontrar a
while(posicao < conta.length( )) { primeira ocorrência do
char c = conta.charAt(posicao); caractere -
o laço é encerrado
if(c == '-') {
break;
}
posicao++;
}
System.out.println(conta.substring(0, posicao));
return
O comando return também é utilizado para parar uma execução, geralmente de dentro de um método,
encerrando-o na linha em que return é declarado e um valor é retornado.
Exemplo retornamos true se um número for par e false se ele for ímpar.
return false;
}
Observe que uma vez que a expressão value % 2 == 0 seja verdadeira, o comando return true será
executado e o método será encerrado.
Índice de massa corporal – Exercício
Apresente uma classe Java que implementa o cálculo e a interpretação do índice de massa
corporal de um indivíduo adulto
• O Índice de Massa Corporal (IMC), que é uma medida utilizada pela Organização Mundial de Saúde para avaliar o grau de
obesidade de um indivíduo, é calculado pela relação entre o peso (em kg) dividido pelo quadrado da altura (em metros)
Uma constante é declarada quando precisamos lidar com dados que não devem ser alterados durante a
execução do programa.
Para isso, utilizamos a palavra reservada final para que a variável seja inicializada uma única vez.
Por convenção, usamos letras maiúsculas para declarar constantes e assim distingui-las das variáveis.
if (numero >=0 ) {
A interface é um recurso muito utilizado em Java, bem como na maioria das linguagens orientadas a
objeto, para “obrigar” a um determinado grupo de classes a ter métodos ou propriedades em comum
para existir em um determinado contexto.
Porem, serão implementados em cada classe de uma maneira diferente
Para realizar a chamada/referência a uma interface por uma determinada classe, é necessário adicionar
a palavra-chave implements ao final da assinatura da classe que irá implementar a interface escolhida.
Sintaxe
perimetro = lado * 4;
return perimetro;
}
@Override
public String getNomeFigura() {
return "quadrado";
}
}
Interface – Diferença com Herança
Ao contrário da herança que limita uma classe a herdar somente uma classe pai por vez, é possível que uma
classe implemente varias interfaces ao mesmo tempo.
Imagine, por exemplo, uma interface chamada Veiculo e outra chamada Motor.
Interface nada mais que uma espécie de contrato de regras que uma classes deve seguir em um
determinado contexto.
Como em Java não existe herança múltipla, a interface passa a ser uma alternativa!
public class Carro implements Veiculo,Motor{
@Override
public String getId() {
@Override
public String getNome() {
}
Resposta - Interface
@Override
public String getFabricante() {
@Override
public String getModelo() {
}
}
Array - Java
Cada item em um array é chamado de elemento, e cada elemento é acessado pelo número,
o índice.
Como acessamos os elementos do Array?
Lembrando que sempre iniciamos a leitura do índice 0.
Declarando Arrays
Por padrão, cada array sabe seu próprio tamanho, independente de quantos valores forem inseridos.
O array armazena na variável de instância o método length, que retorna o tamanho do array especificado.
if (arrayDois.length > 8) {
System.out.println("Tamanho do ArrayDois - Maior que 8!");
} else {
System.out.println("Tamanho do ArrayDois - Menor que 8!");
}
System.out.println("\nTamanho do ArrayUm = " + arrayUm.length);
}
}
Percorrendo Arrays
A instrução for aprimorado, como é conhecida, serve para obter elementos de um array, sem a
possibilidade de alterá-los. Se caso houver necessidade de modificar os elementos, isso pode ser feito
com a instrução for controlada por contador.
Acima tem-se a definição de Animal que é a superclasse e das classes Cachorro e Gato que herdam tudo da
classe Animal.
Neste exemplo na classe Animal não tem nada, porém se tivesse atributos ou métodos eles seriam Herdados
pelas suas subclasses Cachorro e Gato.
Vale salientar que devemos atentar para a visibilidade dos atributos e métodos no caso da Herança, lembre-
se que tudo que é privado não é herdado, pois pertence unicamente à classe detentora.
Herança – é um
Por exemplo, podemos dizer que um carro É UM automóvel, portanto temos que um carro herda os atributos
e métodos de um automóvel, assim como um caminhão também É UM automóvel.
Neste exemplo temos uma hierarquia de herança onde um Carro e um Caminhão herdam atributos e
métodos comuns entre eles que estão definidos numa superclasse Automóvel.
Para o anterior a herança também é válida pois Cachorro É UM Animal e Gato também É UM Animal.
Herança – Novas classes
Iremos criar novas classes que possuem características (atributos e métodos) próprias, porem, elas
também possuem caracteristicas comuns como:
os atributos nome, data de nascimento e CPF.
Para conseguirmos referenciar o construtor “pai” iremos usar a chamada super para nome, cpf e data.
A palavra super representa uma chamada de método ou acesso a um atributo da superclasse, por isso tem
esse nome.
Iremos usar a palavra super para ivocar o construtor da superclasse Pessoa,que recebe os três parâmetros
e preenche os atributos do objeto.
Sobrescrevendo métodos :
– Subclasse pode redefinir métodos da superclasse :
• Se for chamado dessa forma, tem que ser o primeiro comando no construtor da subclasse!
Herança – Classe Pessoa
Crie um construtor (método) pessoa que recebe como parâmetro nome, cpf
data_nascimento.
Herança – Classe Pessoa (resposta)
Crie uma classe pessoa ;
Crie os atributos nome, cpf e data_nascimento
Crie um construtor (método) pessoa que recebe como parâmetro nome, cpf
data_nascimento
import java.util.Date;
public class Pessoa {
public String nome;
public String cpf;
public Date data_nascimento;
Crie uma classe Main que imprima os dados de Funcionário, Aluno e Professor.
Classes Funcionário
import java.util.Date;
import java.util.Date;
import java.util.Date;
}
}
Herança
}
Herança – Resposta
gerenteBanco.setNome("Mariana Mian");
gerenteBanco.setCpf("123.456.321-89");
gerenteBanco.setSenha (1234);
gerenteBanco.autentica(1234);
gerenteBanco.setSalario (120.000);
}
}
Exercício simples / Lógica
Crie um algoritmo que recebe 2 números e
Soma a quantidade de vezes o num1 com a
quantidade recebida no numero num2 através de
somas.
(ex: 2 e 3 = 2 + 2 + 2).
Do While
Do-while
A estrutura de repetição do-while é uma variação da estrutura while.
Existe uma diferença sutil, porém importante, entre elas.
Em um laço while, a condição é testada antes da primeira execução das instruções que compõem seu
corpo.
Desse modo, se a condição for falsa na primeira vez em que for avaliada, as instrução desse laço não
serão executadas nenhuma vez.
Em um laço do-while, por outro lado, a condição somente é avaliada depois que suas instruções são
executadas pela primeira vez, assim, mesmo que a condição desse laço seja falsa antes de ele iniciar, suas
instruções serão executadas pelo menos uma vez.
Exercício de fixação:
do{
Usando o Do-While enquanto a pessoa não chegar
//instruções a serem
aos 18 anos exiba a mensagem : ("você não tem
executadas
permissão para entrar");
}while(True)
Resposta Do-While
Por exemplo, um objeto String é imutável, o que significa que o texto que ele carrega nunca é
alterado.
Sempre que um texto precisa ser modificado é utilizado mais espaço em memória para que uma
nova String seja criada contendo a nova versão dele.
String
Uma String é formada de forma semelhante a um tipo primitivo ( tipo da variável, um nome = o valor).
A diferença é que o compilador entende que qualquer texto entre aspas duplas é uma String.
O valor especial null ->É possível declarar uma variável como sendo do tipo String sem inicializá-la com um valor.
Ex: String Nome;
Desta maneira a variável será criada com valor padrão Null.
class Pessoa {
String nome ;
}
class PessoaTeste {
System.out.println(p.nome);
}
}
Como testar igualdade entre String
A comparação entre Strings utilizando o operador de igualdade (==) retornará true se as
duas referências apontarem para o mesmo objeto na memória.
String s1 = "a";
String nome = “Mariana"; String s2 = "a";
String apelido = “Mariana”; if (s1 == s2) {
System.out.println(“ Neste caso, Nome e apelido
if(nome == apelido) { são iguais");}
System.out.println(“ Neste caso, Nome e apelido são iguais"); else {
}else{ System.out.println(“ SQN");
System.out.println(“ SQN"); }
}
Equals é um método da classe Object utilizado para testar a relação de igualdade entre dois
objetos.
Esse método está presente em todas as classes, porque todas elas derivam de Object.
A forma como essa comparação será feita pode ser determinada por quem está escrevendo a
classe e no caso de String.
if (nome1.equals(nome2)) {
System.out.println("Os nomes são iguais!");
} else {
System.out.println("Os nomes são diferentes!");
}
Como testar igualdade entre String
equalsIgnoreCase
Esse método ignora a distinção entre letras maiúsculas e minúsculas nas duas strings
comparadas.
if(nome1.equalsIgnoreCase(nome2)) {
System.out.println("Os nomes são iguais!");
}
Como testar igualdade entre String
equalsIgnoreCase
Esse método ignora a distinção entre letras maiúsculas e minúsculas nas duas strings
comparadas.
if(nome1.equalsIgnoreCase(nome2)) {
System.out.println("Os nomes são iguais!");
}
Como testar igualdade entre String
compareTo
Esse método pode retornar 0 se as strings forem iguais, um número negativo se a string que
invoca o compareTo for menor que a string que é passada como um argumento e um número
positivo se a string que invoca o compareTo for maior que a string que é passada como
argumento.
System.out.println("nome2.compareTo(nome1) = "+nome2.compareTo(nome1));
System.out.println("nome1.compareTo(nome2) = "+nome1.compareTo(nome2));
Neste caso teremos um numero positivo pois Mariana é maior que Mari.
Como testar igualdade entre String
compareToIgnoreCase
É uma função que compara textos lexigraficamente, ignorando se as letras são maiúsculas ou
minúsculas. No exemplo abaixo fazemos duas comparações, uma utilizando compareTo e a
outra usando compareToIgnoreCase para analisarmos as diferenças.
String texto = "A API de Strings é uma das mais utilizadas na linguagem Java";
String linguagem = texto.substring(texto.indexOf("Java"), texto.length());
if (linguagem.compareToIgnoreCase("java") == 0) {
System.out.println("compareToIgnoreCase: Encontrei a linguagem! Ela é " + linguagem);
}
if(linguagem.compareTo("java") == 0) {
System.out.println("compareTo: Encontrei a linguagem! Ela é " + linguagem);
}
Como testar igualdade entre String
compareToIgnoreCase
É uma função que compara textos lexigraficamente, ignorando se as letras são maiúsculas ou
minúsculas. No exemplo abaixo fazemos duas comparações, uma utilizando compareTo e a
outra usando compareToIgnoreCase para analisarmos as diferenças.
String texto = "A API de Strings é uma das mais utilizadas na linguagem Java";
String linguagem = texto.substring(texto.indexOf("Java"), texto.length());
if (linguagem.compareToIgnoreCase("java") == 0) {
System.out.println("compareToIgnoreCase: Encontrei a linguagem! Ela é " + linguagem);
}
if(linguagem.compareTo("java") == 0) {
System.out.println("compareTo: Encontrei a linguagem! Ela é " + linguagem);
}
Exercício
Import java.util.Scanner;
public class Converte
{
public static void main(String args[])
{
Scanner input = new Scanner(System.in);
double C, F;
F = ( 9 * C + 160 ) / 5;
concat
Existem duas formas de unir duas ou mais sequências de
caracteres. A mais comum dentre elas é utilizando o operador
de adição
trim()
Remove espaços antes e depois da string
Ex.: " Aula ".trim() -> “Aula”
Principais métodos da classe String
charAt
Retorna o caractere em uma localização específica em uma String.
Esse método possui um parâmetro do tipo inteiro que é usado como índice,
retornando a partir dessa posição inserida nesse parâmetro.
É importante lembrar que o índice sempre começa a ser contado do número 0
(zero) em diante.
Sendo assim a posição do caractere “a” em Mari é 1 e não 2, como se poderia
deduzir.
String nomeCurso = "JAVA";
if(nomeCurso.charAt(1) == ‘A’) {
System.out.println(“O caractere A está na posição 1”);
}
A mensagem "O caractere A está na posição 1" será impressa, uma vez
que o caractere A está na posição 1 da cadeia de caracteres.
Principais métodos da classe String
toUpperCase
Retorna uma nova string com o conteúdo da original
convertido para letras maiúsculas, mantendo a original
inalterada.
toLowerCase
De forma semelhante ao anterior, o toLowerCase retorna uma
cópia de uma string com todas as letras convertidas para
minúsculo, mantendo a original inalterada.
System.out.println(nomeA.toUpperCase());
System.out.println(nomeB.toLowerCase());
Principais métodos da classe String
indexOf e lastIndexOf
Permitem a localização de caracteres e substrings especificados em strings.
indexOf
Localiza a primeira ocorrência de um caractere em uma string. Se o método localizar o caractere, é retornado o índice
do caractere na String, caso contrário retorna
-1. Existem duas versões do indexOf que procuram caracteres em uma String.
•1ª versão – aceita um inteiro que é conhecido como o número do índice na String.
•2ª versão – aceita dois argumentos inteiros – o caractere e o índice inicial em que a pesquisa da String deve iniciar.
lastIndexOf
Localiza a última ocorrência de um caractere em uma string. O método procura do fim da
string em direção ao começo, se encontrar o caractere é retornado o seu índice na string,
caso contrário retorna
-1. Existem duas versões do lastIndexOf que pesquisam por caracteres em uma string.
•1ª versão – utiliza um inteiro do caractere.
•2ª versão – aceita 2 argumentos – um inteiro de caractere e o índice a partir do qual iniciar
a pesquisa de trás para frente.
Principais métodos da classe String
int inicio = 0;
System.out.println(iniciais.toUpperCase().trim());
}
Classe Random
Método Ação
nextBytes(byte[] bytes) Gera bytes aleatórios e os coloca em um array de bytes fornecido pelo usuário
nextInt(int x) Retorna um valor do tipo Int entre 0 e o valor x especificado (excluindo o próprio x)
nextGaussian() Retorna um valor double Gaussiano com média 0.0 e desvio padrão 1.0
setSeed(long semente) Configura a semente do gerador de números aleatórios, usando uma semente do tipo long.
Classe Random
Usando Math.random():
Também é possível gerar números aleatórios (pseudoaleatórios) usando o método estático random() da
classe Math. Este método retorna um valor double no intervalo de 0.0 até 1.0.
aposta[i] = nroAposta;
}
Exercício - Mega
switch (nroAcertos) {
case 4: System.out.println("Parabéns. Você acertou a quadra!"); break;
case 5: System.out.println("Parabéns. Você acertou a quina!"); break;
case 6: System.out.println("Parabéns. Você é campeão da MegaSena!");
break;
default: System.out.println("Não foi dessa vez. Tente novamente!");
break;
}
}
Exercício - Mega
/*
* Função retorna uma array com 6 números gerados randomicamente (API do Java),
* sem duplicidade, representando o sorteio da megasena.
*/
static int[] sorteaSena() {
int[] resultado = new int[NUMERO_DEZENAS];
do {
sorteado = (int) (Math.random()*60)+1; //nro aleatorio de 1 a 60
repetido = existeNumero(resultado, sorteado);
} while(repetido); // evita repetição de número
resultado[i] = sorteado;
}
return resultado;
}
/*
* Função comparada cada número apostado, com os números sorteados.
* Por fim retorna a quantidade de acertos.
*/
static int contaAcertos(int[] sorteio, int[] aposta) {
int acertos = 0;
for (int i = 0; i < NUMERO_DEZENAS; i++) {
int nroAposta = aposta[i];
/*
* Função indica se o n existe no array numeros.
* Útil para validar duplicadade de dados.
*/
static boolean existeNumero(int[] numeros, int n) {
for (int i = 0; i < numeros.length; i++) {
if (numeros[i] == n) {
return true;
}
}
return false;
}
JUnit
O JUnit é um framework open source criado com o intuito de facilitar a execução de
testes de unidade em Java.
Com ele, a partir de anotações e algumas declarações, conseguimos avaliar classes e
métodos para saber se eles estão apresentando o comportamento desejado.
Com JUnit, também evitamos aquela prática tão comum de criar um método main() em
qualquer lugar, apenas para saber se o código de um método que acabamos de
implementar está funcionando.
Junit - Porque devemos testar o código?
•É comum cometer erros durante a programação. O que não deve ser comum é
deixar esses erros no software;
•Se você não testar, quem será responsável por isso? Se não testarmos nosso
software, quem fará isso será o cliente, e isso será feito em produção, o pior
cenário em todos os casos, o que deve elevar os custos do projeto.
TDD - Test Driven Development
O conceito de Desenvolvimento Guiado por Testes define que antes de criarmos um código novo
(classe), devemos escrever um teste (classe de test case) para ele.
•Use apenas dados suficientes (não teste 10 condições se três forem suficientes);
•No caso de um método set, só faça o teste caso haja validação de dados;
•Achou um bug? Não conserte sem antes escrever um teste que o pegue (se
você não o fizer, ele volta).
Como instalar o JUnit?
Para usar o JUnit em sua máquina basta ter em mente essas duas idéias:
•Caso você não tenha o JUnit instalado, faça o download do arquivo junit.jar em www.junit.org,
após inclua-o no classpath para compilar e rodar os programas de teste.
•Porém o JUnit já vem configurado nas versões recentes de IDE’s como Eclipse
Configurando junit
Ao selecionar a opção, a dialog será atualizada para exibir quatro tabs: Source, Projects,
Libraries, Order and Export. Agora, escolha a aba Libraries
Configurando junit
Ao selecionar a opção, a dialog será atualizada para exibir quatro tabs: Source, Projects,
Libraries, Order and Export. Agora, escolha a aba Libraries
Configurando junit
Não existe nenhuma menção sobre a biblioteca JUnit, dessa forma é necessário você clicar no
botão Add Library, para inserir a biblioteca do JUnit.
Por ultimo. Na comboBox JUnit library version, escolher a versão 4 do JUnit e clicar no
botão Finish
Configuração IntelliJ IDEA
Fonte:
https://www.jetbrains.com/help/idea/testin
g.html#add-test-root
Criando uma classe – Para testar o Junit
import org.junit.Assert;
import org.junit.Test;
@Test
public void testeConfiguracao(){
Assert.assertEquals(2, (1+1), 0);
}
@Test
public void testeConfiguracaoNegativo(){
Assert.assertEquals(2, (2+1), 0);
}
}
JUnit Annotations
1.@Before
2.@BeforeClass
3.@After
4.@AfterClass
5.@Test
6.@Ignore
7.@Test(timeout=500)
8.@Test(expected=IllegalArgumentException.class)
Ex:
@Test
public void testeConfiguracao(){
Assert.assertEquals(2, (1+1), 0);
}
JUnit Annotations
2. @Before Essa anotação é usada se você deseja executar alguma instrução, como pré-condições antes de cada caso de teste.
Essa anotação é usada se você deseja executar algumas instruções antes de todos os casos de teste, por exemplo a
3. @BeforeClass conexão de teste deve ser executada antes de todos os casos de teste.
Essa anotação pode ser usada se você desejar executar algumas instruções após cada caso de teste, por exemplo,
4. @After redefinir variáveis, excluir arquivos temporários, variáveis etc.
Essa anotação pode ser usada se você desejar executar algumas instruções após todos os casos de teste, por exemplo
5. @AfterClass Liberando recursos após a execução de todos os casos de teste.
Essa anotação pode ser usada se você desejar ignorar algumas instruções durante a execução do teste, por exemplo,
6. @Ignores desativando alguns casos de teste durante a execução do teste.
Essa anotação pode ser usada se você desejar definir algum tempo limite durante a execução do teste, por exemplo,
se você estiver trabalhando com algum SLA (contrato de nível de serviço) e os testes precisarem ser concluídos dentro
7. @Test(timeout=500) de um tempo especificado.
@Test(expected=IllegalArgume Essa anotação pode ser usada se você quiser manipular alguma exceção durante a execução do teste. Por exemplo, se
8. ntException.class) você deseja verificar se um método específico está lançando uma exceção especificada ou não.
Exemplo JUnit
Vamos criar uma classe Participante:
Com método:
Implemente o método:
@Test
TestSetNome() : usando o método assertEquals("", );
@Test
testSetIdade(): usando o método assertEquals("", );
Exemplo JUnit public class Participante {
@Test
public void testSetNome()
{
// Implementa método de teste unitário: Nome
p1.setNome("Mari");
assertEquals("Mari", p1.getNome());
}
@Test
public void testSetIdade()
{
// Implementa método de teste unitário: Idade
p1.setIdade(25);
assertEquals(39, p1.getIdade());
}
}
Junit na pratica
Crie uma classe Calculadora:
Crie os métodos
public Calculadora(double n1, double n2)referenciando
apenas os números da classe. ->this
}
Junit na pratica
Crie uma classe CalculadoraTest :
Crie os métodos
@test
testSomaDeveRetornar0QuandoPassamosZeroEZero()
assertEquals(valorEsperado, valorObtido, DELTA);
Crie os métodos
@test
testSomaDeveRetornar0QuandoPassamosZeroEZero()
assertEquals(valorEsperado, valorObtido, DELTA);
@Test
Resultado public void testSomaDeveRetornar0QuandoPassamosZeroEZero() {
double n1 = 0;
double n2 = 0;
@Test
public void testDivisao() {
double n1 = 10;
double n2 = 2;
}
Junit na pratica
Anotação @Before que pode ser usada em um método que será executada
antes de tudo, ou seja , se for para criar um objeto calculadora, podemos usar
esta anotação:
Calculadora2 calc2;
@Before
public void setUp() {
calc2 = new Calculadora2();
}
double n1,n2;
this.n1 = n1;
this.n2 = n2;
}
public double getSubtracao() {
return n1 - n2;
}
public void setSubtracao(double n1, double n2){
this.n1 = n1;
this.n2 = n2;
}
public double getMultiplicacao() {
return n1 * n2;
}
this.n1 = n1;
this.n2 = n2;
}
public double getDivisao() {
if (n2 == 0){
return -1;
}else
return n1 / n2;
}
public void setDivisao(double n1, double n2){
this.n1 = n1;
this.n2 = n2;
}
}
import static org.junit.Assert.*;
import org.junit.Before;
Calculadora2 calc2;
@Test
public void testeSoma(){
calc2.setSoma(2,2);
assertEquals(4, calc2.getSoma(),0);}
@Test
public void testeSubtracao(){
calc2.setSubtracao(2,2);
assertEquals(0, calc2.getSubtracao(),0);
}
@Test
public void testeMultiplicacao(){
calc2.setMultiplicacao(2,2);
assertEquals(4, calc2.getMultiplicacao(),0);
}
@Test
public void testeDivisao(){
calc2.setDivisao(2,0);// valor de retorno do metodo sera -1 , quando n2=0, aqui estamos forçando erro.
assertEquals(1, calc2.getDivisao(),0); }
}
LinkedHashSet - lista
Entendendo o SET
Estruturas de dado do tipo “Set” são conhecidas por aceitar
apenas valores únicos, ou seja, qualquer valor duplicado
inserido em um “Set” será automaticamente excluído, por isso
muito cuidado ao escolher uma List ou Set.
O HashSet é o mais rápido de todos, este usa HashTable e seus
elementos não são ordenados, a complexidade desta estrutura
é O(1), em outras palavras, não importa o quanto você
adicione, remova, retire, o tempo de execução sempre será o
mesmo.
import java.util.LinkedHashSet;
// Adding elements
exemploHashSet2.add(99);
exemploHashSet2.add(7);
exemploHashSet2.add(0);
exemploHashSet2.add(67);
exemploHashSet2.add(0);
exemploHashSet2.add(89);
exemploHashSet2.add(66);
System.out.println(exemploHashSet2);
System.out.println("tamanho: " + exemploHashSet2.size());
}
}
Exercício
Vamos criar um sistema que gera jogos da Mega Sena.
Podemos solicitar ao usuário que nos diga quantos jogos ele quer gerar e
quantos números ele quer nos jogos.
Dica :
import java.util.LinkedHashSet;
import java.util.Scanner;
import java.util.Random;
import java.util.Set;
}
Switch - Case
switch (variável) {
case valor1:
código se variável = valor1;
break;
case valorN:
código se variável = valorN;
break;
default:
código se variável diferente de todos os valores;
}
Exercício
NumberFormatException: indica que tentou-se a conversão de uma string para um formato numérico,
mas seu conteúdo não representava adequadamente um número para aquele formato. É uma
subclasse de IllegalArgumentException;
NullPointerException: indica que a aplicação tentou usar uma referência a um objeto que não foi ainda
definida;
ClassNotFoundException: indica que a máquina virtual Java tentou carregar uma classe mas não foi
possível encontrá-la durante a execução da aplicação.
Try/Catch
try
{
//trecho de código que pode vir a lançar uma exceção
}
catch(tipo_exceçao_1 e)
{
//ação a ser tomada
}
catch(tipo_exceçao_2 e)
{
//ação a ser tomada
}
catch(tipo_exceçao_n e)
{
//ação a ser tomada
}
Try/Catch / Finally
Vamos construir um sistema que ira imprimir uma frase nula, para cair na
exceção;
Imprimiremos o erro e iremos atribuir um valor a esta frase, forçando
imprimir o novo valor no o bloco finally e transformando a frase em
upercase (transformar a frase em letra maiúscula).
public class AumentaFrase {
public static void main(String args[])
{
String frase = null;
String novaFrase = null;
O frase inicial está nula, para solucionar tal o problema, foi lhe
try
atribuito um valor default.
{ java.lang.NullPointerException
novaFrase = frase.toUpperCase(); at AumentaFrase.main(AumentaFrase.java:8)
} Frase antiga: Nova Frase , pode ser qualquer coisa
catch(NullPointerException e) Frase nova: NOVA FRASE , PODE SER QUALQUER COISA
{
import java.util.Date;
import java.util.Calendar;
import java.util.Calendar;
DateFormat f = DateFormat.getDateInstance(DateFormat.FULL);
System.out.println("Data brasileira: "+f.format(data));
f = DateFormat.getDateInstance(DateFormat.LONG);
System.out.println("Data sem o dia descrito: "+f.format(data));
f = DateFormat.getDateInstance(DateFormat.MEDIUM);
System.out.println("Data resumida 1: "+f.format(data));
f = DateFormat.getDateInstance(DateFormat.SHORT);
System.out.println("Data resumida 2: "+f.format(data));
}
}
SimpleDateFormat
Date dt = df.parse(dataRecebida);
System.out.println(df.format(dt));
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
Java – JDBC
Para que uma aplicação Java tenha acesso a um banco de dados relacional os seguintes passos devem ser
atendidos:
Principais Falhas:
Para a aplicação Java se comunicar com um banco de dados e acessar os seus dados, uma conexão com
o BD deve ser estabelecida.
– Criação da conexão com o BD A partir da conexão é possível interagir com o BD, fazendo consultas,
atualização e busca às meta informações da base e das tabelas.
O que é banco de dados relacional?
Um banco de dados é uma aplicação que lhe permite armazenar e obter de volta dados
com eficiência.
O que o torna relacional é a maneira como os dados são armazenados e organizados no
banco de dados.
Normalização de dados:
Normalização de dados é o processo de organização de campos e tabelas em um banco de dados
relacional para minimizar a redundância e a dependência. Este processo comumente envolve a divisão de
tabelas grandes em pequenas (e menos redundantes) e define relacionamentos entre elas.
Banco de dados relacional
Objeto de Dados ou Entidade
É a representação genérica de um componente do mundo real, sobre o qual desejamos armazenar informações,
uma representação de quase todas as informações com varias propriedades que devem ser compreendidas
pelo sistema de informação, qualquer coisa que produza ou consuma informações.
Entidade são coisas significativas sobre a qual a organização deseja guarda, ou seja, (coletar, manter e etc)
dados podendo ser algo tangível ou intangível.
Relacionamento é a relação existente entre entidades, isto é a ligação lógica entre duas entidades que
representa uma regra ou restrição de negócio, possibilitando entender como uma entidade se comporta
em relação às demais, qual o seu grau de dependência de outras entidades e qual a associação de
dados existentes entre elas.
•N : várias vezes
•1 : apenas uma vez
•0: não acontece
Banco de dados relacional
Relacionamento:
CREATE DATABASE
Com este comando você ira criar uma base dados vazia:
USE
Possibilita você selecionar qual base de dados deseja trabalhar
USE nome_da_Base_dados;
CREATE TABLE
Exemplo:
CREATE TABLE cliente (nome VARCHAR (255), codigo INT (11));
ALTER TABLE
Comando utilizado para alterar uma tabela já existente, por exemplo, para incluir ou retirar
uma coluna
ALTER TABLE cliente ADD produto VARCHAR (255) AFTER codigo;
Banco de dados relacional
Comandos Básicos:
SELECT:
O comando select é bastante simples e, serve para você, capturar ou selecionar os dados da tabela.
Sua sintaxe pode ser utilizado de algumas formas, como:
INSERT
O comando insert é bastante simples de ser utilizado.
Exemplo:
INSERT INTO clientes (nome, email, empresa)
VALUES (‘mariana’, ‘mariana@dominio.com’, ShareRH’);
* É necessário seguir a ordem para que os dados sejam inseridos de forma correta.
Banco de dados relacional
UPDATE
O comando update possui a sintaxe muito similar ao do INSERT, mas é utilizada para atualizar registros do banco de dados.
Exemplo:
UPDATE clientes SET nome = ‘Mariana', email = ‘mariana@shareRH.com.br’;
Para que isso não ocorra, sera necessário incluir o comando WHERE , por exemplo:
UPDATE clientes SET nome = ‘Mariana', email = ‘mariana@shareRH.com.br’ WHERE id = 1;
DELETE
Este comando é usado para deletar registros da sua tabela, porem, ele NUNCA, deve
Ser utilizado sem incluir a clausula WHERE.
Caso contrário, irá deletar todos os registros da tabela.
id INT- AUTO_INCREMENT - PK
nome VARCHAR(60)
Data_Nascimento DATE
Telefone CHAR(8)
Resultado exemplo:
https://dev.mysql.com/downloads/connector/
System.out.println("Conectado!");
conexao.close();
}
}
Parâmetos a serem preencidos no getConnection: jdbc:mysql://localhost/nome_banco
1. Devemos substituir “localhost” para o IP ou nome do servidor
2. Devemos substituir “nome_banco” pelo nome do banco de dados
3. Devemos substituir “usuario” pelo usuário de acesso ao banco de dados
4. Devemos substituir “senha” pela senha do usuário de acesso ao banco de dados
Statement statement = connection.createStatement();
while (set.next()) {
System.out.printf("%d: %15s - %10s\n",
set.getInt("id"),
set.getString("nome"),
set.getString("email"));
}
} catch (Exception e) {
System.out.println("Erro: " + e.getMessage());
import java.sql.Statement;
JDBC – teste
public class Main {
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
"jdbc:sqlserver://localhost:3306;databaseName=primeiraappjdbc;user=root;pass
word=;");
Statement statement = connection.createStatement();
while (set.next()) {
System.out.printf("%d: %15s - %10s\n",
set.getInt("id"),
set.getString("nome"),
set.getString("email"));
}
} catch (Exception e) {
System.out.println("Erro: " + e.getMessage());
}
}
Metodologia de
trabalho
Mundo VUCA
É mais prudente ter agilidade na capacidade de resposta às demandas do
ambiente.
Vulnerável
o volume das mudanças e a agilidade com a qual elas têm ocorrido tornam muito difícil prever cenários
Uincerto (uncertain)
Mudanças disruptivas pressupõem novos paradigmas
Complexo
a conectividade e a interdependência são fatores que ampliam a complexidade
Ambíguo
existem muitas formas de interpretar e analisar os contextos
Tradicional X Ágil
:: etapas mais rígidas e :: etapas mais flexíveis
controladas. :: funcionalidades mínimas
:: escopo fixo antes da entrega final
:: entrega única a longo :: entregas parciais
prazo :: fluxo de melhoria contínua
:: identificação tardia de :: controle de desperdício
melhoria do sistema /
processo :: Controle de WIP
:: muitas tarefas executadas
ao mesmo tempo
Tradicional X Ágil
Melhoria Contínua
Desenvolvimento Ágil
SPRINT | de 2 ou 3 semanas |
:: DoR e DoD
:: Daily 15min - falar de itens "bloques" e próximos passos
Principais :: Refinement - antes de cada sprint ou ciclo de kanban
Ritos :: Planning - para entender o tempo de desenvolvimento do
ciclo, qual “escopo” o time estará comprometido para entrega
:: Review - apresentação da funcionalidade para área usuária.
:: Retrospectiva - pontos positivos e pontos a melhorar de
cada ciclo.
:: Métrica de Burndown da Sprint
https://www.linkedin.com/in/mariana-mian56b80210/
mariana_mian@Hotmail.com
19971707001
Obrigada ;)
https://www.linkedin.com/in/mariana-mian56b80210/
mariana_mian@Hotmail.com
19971707001