SlideShare ist ein Scribd-Unternehmen logo
1 von 58
Downloaden Sie, um offline zu lesen
JAVA
APRENDENDO A LINGUAGEM
Instituição: SENAC
Módulo : Aplicações para WEB – Java
Carga Horária: 60 horas
Instrutor: Ricardo José Menezes Maia
CONCEITOS DE PROGRAMAÇÃO ORIENTADA A OBJETOS
Para programarmos em uma linguagem orientada a objetos é necessário conhecer os
seguintes conceitos:
• Objeto
• Mensagem
• Classe
• Herança
Logo após será necessário traduzir os conceitos acima em código java
OBJETO
Possui comportamento e características/estados
cachorro – característica/estado(cor, nome, raça, fome)
– comportamento(latir, balançar rabo)
Estados e características atributos.
Comportamento métodos.
Um objeto que contenha características e comportamento específico é chamado de instância.
Ex: vira-lata é uma instância de cachorro.
// Ponto.java
class Ponto {
Ponto(int x, int y) {
System.out.println("Novo objeto ponto criado ("+x+", "+y+")");
}
public static void main(String s[]) {
Ponto p = new Ponto(2, 3);
Ponto p1 = new Ponto(3, 4);
}
}
ATRIBUTO
// Ponto.java
class Ponto {
int x;
int y;
Ponto(int x, int y) {
this.x = x;
this.x = x;
System.out.println("Novo objeto ponto criado ("+this.x+", "+this.y+")");
}
public static void main(String s[]) {
Ponto p = new Ponto(2, 3);
Ponto p1 = new Ponto(3, 4);
}
}
MÉTODO
class metodo {
int x, y;
metodo(int x, int y) {
this.x = x;
this.y = y;
System.out.println("Novo objeto metodo criado ("+this.x+", "+this.y+")");
}
void Move(int deslocamento) {
this.x = this.x + deslocamento; // this.x += deslocamento
}
void ExibeCoordenada() {
System.out.println("Coordenada ("+this.x+", "+this.y+")");
}
public static void main(String s[]) {
metodo p = new metodo(2, 3);
p.Move(20);
p.ExibeCoordenada();
}
}
MÉTODO CONSTRUTOR
class metodo {
int x, y;
metodo(int x, int y) {
this.x = x;
this.x = x;
System.out.println("Novo objeto metodo criado ("+this.x+", "+this.y+")");
}
void Move(int deslocamento) {
this.x = this.x + deslocamento; // this.x += deslocamento
}
void ExibeCoordenada() {
System.out.println("Coordenada ("+this.x+", "+this.y+")");
}
public static void main(String s[]) {
metodo p = new metodo(2, 3);
p.Move(20);
p.ExibeCoordenada();
}
}
MENSAGEM
Objetos comunicam-se através de mensagens.
// Ponto.java
class Ponto {
int x;
int y;
Ponto(int x, int y) {
this.x = x;
this.y = y;
}
void desloca_x(int x) {
this.x = this.x+x;
}
}
// Desenha.java
public class Desenha {
public static void main(String s[]) {
Ponto p = new Ponto(2, 3);
p.desloca_x(2);
}
}
SOBRECARGA
É permitido incluir numa classe métodos que possuem o mesmo nome e o mesmo tipo de
retorno, mas que diferem pelo número e/ou pelos tipos dos argumentos.
// Ponto.java – sobrecarga de construtor
class Ponto {
int x, y;
double a, b;
Ponto(int x, int y) {
this.x = x;
this.y = y;
System.out.println(“Construtor int”);
}
Ponto(double x, double y) {
this.a = x;
this.b = y;
System.out.println(“Construtor double”);
}
public static void main(String s[]) {
Ponto p = new Ponto(2,3);
Ponto p1 = new Ponto(2.4,5.9);
}
}
CLASSE
Define atributos e métodos comuns a todos objetos de um certo tipo.
// Ponto.java
class Ponto {
Ponto(int x, int y) {
System.out.println("Novo objeto ponto criado ("+x+", "+y+")");
}
public static void main(String s[]) {
Ponto p = new Ponto(2, 3);
Ponto p1 = new Ponto(3, 4);
}
}
HERANÇA
superclasse
subclasse subclasse
Conjunto das propriedades e especificações assim transmitidas de uma classe para
outra(s)
// filho.java
public class pai {
}
class filho extends pai {
}
PACOTE
Coleção de tipos relacionados.
|___grafico
|____ponto
|____linha
Criar pasta grafico
// ponto.java
package grafico;
public class ponto {
}
// linha.java
package grafico;
public class linha {
}
// Desenhar.java
import grafico.*; // import grafico.ponto;
public class Desenhar {
ponto p;
public static void main(String s[]) {
}
}
Exercício:
Colocar ponto dentro do pacote game, o qual deverá ser criado
NÍVEIS DE ACESSO
SIMSIMSIMSIMpublic
NÃOSIMSIMSIMprotected
NÃONÃOSIMSIMNão definido
NÃONÃONÃOSIMprivate
TodosSubclassePacoteClasse
CONTROLANDO ACESSO A MEMBROS DE UMA CLASSE
Somente a classe tem acesso.
PRIVATE
// Ponto.java
class Ponto {
private int x, y;
Ponto (int x, int y) {
this.x=x;
this.y=y;
}
private void desloca_x(int desloc) {
x = x + desloc;
}
}
// Desenho.java
class Desenho {
public static void main(String args[]) {
Ponto p = new Ponto(2,3);
p.x=3;
p.desloca_x(4);
}
}
Desenho.java:5: x has private access in Ponto
p.x=3;
^
Desenho.java:6: desloca_x(int) has private access in Ponto
p.desloca_x(4);
^
2 errors
ERRO
javac Desenho.java
PRIVATE
// Ponto.java
class Ponto {
private int x, y;
Ponto (int x, int y) {
this.x=x;
this.y=y;
}
private void desloca_x(int desloc) {
x = x + desloc;
}
}
// Desenho.java
class Desenho extends Ponto {
Desenho(int x, int y) {
super(x,y);
}
public static void main(String args[]) {
Desenho des = new Desenho(2,3);
System.out.println(des.x);
}
}
Desenho.java:19: x has private access in Ponto
System.out.println(des.x);
^
1 error
javac Desenho.java
ERRO
Exercício:
Nos dois programas anteriores mudar de private para protected e verificar o que
ocorre.
PROTECTED
package grafico;
// Ponto.java
class Ponto {
protected int x, y;
Ponto (int x, int y) {
this.x=x;
this.y=y;
}
protected void desloca_x(int desloc) {
x = x + desloc;
}
}
import grafico.*;
// Desenho.java
class Desenho {
public static void main(String args[]) {
Ponto p = new Ponto(2,3);
System.out.println(p.x);
}
}
Somente a classe e quem herda tem acesso.
Criar a pasta grafico
Copiar Ponto.java para a pasta grafico
Desenho.java:31: grafico.Ponto is not public in grafico; cannot be accessed from
outside package
Ponto p = new Ponto(2,3);
^
Desenho.java:31: grafico.Ponto is not public in grafico; cannot be accessed from
outside package
Ponto p = new Ponto(2,3);
^
2 errors
javac Desenho.java
ERRO
Exercício:
Fazer com que Desenho herde Ponto e verificar o que será necessário ou não ajustar
para que Desenho seja compilado corretamente.
INTERFACE
Assim como a classe uma interface define métodos, sendo que os métodos nunca são
implementados na interface.
Classes que implementam interface devem implementar os métodos definidos pela interface.
Uma classe pode implementar múltiplas interface.
interface cachorro {
public void latir();
}
public class vira_lata implements cachorro {
public void latir() {
}
public static void main(String s[]) {
vira_lata dog = new vira_lata();
}
}
ABSTRACT
A classe representa um modelo que será instanciado.
abstract class cachorro {
public void latir(){
}
abstract void comer();
}
public class vira_lata extends cachorro {
public void latir() {
}
void comer() {
}
public static void main(String s[]) {
vira_lata dog = new vira_lata();
}
}
// nome do arquivo: polimorf.java
interface Gritador {
void grita();
}
class Humano implements Gritador {
public void grita() {
System.out.println("AAAAAAHHHHH");
}
}
class Macaco implements Gritador {
public void grita() {
System.out.println("IIIIIIIIHHHHHHHI");
}
}
public class polimorf {
void facaAlgo(String especie) {
Gritador b;
if(especie.compareTo("humano")==0) {
b = new Humano();
} else {
b = new Macaco();
}
b.grita(); // chamada polimórfica
}
public static void main(String argumento[]) {
polimorf p = new polimorf();
p.facaAlgo(argumento[0]);
}
}
POLIMORFISMO
// nome do arquivo: polimorf.java
interface Gritador {
void grita();
}
class Humano implements Gritador {
public void grita() {
System.out.println("AAAAAAHHHHH");
}
}
class Macaco implements Gritador {
public void grita() {
System.out.println("IIIIIIIIHHHHHHHI");
}
}
public class polimorf {
void facaAlgo(String especie) {
Gritador b;
if(especie.compareTo("humano")==0) {
b = new Humano();
} else {
b = new Macaco();
}
b.grita(); // chamada polimórfica
}
public static void main(String argumento[]) {
polimorf p = new polimorf();
p.facaAlgo(argumento[0]);
}
}
POLIMORFISMO - INTERFACE
// nome do arquivo: polimorf1.java
class Gritador {
void grita() {
System.out.println("generico");
}
}
class Humano extends Gritador {
public void grita() {
System.out.println("AAAAAAHH");
}
}
class Macaco extends Gritador {
public void grita() {
System.out.println("IIIIIIIIHHHHH");
}
}
public class polimorf1 {
void facaAlgo(String especie) {
Gritador b;
if(especie.compareTo("humano")==0) {
b = new Humano();
} else {
b = new Macaco();
}
b.grita(); // chamada polimórfica
}
public static void main(String argumento[]) {
polimorf1 p = new polimorf1();
p.facaAlgo(argumento[0]);
}
}
POLIMORFISMO - HERANÇA
VARIÁVEIS
Nome
Começa com letras
Pode ter número ou _
Scopo (tempo de vida)
// Scopo.java
class Scopo.java {
public static void main(String s[]) {
int a=34;
if (a!=0) {
int b = 17;
}
System.out.println(“Valor b “+ b);
}
}
true ou falseA valor boleano (true or false)boolean
16-bit caracter UnicodeUm simples characterchar
Outros Tipos
64-bit IEEE 754
Dupla precisão de ponto
flutuante
double
32-bit IEEE 754
Simples precisão de ponto
flutuante
float
Números Reais
64-bit complemento de 2Inteiro longolong
32-bit complemento de 2Inteiroint
16-bit complemento de 2Inteiro curtoshort
8-bit complemento de 2Bytebyte
Inteiros
Tamanho/FormatoDescrição
Palavra
Reservada
Tipos de Dados Primitivos
Sinal (1) | Expoente (8) | Mantissa (23)
Bits
IEEE 754
Para número negativo usar complemento de 2
NÚMERO EM PONTO FLUTUANTE
//inteiros
byte largestByte = Byte.MAX_VALUE;
short largestShort = Short.MAX_VALUE;
int largestInteger = Integer.MAX_VALUE;
long largestLong = Long.MAX_VALUE;
//números reais
float largestFloat = Float.MAX_VALUE;
double largestDouble = Double.MAX_VALUE;
//outros tipos primitivos
char aChar = 'S';
boolean aBoolean = true;
INICIALIZAÇÃO
// Constante.java
class Constante {
final int aFinalVar = 0;
public static void main(String s[]) {
Constante c = new Constante();
c.aFinalVar=23;
System.out.println(c.aFinalVar);
}
}
CONSTANTE
OPERADORES
op-- --op--
op++ ++op++
op1 % op2%
op1 / op2/
op1 * op2*
op1 - op2-
op1 + op2+
Uso
Operador
Aritmético
public class AritimeticaDemo {
public static void main(String[] args) {
//poucos numeros
int i = 37;
int j = 42;
double x = 27.475;
double y = 7.22;
//adição
System.out.println("Adição...");
System.out.println(" i + j = " + (i + j));
//subtração
System.out.println("Subtração...");
System.out.println(" i - j = " + (i - j));
//Multiplicação
System.out.println(" i * j = " + (i * j));
//Divisão
System.out.println(" i / j = " + (i / j));
//Resto de divisão
System.out.println(" i % j = " + (i % j));
//misturando tipos
System.out.println(" i * x = " + (i * x));
}
}
// Operador.java
class Operador {
public static void main(String s[]) {
int i=5;
System.out.println(“(i++/2)” + (i++/2));
System.out.println(i);
}
}
Mudar para ++i, --i, i-- e verificar os resultados
OPERADOR
op1 != op2!=
op1 == op2==
op1 <= op2<=
op1 < op2<
op1 >= op2>=
op1 > op2>
Uso
Operador
Condicional
public class RelacionalDemo {
public static void main(String[] args) {
int i = 37;
int j = 42;
int k = 42;
//maior
System.out.println(" i > j = " + (i > j)); //false
//maior igual
System.out.println(" i >= j = " + (i >= j)); //false
//menor
System.out.println(" i < j = " + (i < j)); //true
//menor igual
System.out.println(" i <= j = " + (i <= j)); //true
//igual
System.out.println(" i == j = " + (i == j)); //false
//diferente
System.out.println(" i != j = " + (i != j)); //true
}
}
op1 ^ op2Bit^
op1 | op2Bit|
op1 & op2Bit&
!opnegação!
op1 || op2Ou||
op1 && op2E&&
UsoFunçãoOperador
op1 >>> op2>>>
op1 >> op2>>
op1 << op2<<
UsoOperador
op1 = op1 >>> op2op1 >>>= op2>>>=
op1 = op1 >> op2op1 >>= op2>>=
op1 = op1 << op2op1 <<= op2<<=
op1 = op1 ^ op2op1 ^= op2^=
op1 = op1 | op2op1 |= op2|=
op1 = op1 & op2op1 &= op2&=
op1 = op1 % op2op1 %= op2%=
op1 = op1 / op2op1 /= op2/=
op1 = op1 * op2op1 *= op2*=
op1 = op1 - op2op1 -= op2-=
op1 = op1 + op2op1 += op2+=
DescriçãoUsoOperador
op1 instanceof op2instanceof
Criar objetosnew
(type) op // cast(type)
parâmetros(parâmetros)
objetos.
array[ ]
op1 ? op2 : op3?:
UseOperador
break, continue, label:,
return
Paradas, retornos e
mudanças no fluxo
do loop
try-catch-finally, throwException
if-else, switch-caseDecisão
while, do-while, forLoop
Palavra chave
while (expression) {
statement
}
do {
statement(s)
} while (expression);
for (initialization; termination; increment) {
statement(s)
}
public class SwitchDemo {
public static void main(String[] args) {
int mes = 8;
switch (mes) {
case 1: System.out.println("Janeiro"); break;
case 2: System.out.println("Fevereiro"); break;
case 3: System.out.println("Março"); break;
case 4: System.out.println("Abril"); break;
case 5: System.out.println("Maio"); break;
case 6: System.out.println("Junho"); break;
}
}
}
EXERCÍCIOS
1) Escreva um programa em java que possua um método para exibir na tela os
números de 1 a 10. (Usando for)
2) Escreva um programa em java que possua um método para exibir na tela os
números de 1 a 10. (Usando while)
3) Escreva um programa em java que possua um método para exibir na tela os
números de 1 a 10. (Usando do while)
// 1 – usando for
public class loop1 {
public static void main(String s[]) {
int i=0;
for(i=1; i<=10; i++)
System.out.print(i + " ");
i=1;
}
// 2 – usando do ...while
public class loop3 {
public static void main(String s[]) {
int i=1;
do {
System.out.print(i + " ");
i++;
} while(i<=10);
}
}
// 2 – usando while
public class loop2 {
public static void main(String s[]) {
int i=1;
while(i<=10) {
System.out.print(i + " ");
i++;
}
}
}
TRATAMENTO DE EXCEÇÃO
É um evento que ocorre durante a execução de um programa que sai do fluxo normal.
try {
comandos
} catch (TipoExceção nome) { // executado quando ocorrer exceção
comandos
} finally { // executado mesmo que não haja exceção
comandos
}
// excecao.java
public class excecao {
void divide(int numerador, int denominador) {
System.out.println(numerador/denominador);
}
public static void main(String s[]) {
excecao e = new excecao();
try {
e.divide(2,0);
} catch (Exception exc) {
System.out.println(“Erro de excecao");
} finally {
System.out.println(“Denominador deve ser diferente de zero");
}
}
}
// excecao1.java
public class excecao1 {
void divide(int numerador, int denominador) throws Exception {
if(denominador == 0)
throw new Exception();
System.out.println(numerador/denominador);
}
public static void main(String s[]) {
excecao e = new excecao();
try {
e.divide(2,0);
} catch (Exception exc) {
System.out.println("Erro");
} finally {
System.out.println("Denominador deve ser diferente de zero");
}
}
}
ARRAY
Criando ARRAY
// ArrayDemo.java
public class ArrayDemo {
public static void main(String[] args) {
int[] anArray; // declarando um array de inteiros
anArray = new int[10]; // cria um array de inteiros
for (int i = 0; i < anArray.length; i++) {
anArray[i] = i;
System.out.print(anArray[i] + " ");
}
System.out.println();
}
}
// ArrayDemo.java
public class ArrayDemo {
public static void main(String[] args) {
int[] anArray = {1,2,3,4,5,6,7,8,9,10}; // inicializando array
for (int i = 0; i < anArray.length; i++) {
System.out.print(anArray[i] + " ");
}
System.out.println();
}
}
INICIALIZANDO ARRAY
ARRAY DE OBJETOS
public class ArrayStringsDemo {
public static void main(String[] args) {
String[] anArray = { "String UM",
"String DOIS",
"String TRES" };
for (String s: anArray) {
System.out.println(s.toLowerCase());
}
}
}
ARRAY DE ARRAYS
public class ArrayArrayDemo {
public static void main(String[] args) {
int[][] aMatrix = new int[4][];
//populate matrix
for (int i = 0; i < aMatrix.length; i++) {
aMatrix[i] = new int[5]; //create sub-array
for (int j = 0; j < aMatrix[i].length; j++) {
aMatrix[i][j] = i + j;
}
}
//IMPRIME matriz
for (int i = 0; i < aMatrix.length; i++) {
for (int j = 0; j < aMatrix[i].length; j++) {
System.out.print(aMatrix[i][j] + " ");
}
System.out.println();
}
}
}
APPLET
//AloMundo.java
import javax.swing.JApplet;
import java.awt.Graphics;
public class AloMundo extends JApplet {
String mensagem=“”;
public void init() {
mensagem += “init.. ”;
}
public void start() {
mensagem += “start.. ”;
}
public void paint(Graphics g) {
g.drawRect(0, 0,
getSize().width - 1,
getSize().height - 1);
g.drawString(mensagem+”Alo Mundo!!”, 5, 15);
}
}
<html>
<applet code=AloMundo width=300 height=300> </applet>
</html>
teste.html
Compila applet
javac AloMundo.java
Executa applet
appletviewer teste.html
abrir teste.html por um browser (IExplorer ou Mozilla)
PACOTES
java.applet – Possui classes necessárias a criação de applet
java.awt – Contém classes necessárias a criação de interfaces com o usuário e para
desenhar gráficos e imagens.
java.io – Contém classes que permitem realizar operações de i/o através de streams,
serialização e arquivos.
java.lang – comtém classes fundamentais para o desenvolvimento de programas java. (este
pacote é importado por padrão)
java.net / javax.net – contém classes para implementar aplicações em rede.
java.sql – Contém classes que permitem acessar e processar dados armazenados em um
banco de dados (usualmente um banco de dados relacional).
java.util - Contém classes diversas para tratar de forma especial:coleções,vetores, strings,
números randomicos, strings entre outros.
javax.swing – melhoramento de java.awt a possibilidade de utilizar outros recursos
import java.io.*;
public class teste9 {
public static void main(String s[]) {
BufferedReader d = new BufferedReader(new InputStreamReader(System.in));
try {
System.out.println(d.readLine());
}
catch (IOException ioe) {
System.out.println(ioe+"");
}
}
}

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

Java13
Java13Java13
Java13
 
Java para iniciantes
Java para iniciantesJava para iniciantes
Java para iniciantes
 
Linguagens Poo
Linguagens PooLinguagens Poo
Linguagens Poo
 
Java6
Java6Java6
Java6
 
Java8
Java8Java8
Java8
 
Curso de Java (Parte 3)
 Curso de Java (Parte 3) Curso de Java (Parte 3)
Curso de Java (Parte 3)
 
Java2
Java2Java2
Java2
 
Java11
Java11Java11
Java11
 
v
vv
v
 
Curso Java Básico - Aula 01
Curso Java Básico - Aula 01Curso Java Básico - Aula 01
Curso Java Básico - Aula 01
 
10 heranca
10   heranca10   heranca
10 heranca
 
Aula05
Aula05Aula05
Aula05
 
http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/http://www.dm.ufscar.br/~waldeck/curso/java/
http://www.dm.ufscar.br/~waldeck/curso/java/
 
Java orientação a objetos (variaveis de instancia e metodos)
Java   orientação a objetos (variaveis de instancia e metodos)Java   orientação a objetos (variaveis de instancia e metodos)
Java orientação a objetos (variaveis de instancia e metodos)
 
Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java
 
Aula5
Aula5Aula5
Aula5
 
Fundamentos da Programação PHP OO - Aula 2
Fundamentos da Programação PHP OO - Aula 2Fundamentos da Programação PHP OO - Aula 2
Fundamentos da Programação PHP OO - Aula 2
 
Fundamentos da Programação PHP OO - Aula 3
Fundamentos da Programação PHP OO - Aula 3Fundamentos da Programação PHP OO - Aula 3
Fundamentos da Programação PHP OO - Aula 3
 
Fundamentos da Programação PHP OO - Aula 1
Fundamentos da Programação PHP OO - Aula 1Fundamentos da Programação PHP OO - Aula 1
Fundamentos da Programação PHP OO - Aula 1
 
Java 07
Java 07Java 07
Java 07
 

Andere mochten auch

Desenvolvimento Ria com Java
Desenvolvimento Ria com JavaDesenvolvimento Ria com Java
Desenvolvimento Ria com JavaTI Infnet
 
Conhecendo Java
Conhecendo JavaConhecendo Java
Conhecendo JavaTI Infnet
 
Orientação a objetos na prática
Orientação a objetos na práticaOrientação a objetos na prática
Orientação a objetos na práticaTI Infnet
 
Programação Orientada a Objetos - Conceitos básicos da linguagem JAVA
Programação Orientada a Objetos - Conceitos básicos da linguagem JAVAProgramação Orientada a Objetos - Conceitos básicos da linguagem JAVA
Programação Orientada a Objetos - Conceitos básicos da linguagem JAVACristiano Almeida
 

Andere mochten auch (6)

Java para Leigos
Java para LeigosJava para Leigos
Java para Leigos
 
Desenvolvimento Ria com Java
Desenvolvimento Ria com JavaDesenvolvimento Ria com Java
Desenvolvimento Ria com Java
 
Conhecendo Java
Conhecendo JavaConhecendo Java
Conhecendo Java
 
Orientação a objetos na prática
Orientação a objetos na práticaOrientação a objetos na prática
Orientação a objetos na prática
 
Java - Aprenda rápido
Java - Aprenda rápidoJava - Aprenda rápido
Java - Aprenda rápido
 
Programação Orientada a Objetos - Conceitos básicos da linguagem JAVA
Programação Orientada a Objetos - Conceitos básicos da linguagem JAVAProgramação Orientada a Objetos - Conceitos básicos da linguagem JAVA
Programação Orientada a Objetos - Conceitos básicos da linguagem JAVA
 

Ähnlich wie Java aprendendo linguagem.ppt

Curso java 01 - molhando os pés com java
Curso java   01 - molhando os pés com javaCurso java   01 - molhando os pés com java
Curso java 01 - molhando os pés com javaMaurício Linhares
 
Sistemas Distribuídos - Aula 04 - Revisão de Java
Sistemas Distribuídos - Aula 04 - Revisão de JavaSistemas Distribuídos - Aula 04 - Revisão de Java
Sistemas Distribuídos - Aula 04 - Revisão de JavaArthur Emanuel
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao javaArmando Daniel
 
Exercicios professor marcos monteiro (1)
Exercicios professor marcos monteiro (1)Exercicios professor marcos monteiro (1)
Exercicios professor marcos monteiro (1)jose-junior89
 
Spring framework 2.5
Spring framework 2.5Spring framework 2.5
Spring framework 2.5Diego Pacheco
 
Linguagem de Programação Java
Linguagem de Programação JavaLinguagem de Programação Java
Linguagem de Programação Javathomasdacosta
 
Linguagem de programação implementação de classes
Linguagem de programação   implementação de classesLinguagem de programação   implementação de classes
Linguagem de programação implementação de classesCarlos Melo
 
Java - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a ObjetosJava - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a ObjetosMoises Omena
 
Lista IV de Programação Orientada a Objetos
Lista IV de Programação Orientada a ObjetosLista IV de Programação Orientada a Objetos
Lista IV de Programação Orientada a Objetosunifesptk
 
Curso java 06 - mais construtores, interfaces e polimorfismo
Curso java   06 - mais construtores, interfaces e polimorfismoCurso java   06 - mais construtores, interfaces e polimorfismo
Curso java 06 - mais construtores, interfaces e polimorfismoMaurício Linhares
 
Programação orientada a objetos – III
Programação orientada a objetos – IIIProgramação orientada a objetos – III
Programação orientada a objetos – IIIGabriel Faustino
 
Desenvolvendo para WEB com JAVA
Desenvolvendo para WEB com JAVADesenvolvendo para WEB com JAVA
Desenvolvendo para WEB com JAVAWillian Magalhães
 
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...Manuel Menezes de Sequeira
 

Ähnlich wie Java aprendendo linguagem.ppt (20)

Curso java 01 - molhando os pés com java
Curso java   01 - molhando os pés com javaCurso java   01 - molhando os pés com java
Curso java 01 - molhando os pés com java
 
Sistemas Distribuídos - Aula 04 - Revisão de Java
Sistemas Distribuídos - Aula 04 - Revisão de JavaSistemas Distribuídos - Aula 04 - Revisão de Java
Sistemas Distribuídos - Aula 04 - Revisão de Java
 
Java introdução ao java
Java   introdução ao javaJava   introdução ao java
Java introdução ao java
 
Exercicios professor marcos monteiro (1)
Exercicios professor marcos monteiro (1)Exercicios professor marcos monteiro (1)
Exercicios professor marcos monteiro (1)
 
Dojo Objective-C e Xcode no Sepro
Dojo Objective-C e Xcode no SeproDojo Objective-C e Xcode no Sepro
Dojo Objective-C e Xcode no Sepro
 
Java hidden features
Java hidden featuresJava hidden features
Java hidden features
 
Spring framework 2.5
Spring framework 2.5Spring framework 2.5
Spring framework 2.5
 
Aula4
Aula4Aula4
Aula4
 
Linguagem de Programação Java
Linguagem de Programação JavaLinguagem de Programação Java
Linguagem de Programação Java
 
Linguagem de programação implementação de classes
Linguagem de programação   implementação de classesLinguagem de programação   implementação de classes
Linguagem de programação implementação de classes
 
Java hidden features
Java hidden featuresJava hidden features
Java hidden features
 
Java - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a ObjetosJava - Aula 2 - Orientado a Objetos
Java - Aula 2 - Orientado a Objetos
 
Lista IV de Programação Orientada a Objetos
Lista IV de Programação Orientada a ObjetosLista IV de Programação Orientada a Objetos
Lista IV de Programação Orientada a Objetos
 
Grupo2
Grupo2Grupo2
Grupo2
 
Curso java 06 - mais construtores, interfaces e polimorfismo
Curso java   06 - mais construtores, interfaces e polimorfismoCurso java   06 - mais construtores, interfaces e polimorfismo
Curso java 06 - mais construtores, interfaces e polimorfismo
 
Programação orientada a objetos – III
Programação orientada a objetos – IIIProgramação orientada a objetos – III
Programação orientada a objetos – III
 
Git, GitHub e OO
Git, GitHub e OOGit, GitHub e OO
Git, GitHub e OO
 
Desenvolvendo para WEB com JAVA
Desenvolvendo para WEB com JAVADesenvolvendo para WEB com JAVA
Desenvolvendo para WEB com JAVA
 
String
StringString
String
 
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
 

Java aprendendo linguagem.ppt

  • 1. JAVA APRENDENDO A LINGUAGEM Instituição: SENAC Módulo : Aplicações para WEB – Java Carga Horária: 60 horas Instrutor: Ricardo José Menezes Maia
  • 2. CONCEITOS DE PROGRAMAÇÃO ORIENTADA A OBJETOS Para programarmos em uma linguagem orientada a objetos é necessário conhecer os seguintes conceitos: • Objeto • Mensagem • Classe • Herança Logo após será necessário traduzir os conceitos acima em código java
  • 3. OBJETO Possui comportamento e características/estados cachorro – característica/estado(cor, nome, raça, fome) – comportamento(latir, balançar rabo) Estados e características atributos. Comportamento métodos. Um objeto que contenha características e comportamento específico é chamado de instância. Ex: vira-lata é uma instância de cachorro. // Ponto.java class Ponto { Ponto(int x, int y) { System.out.println("Novo objeto ponto criado ("+x+", "+y+")"); } public static void main(String s[]) { Ponto p = new Ponto(2, 3); Ponto p1 = new Ponto(3, 4); } }
  • 4. ATRIBUTO // Ponto.java class Ponto { int x; int y; Ponto(int x, int y) { this.x = x; this.x = x; System.out.println("Novo objeto ponto criado ("+this.x+", "+this.y+")"); } public static void main(String s[]) { Ponto p = new Ponto(2, 3); Ponto p1 = new Ponto(3, 4); } }
  • 5. MÉTODO class metodo { int x, y; metodo(int x, int y) { this.x = x; this.y = y; System.out.println("Novo objeto metodo criado ("+this.x+", "+this.y+")"); } void Move(int deslocamento) { this.x = this.x + deslocamento; // this.x += deslocamento } void ExibeCoordenada() { System.out.println("Coordenada ("+this.x+", "+this.y+")"); } public static void main(String s[]) { metodo p = new metodo(2, 3); p.Move(20); p.ExibeCoordenada(); } }
  • 6. MÉTODO CONSTRUTOR class metodo { int x, y; metodo(int x, int y) { this.x = x; this.x = x; System.out.println("Novo objeto metodo criado ("+this.x+", "+this.y+")"); } void Move(int deslocamento) { this.x = this.x + deslocamento; // this.x += deslocamento } void ExibeCoordenada() { System.out.println("Coordenada ("+this.x+", "+this.y+")"); } public static void main(String s[]) { metodo p = new metodo(2, 3); p.Move(20); p.ExibeCoordenada(); } }
  • 7. MENSAGEM Objetos comunicam-se através de mensagens. // Ponto.java class Ponto { int x; int y; Ponto(int x, int y) { this.x = x; this.y = y; } void desloca_x(int x) { this.x = this.x+x; } } // Desenha.java public class Desenha { public static void main(String s[]) { Ponto p = new Ponto(2, 3); p.desloca_x(2); } }
  • 8. SOBRECARGA É permitido incluir numa classe métodos que possuem o mesmo nome e o mesmo tipo de retorno, mas que diferem pelo número e/ou pelos tipos dos argumentos. // Ponto.java – sobrecarga de construtor class Ponto { int x, y; double a, b; Ponto(int x, int y) { this.x = x; this.y = y; System.out.println(“Construtor int”); } Ponto(double x, double y) { this.a = x; this.b = y; System.out.println(“Construtor double”); } public static void main(String s[]) { Ponto p = new Ponto(2,3); Ponto p1 = new Ponto(2.4,5.9); } }
  • 9. CLASSE Define atributos e métodos comuns a todos objetos de um certo tipo. // Ponto.java class Ponto { Ponto(int x, int y) { System.out.println("Novo objeto ponto criado ("+x+", "+y+")"); } public static void main(String s[]) { Ponto p = new Ponto(2, 3); Ponto p1 = new Ponto(3, 4); } }
  • 10. HERANÇA superclasse subclasse subclasse Conjunto das propriedades e especificações assim transmitidas de uma classe para outra(s) // filho.java public class pai { } class filho extends pai { }
  • 11. PACOTE Coleção de tipos relacionados. |___grafico |____ponto |____linha Criar pasta grafico // ponto.java package grafico; public class ponto { } // linha.java package grafico; public class linha { } // Desenhar.java import grafico.*; // import grafico.ponto; public class Desenhar { ponto p; public static void main(String s[]) { } }
  • 12. Exercício: Colocar ponto dentro do pacote game, o qual deverá ser criado
  • 13. NÍVEIS DE ACESSO SIMSIMSIMSIMpublic NÃOSIMSIMSIMprotected NÃONÃOSIMSIMNão definido NÃONÃONÃOSIMprivate TodosSubclassePacoteClasse CONTROLANDO ACESSO A MEMBROS DE UMA CLASSE
  • 14. Somente a classe tem acesso. PRIVATE // Ponto.java class Ponto { private int x, y; Ponto (int x, int y) { this.x=x; this.y=y; } private void desloca_x(int desloc) { x = x + desloc; } } // Desenho.java class Desenho { public static void main(String args[]) { Ponto p = new Ponto(2,3); p.x=3; p.desloca_x(4); } }
  • 15. Desenho.java:5: x has private access in Ponto p.x=3; ^ Desenho.java:6: desloca_x(int) has private access in Ponto p.desloca_x(4); ^ 2 errors ERRO javac Desenho.java
  • 16. PRIVATE // Ponto.java class Ponto { private int x, y; Ponto (int x, int y) { this.x=x; this.y=y; } private void desloca_x(int desloc) { x = x + desloc; } } // Desenho.java class Desenho extends Ponto { Desenho(int x, int y) { super(x,y); } public static void main(String args[]) { Desenho des = new Desenho(2,3); System.out.println(des.x); } }
  • 17. Desenho.java:19: x has private access in Ponto System.out.println(des.x); ^ 1 error javac Desenho.java ERRO
  • 18. Exercício: Nos dois programas anteriores mudar de private para protected e verificar o que ocorre.
  • 19. PROTECTED package grafico; // Ponto.java class Ponto { protected int x, y; Ponto (int x, int y) { this.x=x; this.y=y; } protected void desloca_x(int desloc) { x = x + desloc; } } import grafico.*; // Desenho.java class Desenho { public static void main(String args[]) { Ponto p = new Ponto(2,3); System.out.println(p.x); } } Somente a classe e quem herda tem acesso. Criar a pasta grafico Copiar Ponto.java para a pasta grafico
  • 20. Desenho.java:31: grafico.Ponto is not public in grafico; cannot be accessed from outside package Ponto p = new Ponto(2,3); ^ Desenho.java:31: grafico.Ponto is not public in grafico; cannot be accessed from outside package Ponto p = new Ponto(2,3); ^ 2 errors javac Desenho.java ERRO
  • 21. Exercício: Fazer com que Desenho herde Ponto e verificar o que será necessário ou não ajustar para que Desenho seja compilado corretamente.
  • 22. INTERFACE Assim como a classe uma interface define métodos, sendo que os métodos nunca são implementados na interface. Classes que implementam interface devem implementar os métodos definidos pela interface. Uma classe pode implementar múltiplas interface. interface cachorro { public void latir(); } public class vira_lata implements cachorro { public void latir() { } public static void main(String s[]) { vira_lata dog = new vira_lata(); } }
  • 23. ABSTRACT A classe representa um modelo que será instanciado. abstract class cachorro { public void latir(){ } abstract void comer(); } public class vira_lata extends cachorro { public void latir() { } void comer() { } public static void main(String s[]) { vira_lata dog = new vira_lata(); } }
  • 24. // nome do arquivo: polimorf.java interface Gritador { void grita(); } class Humano implements Gritador { public void grita() { System.out.println("AAAAAAHHHHH"); } } class Macaco implements Gritador { public void grita() { System.out.println("IIIIIIIIHHHHHHHI"); } } public class polimorf { void facaAlgo(String especie) { Gritador b; if(especie.compareTo("humano")==0) { b = new Humano(); } else { b = new Macaco(); } b.grita(); // chamada polimórfica } public static void main(String argumento[]) { polimorf p = new polimorf(); p.facaAlgo(argumento[0]); } } POLIMORFISMO
  • 25. // nome do arquivo: polimorf.java interface Gritador { void grita(); } class Humano implements Gritador { public void grita() { System.out.println("AAAAAAHHHHH"); } } class Macaco implements Gritador { public void grita() { System.out.println("IIIIIIIIHHHHHHHI"); } } public class polimorf { void facaAlgo(String especie) { Gritador b; if(especie.compareTo("humano")==0) { b = new Humano(); } else { b = new Macaco(); } b.grita(); // chamada polimórfica } public static void main(String argumento[]) { polimorf p = new polimorf(); p.facaAlgo(argumento[0]); } } POLIMORFISMO - INTERFACE
  • 26. // nome do arquivo: polimorf1.java class Gritador { void grita() { System.out.println("generico"); } } class Humano extends Gritador { public void grita() { System.out.println("AAAAAAHH"); } } class Macaco extends Gritador { public void grita() { System.out.println("IIIIIIIIHHHHH"); } } public class polimorf1 { void facaAlgo(String especie) { Gritador b; if(especie.compareTo("humano")==0) { b = new Humano(); } else { b = new Macaco(); } b.grita(); // chamada polimórfica } public static void main(String argumento[]) { polimorf1 p = new polimorf1(); p.facaAlgo(argumento[0]); } } POLIMORFISMO - HERANÇA
  • 27. VARIÁVEIS Nome Começa com letras Pode ter número ou _ Scopo (tempo de vida) // Scopo.java class Scopo.java { public static void main(String s[]) { int a=34; if (a!=0) { int b = 17; } System.out.println(“Valor b “+ b); } }
  • 28. true ou falseA valor boleano (true or false)boolean 16-bit caracter UnicodeUm simples characterchar Outros Tipos 64-bit IEEE 754 Dupla precisão de ponto flutuante double 32-bit IEEE 754 Simples precisão de ponto flutuante float Números Reais 64-bit complemento de 2Inteiro longolong 32-bit complemento de 2Inteiroint 16-bit complemento de 2Inteiro curtoshort 8-bit complemento de 2Bytebyte Inteiros Tamanho/FormatoDescrição Palavra Reservada Tipos de Dados Primitivos
  • 29. Sinal (1) | Expoente (8) | Mantissa (23) Bits IEEE 754 Para número negativo usar complemento de 2 NÚMERO EM PONTO FLUTUANTE
  • 30. //inteiros byte largestByte = Byte.MAX_VALUE; short largestShort = Short.MAX_VALUE; int largestInteger = Integer.MAX_VALUE; long largestLong = Long.MAX_VALUE; //números reais float largestFloat = Float.MAX_VALUE; double largestDouble = Double.MAX_VALUE; //outros tipos primitivos char aChar = 'S'; boolean aBoolean = true; INICIALIZAÇÃO
  • 31. // Constante.java class Constante { final int aFinalVar = 0; public static void main(String s[]) { Constante c = new Constante(); c.aFinalVar=23; System.out.println(c.aFinalVar); } } CONSTANTE
  • 32. OPERADORES op-- --op-- op++ ++op++ op1 % op2% op1 / op2/ op1 * op2* op1 - op2- op1 + op2+ Uso Operador Aritmético
  • 33. public class AritimeticaDemo { public static void main(String[] args) { //poucos numeros int i = 37; int j = 42; double x = 27.475; double y = 7.22; //adição System.out.println("Adição..."); System.out.println(" i + j = " + (i + j)); //subtração System.out.println("Subtração..."); System.out.println(" i - j = " + (i - j)); //Multiplicação System.out.println(" i * j = " + (i * j)); //Divisão System.out.println(" i / j = " + (i / j)); //Resto de divisão System.out.println(" i % j = " + (i % j)); //misturando tipos System.out.println(" i * x = " + (i * x)); } }
  • 34. // Operador.java class Operador { public static void main(String s[]) { int i=5; System.out.println(“(i++/2)” + (i++/2)); System.out.println(i); } } Mudar para ++i, --i, i-- e verificar os resultados
  • 36. public class RelacionalDemo { public static void main(String[] args) { int i = 37; int j = 42; int k = 42; //maior System.out.println(" i > j = " + (i > j)); //false //maior igual System.out.println(" i >= j = " + (i >= j)); //false //menor System.out.println(" i < j = " + (i < j)); //true //menor igual System.out.println(" i <= j = " + (i <= j)); //true //igual System.out.println(" i == j = " + (i == j)); //false //diferente System.out.println(" i != j = " + (i != j)); //true } }
  • 39. op1 = op1 >>> op2op1 >>>= op2>>>= op1 = op1 >> op2op1 >>= op2>>= op1 = op1 << op2op1 <<= op2<<= op1 = op1 ^ op2op1 ^= op2^= op1 = op1 | op2op1 |= op2|= op1 = op1 & op2op1 &= op2&= op1 = op1 % op2op1 %= op2%= op1 = op1 / op2op1 /= op2/= op1 = op1 * op2op1 *= op2*= op1 = op1 - op2op1 -= op2-= op1 = op1 + op2op1 += op2+= DescriçãoUsoOperador
  • 40. op1 instanceof op2instanceof Criar objetosnew (type) op // cast(type) parâmetros(parâmetros) objetos. array[ ] op1 ? op2 : op3?: UseOperador
  • 41. break, continue, label:, return Paradas, retornos e mudanças no fluxo do loop try-catch-finally, throwException if-else, switch-caseDecisão while, do-while, forLoop Palavra chave
  • 42. while (expression) { statement } do { statement(s) } while (expression); for (initialization; termination; increment) { statement(s) }
  • 43. public class SwitchDemo { public static void main(String[] args) { int mes = 8; switch (mes) { case 1: System.out.println("Janeiro"); break; case 2: System.out.println("Fevereiro"); break; case 3: System.out.println("Março"); break; case 4: System.out.println("Abril"); break; case 5: System.out.println("Maio"); break; case 6: System.out.println("Junho"); break; } } }
  • 44. EXERCÍCIOS 1) Escreva um programa em java que possua um método para exibir na tela os números de 1 a 10. (Usando for) 2) Escreva um programa em java que possua um método para exibir na tela os números de 1 a 10. (Usando while) 3) Escreva um programa em java que possua um método para exibir na tela os números de 1 a 10. (Usando do while)
  • 45. // 1 – usando for public class loop1 { public static void main(String s[]) { int i=0; for(i=1; i<=10; i++) System.out.print(i + " "); i=1; } // 2 – usando do ...while public class loop3 { public static void main(String s[]) { int i=1; do { System.out.print(i + " "); i++; } while(i<=10); } } // 2 – usando while public class loop2 { public static void main(String s[]) { int i=1; while(i<=10) { System.out.print(i + " "); i++; } } }
  • 46. TRATAMENTO DE EXCEÇÃO É um evento que ocorre durante a execução de um programa que sai do fluxo normal. try { comandos } catch (TipoExceção nome) { // executado quando ocorrer exceção comandos } finally { // executado mesmo que não haja exceção comandos }
  • 47. // excecao.java public class excecao { void divide(int numerador, int denominador) { System.out.println(numerador/denominador); } public static void main(String s[]) { excecao e = new excecao(); try { e.divide(2,0); } catch (Exception exc) { System.out.println(“Erro de excecao"); } finally { System.out.println(“Denominador deve ser diferente de zero"); } } }
  • 48. // excecao1.java public class excecao1 { void divide(int numerador, int denominador) throws Exception { if(denominador == 0) throw new Exception(); System.out.println(numerador/denominador); } public static void main(String s[]) { excecao e = new excecao(); try { e.divide(2,0); } catch (Exception exc) { System.out.println("Erro"); } finally { System.out.println("Denominador deve ser diferente de zero"); } } }
  • 49. ARRAY
  • 50. Criando ARRAY // ArrayDemo.java public class ArrayDemo { public static void main(String[] args) { int[] anArray; // declarando um array de inteiros anArray = new int[10]; // cria um array de inteiros for (int i = 0; i < anArray.length; i++) { anArray[i] = i; System.out.print(anArray[i] + " "); } System.out.println(); } }
  • 51. // ArrayDemo.java public class ArrayDemo { public static void main(String[] args) { int[] anArray = {1,2,3,4,5,6,7,8,9,10}; // inicializando array for (int i = 0; i < anArray.length; i++) { System.out.print(anArray[i] + " "); } System.out.println(); } } INICIALIZANDO ARRAY
  • 52. ARRAY DE OBJETOS public class ArrayStringsDemo { public static void main(String[] args) { String[] anArray = { "String UM", "String DOIS", "String TRES" }; for (String s: anArray) { System.out.println(s.toLowerCase()); } } }
  • 53. ARRAY DE ARRAYS public class ArrayArrayDemo { public static void main(String[] args) { int[][] aMatrix = new int[4][]; //populate matrix for (int i = 0; i < aMatrix.length; i++) { aMatrix[i] = new int[5]; //create sub-array for (int j = 0; j < aMatrix[i].length; j++) { aMatrix[i][j] = i + j; } } //IMPRIME matriz for (int i = 0; i < aMatrix.length; i++) { for (int j = 0; j < aMatrix[i].length; j++) { System.out.print(aMatrix[i][j] + " "); } System.out.println(); } } }
  • 54. APPLET //AloMundo.java import javax.swing.JApplet; import java.awt.Graphics; public class AloMundo extends JApplet { String mensagem=“”; public void init() { mensagem += “init.. ”; } public void start() { mensagem += “start.. ”; } public void paint(Graphics g) { g.drawRect(0, 0, getSize().width - 1, getSize().height - 1); g.drawString(mensagem+”Alo Mundo!!”, 5, 15); } }
  • 55. <html> <applet code=AloMundo width=300 height=300> </applet> </html> teste.html
  • 56. Compila applet javac AloMundo.java Executa applet appletviewer teste.html abrir teste.html por um browser (IExplorer ou Mozilla)
  • 57. PACOTES java.applet – Possui classes necessárias a criação de applet java.awt – Contém classes necessárias a criação de interfaces com o usuário e para desenhar gráficos e imagens. java.io – Contém classes que permitem realizar operações de i/o através de streams, serialização e arquivos. java.lang – comtém classes fundamentais para o desenvolvimento de programas java. (este pacote é importado por padrão) java.net / javax.net – contém classes para implementar aplicações em rede. java.sql – Contém classes que permitem acessar e processar dados armazenados em um banco de dados (usualmente um banco de dados relacional). java.util - Contém classes diversas para tratar de forma especial:coleções,vetores, strings, números randomicos, strings entre outros. javax.swing – melhoramento de java.awt a possibilidade de utilizar outros recursos
  • 58. import java.io.*; public class teste9 { public static void main(String s[]) { BufferedReader d = new BufferedReader(new InputStreamReader(System.in)); try { System.out.println(d.readLine()); } catch (IOException ioe) { System.out.println(ioe+""); } } }