1) O documento descreve a linguagem de programação Java, sua história e conceitos principais.
2) Java foi originalmente criado para dispositivos embarcados e lançado publicamente em 1996.
3) A máquina virtual Java (JVM) executa os bytecodes gerados a partir do código Java, tornando a linguagem independente de plataforma.
3. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
• Originalmente criado para dispositivos embarcados.
• Iniciou a partir Projeto Green em Junho de 1991 por James Gosling, Mike
Sheridan and Patrick Naughton.
• Denominada inicialmente de Oak.
• Desenvolvido por James Gosling na Sun Microsystems em 1995.
• Em 1996 foi lançado a primeira versão do JDK 1.0.
• Premissas da Linguagem:
• Sem ponteiros (todos ficamos felizes).
• Independente de plataforma.
• Recurso de garbage collector.
• Alta confiabilidade.
• Bytecodes.
Histórico
Origens:
A TECNOLOGIA JAVA
4. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
A TECNOLOGIA JAVA
Fonte: http://viralpatel.net/blogs/java-virtual-machine-an-inside-story/
5. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
Tem como principal funcionalidade executar os bytecodes gerado a partir dos
códigos Java, tornando a linguagem independente de plataforma. Além disso a
JVM possui outras responsabilidades:
• Gerenciamento de memória.
• Controle de threads.
• Comunicação com o Sistema Operacional e acessar métodos nativos.
• Pode executar outras linguagens além do Java como Groovy, Jython e JRuby.
JVM
Java Virtual Machine:
A TECNOLOGIA JAVA
6. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
A TECNOLOGIA JAVA
Java Platform Standard Edition 7
Fonte: http://docs.oracle.com/javase/7/docs/index.html
8. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
ECLIPSE
• Desenvolvido inicialmente pela IBM.
• Foi doado como software open-source.
• Totalmente gratuita.
• Ferramenta de desenvolvimento Java.
• Também utilizada em outras linguagens de programação.
• Baseada em Perspectivas.
• Efetua a compilação, depuração e execução de um programa em Java.
• Pode ser baixado do site:
• https://eclipse.org/
Eclipse
IDE:
Vamos conhecer alguns componentes do Eclipse.
9. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
ECLIPSE
Eclipse
Selecionando uma workspace:
Local onde iremos colocar os nossos códigos fontes e projetos.
Diretório dos fontes
21. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
• Funcionamento de um programa Java.
• Variáveis.
• Condicionais.
• Laços.
• Vetores.
• String.
• Classes.
• Interfaces.
Java
O que vamos estudar:
A TECNOLOGIA JAVA
Vamos começar !!!
23. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
package edu.anhanguera.poo.aula03;
public class Exemplo01 {
public static void main(String[] args) {
System.out.println("Olá Pessoal. Tudo Bem?");
}
}
24. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
package edu.anhanguera.poo.aula03;
public class Exemplo02 {
public static void main(String[] args) {
// É uma forma de criar comentários em linha.
System.out.println("Imprimindo na saida do console");
System.err.println("Imprimindo na saida de erro do console");
System.out.print("Está forma não pula linha");
System.err.format("Saida %s formatada", new String("é"));
System.out.format("Esta %s também é formatada", new String("saida"));
// O método abaixo possui o conceito de varargs
System.out.format("%s formatada %s vários %s",
new String("Saida"),
new String("com"),
new String("paramêtros"));
}
}
25. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
package edu.anhanguera.poo.aula03;
public class Exemplo03 {
public static void main(String[] args) {
int varInt;
double varDouble;
float varFloat;
long varLong;
boolean varBoolean;
byte varByte;
short varShort;
varInt = 2015;
varDouble = 768.35;
varFloat = 3.14159265f;
varLong = 250000000l;
varBoolean = true;
varByte = 8;
varShort = 3;
System.out.println("int: " + varInt);
System.out.println("double: " + varDouble);
System.out.println("float: " + varFloat);
System.out.println("long: " + varLong);
System.out.println("boolean: " + varBoolean);
System.out.println("byte: " + varByte);
System.out.println("short: " + varShort);
}
}
26. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
package edu.anhanguera.poo.aula03;
public class Exemplo04 {
public static void main(String[] args) {
double media = 0;
double notaB1 = 5;
double notaB2 = 6;
media = (notaB1 * 0.4) + (notaB2 * 0.6);
if (media >= 6) {
System.out.println("Aprovado");
} else {
System.out.println("Reprovado");
}
System.out.println(media >= 6 ? "Aprovado" : "Reprovado");
}
}
27. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
package edu.anhanguera.poo.aula03;
public class Exemplo05 {
public static void main(String[] args) {
boolean ligar = true;
if (ligar)
System.out.println("Ligado");
if (!ligar)
System.out.println("Desligado");
float soma;
float operador1 = 788.00f;
float operador2 = 3.58f;
soma = operador1 + operador2;
if (soma == 791.58f) {
System.out.println("Resultado da soma é " + soma);
}
}
}
28. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
package edu.anhanguera.poo.aula03;
public class Exemplo06 {
public static void main(String[] args) {
String nomeGuerreiro = "Blackwall";
String nomeMago = new String("Solas");
System.out.println("Guerreiro:" + nomeGuerreiro);
System.out.println("Mago:" + nomeMago);
System.out.println("Tamanho:" + nomeGuerreiro.length());
System.out.println("Tamanho:" + nomeMago.length());
if (!nomeGuerreiro.equals(nomeMago)) {
System.out.println("Os nomes são diferentes.");
} else {
System.out.println("Os nomes são iguais.");
}
nomeGuerreiro = nomeGuerreiro.toUpperCase();
nomeMago = nomeMago.toLowerCase();
System.out.println("Guerreiro:" + nomeGuerreiro);
System.out.println("Mago:" + nomeMago);
}
}
29. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
package edu.anhanguera.poo.aula03;
public class Exemplo07 {
public static void main(String[] args) {
char linguagem[] = { 'J', 'a', 'v', 'a' };
String java = "";
for (int i=0;i<=linguagem.length-1;i++) {
java += linguagem[i];
}
System.out.println("Linguagem " + java);
int notas[] = new int[2];
notas[0] = 6;
notas[1] = 7;
int i=0;
while (i <= notas.length-1) {
System.out.println("Nota " + (i + 1) + ":" + notas[i]);
i++;
}
boolean ligado = true;
do {
System.out.println("Ligado");
ligado = false;
} while (ligado);
}
}
30. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
package edu.anhanguera.poo.aula03;
public class Exemplo08 {
public static void main(String[] args) {
Integer varInt = 2015;
Double varDouble = 768.35;
Float varFloat = 3.14159265f;
Long varLong = 250000000l;
Boolean varBoolean = true;
Byte varByte = 8;
Short varShort = 3;
System.out.println("int: " + varInt);
System.out.println("double: " + varDouble);
System.out.println("float: " + varFloat);
System.out.println("long: " + varLong);
System.out.println("boolean: " + varBoolean);
System.out.println("byte: " + varByte);
System.out.println("short: " + varShort);
String valor = "100";
varInt = Integer.parseInt(valor);
System.out.println("Valor convertido:" + valor);
}
}
31. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
package edu.anhanguera.poo.aula03;
import java.util.Scanner;
public class Exemplo09 {
public static void main(String[] args) {
double notaB1;
double notaB2;
double media;
Scanner scanner = new Scanner(System.in);
System.out.println("Digite a nota da B1:");
notaB1 = scanner.nextDouble();
System.out.println("Digite a média:");
media = scanner.nextDouble();
notaB2 = (media - (notaB1*0.4)) / 0.6;
System.out.println("Nota necessária para aprovação:" + notaB2);
scanner.close();
}
}
32. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
CLASSES, OBJETOS, ATRIBUTOS E MÉTODOS
CLASSES, OBJETOS, ATRIBUTOS E MÉTODOS
33. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
CLASSES, OBJETOS, ATRIBUTOS E MÉTODOS
Conceitos
Detalhes:
• Classe: é um tipo que possui uma representação. Contém atributos e
métodos.
• Objeto: é a instância de uma classe e a concretização real e funcional de
suas funcionalidades.
• Instância: alocando um objeto na memória.
34. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
CLASSES, OBJETOS, ATRIBUTOS E MÉTODOS
Conceitos
Exemplos:
• Herói seria uma classe, pois é um tipo.
• Capitão América é o objeto pois ele é um Herói.
• Instância é o próprio objeto Capitão América.
• Pessoa também é um tipo.
• Steve Rogers é o objeto pois ele é uma Pessoa.
• Instância é o próprio objeto Steve Rogers.
35. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
package br.com.aula.java;
public class Pessoa {
public Pessoa() {
}
}
Classe pública Pessoa
Construtor da Classe
36. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
package br.com.aula.java;
public class ExemploPessoa {
public static void main(String[] args) {
Pessoa pessoa = new Pessoa();
System.out.println(pessoa);
}
} Objeto pessoa
Instanciando o objeto pessoa
37. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
CLASSES, OBJETOS, ATRIBUTOS E MÉTODOS
Conceitos
Detalhes:
• Toda classe possui um construtor padrão.
• Construtor padrão tem como principal objetivo, colocar o objeto na
memória e criar uma instância para ser utilizada.
• O construtor padrão é formado pelo nome da classe, sem um retorno e sem
parâmetros.
• Na classe pode existir vários construtores com parâmetros diferentes.
• Para instanciar uma classe utilizamos o operador new.
38. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
CLASSES, OBJETOS, ATRIBUTOS E MÉTODOS
Atributos
Detalhes:
• Linda !!!
• Maravilhosa !!!
• Jedi !!!
• Nome
• Idade
• Peso
• Altura
Atributos normalmente são
características
39. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
CLASSES, OBJETOS, ATRIBUTOS E MÉTODOS
Atributos
Detalhes:
• Lindo !!!
• Maravilhoso !!!
• Batman !!!
• Nome
• Idade
• Peso
• Altura
Atributos normalmente são
características
40. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
package br.com.aula.java;
public class Pessoa {
private String nome;
private int idade;
private double altura;
private double peso;
public Pessoa() {
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public int getIdade() {
return idade;
}
public void setIdade(int idade) {
this.idade = idade;
}
public double getAltura() {
return altura;
}
public void setAltura(double altura)
{
this.altura = altura;
}
public double getPeso() {
return peso;
}
public void setPeso(double peso) {
this.peso = peso;
}
}
41. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
CLASSES, OBJETOS, ATRIBUTOS E MÉTODOS
Atributos
Detalhes:
• Atributos são variáveis com escopo private criadas dentro de uma classe.
• Normalmente, utilizamos métodos para obter um valor de uma variável.
• Por enquanto métodos são semelhantes a funções em comparação com
outras linguagens de programação.
• Métodos de atributos são conhecidos como getter e setter.
• Getter obtém um valor de um atributo.
• Setter atribui um valor para um atributo.
42. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
package br.com.aula.java;
public class ExemploPessoa {
public static void main(String[] args) {
Pessoa pessoa = new Pessoa();
pessoa.setNome("Daisy Jazz Isobel Ridley");
pessoa.setIdade(24);
pessoa.setAltura(1.75);
pessoa.setPeso(60.0);
System.out.println(pessoa.getNome());
System.out.println(pessoa.getIdade());
System.out.println(pessoa.getAltura());
System.out.println(pessoa.getPeso());
}
}
43. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
CLASSES, OBJETOS, ATRIBUTOS E MÉTODOS
Métodos
Detalhes:
• É uma ação que um objeto pode executar.
• Um método possui um escopo, retorno, nome e parâmetros.
• Semelhantes a funções em outras linguagens de programação.
• Normalmente são verbos. Por exemplo: andar, correr, sacar, comprar,
debitarConta, depositarConta.
44. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
package br.com.aula.java;
public class Pessoa {
...
public int andar() {
passos++;
return passos;
}
}
45. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
package br.com.aula.java;
public class ExemploPessoa {
public static void main(String[] args) {
Pessoa pessoa = new Pessoa();
pessoa.setNome("Daisy Jazz Isobel Ridley");
pessoa.setIdade(24);
pessoa.setAltura(1.75);
pessoa.setPeso(60.0);
System.out.println(pessoa.getNome());
System.out.println(pessoa.getIdade());
System.out.println(pessoa.getAltura());
System.out.println(pessoa.getPeso());
System.out.println(pessoa.andar());
}
}
47. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
HERANÇA
Herança
Detalhes:
• Um dos benefícios de uma linguagem orientada a objetos é o
reaproveitamento constante de código fonte.
• Classes são desenvolvidas para serem utilizadas em qualquer local da
aplicação e em outros projetos.
• Algumas classes possuem caracterização diferentes uma das outras, mas
podem possuir alguns métodos e atributos comuns.
• Por exemplo: todas as Pessoas, possuem um nome, idade, peso e altura,
mas podem existir tipo diferentes como Funcionário, Aluno e Professor.
• Essas três classes compartilham os mesmo atributos e métodos da classe
Pessoa.
Herança é herdar todos os atributos e métodos de uma classe.
48. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
package br.com.aula.java;
public class Funcionario extends Pessoa {
private double salario;
private String cargo;
public Funcionario() {
}
public double getSalario() {
return salario;
}
public void setSalario(double salario) {
this.salario = salario;
}
public String getCargo() {
return cargo;
}
public void setCargo(String cargo) {
this.cargo = cargo;
}
}
49. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
HERANÇA
Herança
Detalhes:
• A palavra reservada extends seguida do nome da classe define uma
herança.
• Uma classe Java herda somente de uma outra classe.
• Não existe herança múltipla em Java.
50. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
package br.com.aula.java;
public class ExemploFuncionario {
public static void main(String[] args) {
Funcionario funcionario = new Funcionario();
funcionario.setNome("Daisy Jazz Isobel Ridley");
funcionario.setIdade(24);
funcionario.setAltura(1.75);
funcionario.setPeso(60.0);
funcionario.setSalario(100000.00);
System.out.println(funcionario.getNome());
System.out.println(funcionario.getIdade());
System.out.println(funcionario.getAltura());
System.out.println(funcionario.getPeso());
System.out.println(funcionario.andar());
}
}
51. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
HERANÇA
Herança
Detalhes:
• Isso funciona?
Pessoa funcionario = new Funcionario();
Sim !!! A classe Funcionario é do tipo Pessoa.
52. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
HERANÇA
Herança
Detalhes:
• Em nossos exemplos, a classe Funcionario é filha da classe Pessoa.
• Pessoa é a classe pai de Funcionario.
• Podemos sobrescrever métodos da classe pai na classe filha para alterar seu
comportamento.
• Neste exemplo vamos alterar o comportamento do método falar.
53. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
package br.com.aula.java;
public class Pessoa {
...
public void falar(String frase) {
System.out.println(frase);
}
...
}
54. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
package br.com.aula.java;
public class Funcionario extends Pessoa {
...
@Override
public void falar(String frase) {
System.out.println("Funcionário:" + frase);
}
}
55. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
package br.com.aula.java;
public class ExemploSobrescrever {
public static void main(String[] args) {
Funcionario funcionario = new Funcionario();
funcionario.falar("Eu trabalho na empresa ABX");
Pessoa pessoa = new Funcionario();
pessoa.falar("Eu trabalho na empresa TXBUI");
Pessoa pessoa2 = new Pessoa();
pessoa2.falar("Eu sou uma pessoa");
}
}
58. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
INTERFACES
Interfaces
Detalhes:
• Interfaces são semelhantes a classes, mas seus métodos não possuem
nenhum tipo de implementação.
• Os métodos são implementados obrigatoriamente na classe filha.
• Podemos implementar mais de uma interface em uma classe.
• Normalmente as interfaces são utilizadas para efetuar dinamismo em uma
aplicação.
59. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
package br.com.aula.java;
public interface Humano {
String getNome();
void setNome(String nome);
int getIdade();
void setIdade(int idade);
double getAltura();
void setAltura(double altura);
double getPeso();
void setPeso(double peso);
void falar(String frase);
int andar();
}
60. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
package br.com.aula.java;
public class Pessoa implements Humano {
...
}
61. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
Interfaces
Detalhes:
• Para implementar uma interface utilizamos a palavra reservada implements
seguida do nome da interface.
• Podemos implementar mais de uma interface separados por virgula.
INTERFACES
62. LINGUAGEM DE PROGRAMAÇÃO JAVA – Prof. Thomás da Costa
package br.com.aula.java;
public class ExemploInterface {
public static void main(String[] args) {
Humano pessoa = new Pessoa();
pessoa.falar("Sou uma pessoa");
Humano funcionario = new Funcionario();
funcionario.falar("Sou um funcionário feliz");
}
}