0% acharam este documento útil (0 voto)
10 visualizações86 páginas

Intro Java

O documento aborda a programação em Java, incluindo conceitos fundamentais, características da linguagem, e o uso do ambiente de desenvolvimento NetBeans. Ele detalha a estrutura de classes e objetos, operadores, e controles de fluxo, além de exemplos práticos de código. A bibliografia inclui referências importantes sobre Java e suas aplicações comerciais.

Enviado por

Lucas Pena
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PPT, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
10 visualizações86 páginas

Intro Java

O documento aborda a programação em Java, incluindo conceitos fundamentais, características da linguagem, e o uso do ambiente de desenvolvimento NetBeans. Ele detalha a estrutura de classes e objetos, operadores, e controles de fluxo, além de exemplos práticos de código. A bibliografia inclui referências importantes sobre Java e suas aplicações comerciais.

Enviado por

Lucas Pena
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PPT, PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 86

Programação JAVA

Professor: Ciro Meneses Santos

www.code.org

Bibliografia:
----------------
Santos, Ciro M. Desenvolvimento de Aplicações Comerciais com Java e
NetBeans – Editora Ciência Moderna – 2010.
DEITEL, H. M., Deitel, P.J., Java Como Programar. 4 Ed. Bookman 2005
HORSTMANN, Cay S., CORNELL., Core Java 2 – Volume I – Fundamentos
– Makron Books – 2003.
HORSTMANN, Cay S., CORNELL., Core Java 2 – Volume I – Recursos
Avançados – Makron Books – 2003.SUN MICROSYSTEMS, Serviços
Educacionais SUN – 2002
Curos de Java - http://www.sdsi.uri.br/geoob/
2
C
C++ JAVA

java sobrecarga OLE


JCF J2SE
JVM JSP
AWT
JRE oracle
SUN plug-in
RTTI herança
eclipse JTA
JTS NetBeans polimorfismo
IBM
J2EE Servlet Java Beans
IDE
J2ME bytecodes swing SQL method
javac JIT class
API GUI construtor EJB
JAR
MySQL JDBC atributos
3
NetBeans
NetBeans IDE é um conjunto de bibliotecas,
módulos e APIs. formando um ambiente
integrado de desenvolvimento visual
possibilitando ao desenvolvedor complilar,
debugar, efetuar deploying de suas
aplicações .

É um produto open source, 100% Java e


possui vários módulos de expansão
(modules), que podem ser baixados do
próprio site

http://www.netbeans.org

4
DESENVOLVIMENTO DE APLICAÇÕES
COMERCIAIS COM JAVA E NETBEANS

A TECNOLOGIA JAVA

5
Tecnologia Java

Uma linguagem de programação

Um ambiente de desenvolvimento

Um ambiente de aplicações

Um ambiente de distribuição
JVM, J2SDK, J2EE, J2ME

Proporcione um ambiente interpretado para:


Aumentar a velocidade do
desenvolvimento
Permitir a portabilidade do código
6
Características da Linguagem

Compilada: Um programa em JAVA é compilado


para o chamado “bytecode”, que é próximo as
instruções de máquina. O “bytecode” é um código
de máquina virtual idealizada pelos criadores da
linguagem.
Os “bytecodes” são instruções em código de
máquina para a JVM máchine.
Portável: O “bytecodes” gerado pelo compilador
para a sua aplicação especifica pode ser
transportado entre plataformas distintas que
supertam JAVA.
Orientada a Objetos: Java é uma Linguagem
puramente orientada à objetos, tudo em Java são
classes ou instância de uma classe, abstração,
encapsulamento e hereditariedade. 7
Características da Linguagem

Segurança: A presença de coleta automática de


lixo, evita erros comuns que os programadores
cometem quando são obrigados a gerenciar
diretamente a memória. Coletor de Lixo.
Strongly typed também é uma vantagem em
termos de segurança, que está aliada a eliminação
de conversões implícitas de tipos
Tratamento de exceções torna as aplicações mais
robustas, não permitindo que elas abortem, mesmo
quando rodando sob condições anormais.
Suporte concorrência: A linguagem permite a
criação de maneira fácil, de vários “threads”
Multithreading de execução, úteis e animações e
processamento paralelo real.
8
Fundamentos da POO
 A POO se fundamenta em 5 mecanismos:
 Abstração
capacidade de representação
 Identidade
coexistência de múltiplas entidades
 Encapsulamento
ocultação de detalhes
 Herança
criação de relações hierárquicas
 Polimorfismo
admissão de múltiplas formas
9
Classes e Objetos

Classes Objetos - new


 Representantes
 Modelos ou conceitos
de uma classe,
abstratos para definir são entidades
famílias de objetos. concretas.
 Podem ser interligadas  Elementos que podem
estabelecendo ser distinguidos dos
hierarquias ou demais objetos de sua
relações. classe ou de outras.
 São tipos de dados  Sempre pertencem a
definidos pelo uma classe.
programador.
10
Estrutura das
Classes
 Classes determinam
características e
capacidades que Campos
descrevem certos objetos.

Classe
 Características são

variáveis da classe, que


denominamos campos ou
variáveis-membro.
 Capacidades são funções

da classe, que chamamos Métodos


funções-membro ou
métodos.
11
A operação do JRE
Java Runtime Environment

RunTime

Compilar
Carregador
java de classes

Carga a
Verificador de
TestHelloWorld.java partir do disco
bytecodes
rígido, da rede
ou de outra
fonte
javac Interpretador

TestHelloWorld.classe Runtime

Hardware

12
Roteiro de
Programação

Editor ASCII

Compilação JIT
Arquivo
Execução
.java

Interpretação

Carregament
Compilador o
Java Verificação
(javac)

Arquivo
.class JVM - Máquina Virtual Java
(java) 13
Componentes de uma App
/ Applets Java
 arquivo.java :
 código fonte de uma aplicação ou
applet

 arquivo.class :
 bytecode gerado da compilação de uma
 arquivo .java (existirá um .class para
cada
 classe especificada no .java)

© Prof.Hugo
Sampaio - 14
Comentários

O Java aceita três tipos de comentários: de uma


linha, de múltiplas linhas e de documentação

// comentário de uma linha

/* comentário
de múltiplas linhas */

/** comentário de documentação


* também pode ter múltiplas linhas
*****************************/

15
Itens Fundamentais
Declaração de variáveis: As variáveis só podem
armazenar valores de um mesmo tipo
Tipos de variáveis: númericos, literais, ponto
flutuante
int, float, double, char, void,
declare:
nome-do-tipo lista-de-id ;

onde:
• nome-do-tipo é uma das palavras chave dos
tipos de variáreis
• lista-de-id são os nomes escolhidos para as
variáveis:
int max, min, change, _sys_var1;
char nome, endereco;
16
Palavras Reservadas
abstrac implement
do private throw
t s
boolea protecte
double import byte
n d
transie
break else instanceof public
nt
extend
int return true case
s
interfac
false short try catch
e
final long static void char
finally native super volatile class
continu
float new switch while
e
synchroniz
for null default if
ed

17
Operadores Aritméticos

Operador Ação
+ Soma (inteiro e ponto flutuante – IPF)
- Subtração ou troca de sinal – IPF
* Multiplicação – IPF
/ Divisão – IPF
% Resto de divisão (inteiro)
- Sinal Negativo (-unário)
++ Incremento – IPF
-- Decremento – IPF

18
Operadores Relacionais e Atribuição

Operador Ação
> Maior do que
>= Maior ou igual a
< Menor do que
<= Menor ou igual a
== Igual a
!= Diferente de
+= a+=10  a = a + 10
*= a*=10  a = a * 10
-= a-=10  a = a – 10
/= a/=10  a = a / 10
%= a%=10  a = a % 10
19
Line Number

20
Ferramentas

21
Área de trabalho
Área de
Desenvolvimento

Projeto Navegador

Saida
22
Projeto

23
Projeto

24
Exemplo de uma
aplicação
vasco.java
public class Aula
{
Editar: public static void main (String[] args)
{
System.out.println(“Ola Mundo java !!!”);
}
}

compilar:
Javac Aula.java

executar:
Java Aula
© Prof.Hugo
Sampaio - 25
Trabalhando com Java
Arquivo: Exemplo1.java
public class Exemplo1 {

public static void main (String args [] ){

String s = JOptionPane.showInputDialog("Digite um
num");
int y = Integer.parseInt(s);
System.out.println(”Alo Pessoal!“+y);
}

26
Projeto

public static void main ( String[]


args )

A palavra public significa permitir que o


método seja acessado por qualquer outra
classe.

A palavra static é utilizada, quando o método


só existe em uma classe, ao invés um para
cada objeto.

A palavra void é utilizada quando o método


não retorna nenhum valor.
27
Janelas ou caixa de
diálogos
As caixas de diálogos são janelas que em geral
são utilizadas para exibir mensagens importantes
para o usuário de um aplicativo.
A class JOptionPane permite que você exiba
facilmente uma caixa de diálogo contendo
informações chamada diálogo de mensagem.

O método showMessageDialog é usado para


apresentar um texto e esperar por uma
confirmação do usuário.

O método showInputDialog é usado para criar


uma janela com uma pergunta, que deve ser
respondida pelo usuário em um campo de texto.
28
JOptionPane

Objeto
JOptionPane
Import
import javax.swing.JOptionPane
Propriedade
JoptionPane.showInputDialog(“Mensagem”)

JoptionPane.showMessageDialog(null,“Msg1”,”Msg2”,I
cone)
null ( componente pai, utilizado para especificar a posição de criação da

janela)

Msg1 (Mensagem interna)


29
Tipo de diálogo de
mensagem

JOptionPane. diálogo que indica um erro


ERRO_MESSAGE para o usuário do aplicativo

JOptionPane. diálogo informacional para o


INFORMATION_MESSAGE usuário do aplicativo

JOptionPane. diálogo que adverte o


WARNING_MESSAGE usuário do aplicativo

JOptionPane. diálogo que informa uma


QUESTION_MESSAGE pergunta para o usuário
diálogo simples com msg
JOptionPane.
sem icone para o usuário do
PLAIN_MESSAGE
aplicativo
30
Botões de Janela

DEFAULT_OPTION Botão OK

YES_NO_OPTION Botões de Yes e No

YES_NO_CANCEL_OPTION Botões Yes, No e Cancel

OK_CANCEL_OPTION Botões Ok e Cancel

31
Saída de dados

Adotaremos como saída padrão dois métodos :

Saída na tela do sistema :


 Objeto : System.out

 Ex. : Para imprimir uma mensagem ou valor

 System.out.println(“MSG”);
 System.out.println(valor);
© Prof.Hugo
Sampaio - 32

Exemplo de saída
import javax.swing.*;

class MinhaClasse

{

public static void main (String
arg[])

{

String nome = new String();


nome = "Hugo Sampaio";


System.out.println("Ola!, " +
nome);

}

}
© Prof.Hugo
Sampaio - 33
Saída de dados
Saída em uma janela dialogo de mensagem :

 Objeto : JOptionPane.showMessageDialog()

 Ex. : Para imprimir uma mensagem ou valor

 JOptionPane.showMessageDialog(
 null,
 “MSG”
 “TITULO”
 <ICONE>
 );

© Prof.Hugo
Sampaio - 34
Exemplo de saída

import javax.swing.*;

class MinhaClasse

{

public static void main (String arg[])

{

String nome = new String();


nome = "Hugo Sampaio";


JOptionPane.showMessageDialog(

null,

"Ola! " + nome,

"Minhas mensagens",

JOptionPane.INFORMATION_MESSAGE

}

}

© Prof.Hugo
Sampaio - 35
JOptionPane.INFORMATION_MESSAGE JOptionPane.ERROR_MESSAGE

JOptionPane.INCANCEL_OPTION

© Prof.Hugo
Sampaio - 36
Aplicação Java
intro1.java

// Test intro1 Aplicação


public class intro1 {
public static void main(String[] args){
System.out.println("Hello Java 2006!");
String s = JOptionPane.showInputDialog("Enter");
int a = Integer.parseInt(s);
int b = Integer.parseInt(JOptionPane.showInputDialog("Enter"));
a*=3;
int c = a+b;
System.out.println("A="+a+"B="+b+"C="+c);

}
}
37
Operadores Lógicos

Operador Ação
&& AND (E)
|| OR (OU)
! NOT (NÂO)

A B A && B A || B
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 1
38
CONTROLES DE FLUXO
if ( condição ) { int a,x;
sequencias de instruções ; switch (x) {
}else{ case 1 : a=1;
sequncias de instruções; break;
} case 2 : a=2;
break;
res = (condicao)? s1 : s2 ; case 3 : a=3;
break;
for(inicialização; condição; inc/dec) { default : a=10;
sequencia de instruções ; }
}
int vet1[] = {10,20,30,40,50}; inicialização;
int vet2[] = new int[5]; while (condição) {
for (int i=0; i < 5; i++) { sequencia de instruções ;
vet2[i] = vet1[i]; inc/dec;
System.out.println(vet2[i]);
}
}
Estrutura Condicional

Estrutura condicional simples

if falso
if ( condição ) { fimse
a condição b
sequencias de instruções ;

} verdadeiro

condição é composto de: sequenci


as
id operador-relacional id
de
>, <, >=, <=, ==, != instruçõe
40
s
Estrutura Condicional composto

sequenci if sequenci
F V
a a condição b a
de de
instruçõe instruçõe
s s
fimse
if ( condição ) {
sequencias de Ternário:
instruções ;
res = (condicao)? s1 : s2 ;
}else{
sequncias de
instruções; 41
Aplicação Java
intro2.java

// Test intro2 Aplicação


public class intro2 {
public static void main(String[] args){
String s = JOptionPane.showInputDialog("Enter");
int a = Integer.parseInt(s);
int b = Integer.parseInt(JOptionPane.showInputDialog("Enter"));
if (a > b )
System.out.println("A maior que B");
else
System.out.println("B maior que A");

}
}
42
Aplicação Java
intro3.java

// Test intro3 Aplicação


public class intro3 {
public static void main(String[] args){
String s = JOptionPane.showInputDialog("Enter");
int a = Integer.parseInt(s);
int b = Integer.parseInt(JOptionPane.showInputDialog("Enter"));

// ternário
m = (a > b )? a : b;
System.out.println("Maior valor = "+m);
}
}

43
Estrutura Condicional

int a,x;
switch (exp_ordinal) { switch (x) {
case ord : instrução; case 1 : a=1;
break; break;
case ord : instrução; case 2 : a=2;
break; break;
case ord : instrução; case 3 : a=3;
break; break;
default : instrução; default : a=10;
} }

44
Aplicação Java
public class intro4 { intro4.java
public static void main(String[] args){
int a = 4;
switch(a){
case 1: System.out.println("Domingo"); break;
case 2: System.out.println("Segunda"); break;
case 3: System.out.println("Terca"); break;
case 4: System.out.println("Quarta"); break;
case 5: System.out.println("Quinta"); break;
case 6: System.out.println("Sexta"); break;
case 7: System.out.println("Sabado"); break;
default: System.out.println("NDA");
}
System.out.println("Valor = "+a);
}
}

45
Estrutura de Repetição

inicialização
inc/dec

if V sequenci
a condição a
b de
instruçõe
F s

fimse
46
Estrutura de Repetição

for(inicialização; condição; inc/dec) {


sequencia de instruções ;
}

inicialização; inicialização;
while (condição) { do{
sequencia de instruções ; sequencia de
inc/dec; instruções ;
} inc/dec;
}while (condição);

47
Aplicação Java
public class intro5 { intro5.java
public static void main(String[] args){

for(int i=0; i < 10; i++)


System.out.println(i);
for(int j=10; j > 5; j--)
System.out.println(j);

for(int k=0; ; k++){


if(k > 5 )
break;
System.out.println(k);
}
for(int a=0, b=5; b < 10; a++, b++)
System.out.println("A = "+a+" B = "+b);
}
} 48
Aplicação Java
public class intro6 { intro6.java
public static void main(String[] args){
int i = 0;
while (i < 10){
System.out.println(i);
i++;
}
int j = 10;
while (j > 5) {
System.out.println(j);
j--;
}
int k=0;
while (true ){
if(k > 5 )
break;
System.out.println(k);
k++;
} } } 49
Aplicação Java
public class intro7 { intro7.java
public static void main(String[] args){
do{
System.out.println(i);
i++;
}while (i < 10);
int j = 10;
do {
System.out.println(j);
j--;
}while (j > 5);
int k=0;
do{
if(k > 5 )
break;
System.out.println(k);
k++;
}while (true );
} } 50
Aplicação Java
testLaco.java
class Laco {
Laco(){
int i = 1;
do{
int m = i % 2;
i++;
if (m == 0) { continue; }

if (i == 10){ break; }
System.out.println(i-1);
}while(i<20);
}
}
public class testLaco {
public static void main(String[] args){
Laco l = new Laco(); 51
Aplicação Java
public class intro8 { intro8.java
public static void main(String[] args){
String v1 = "10";
String v2 = "5";

System.out.println("Valor sem conversao de


tipos");
System.out.println(v1+v2);

int x = Integer.parseInt(v1);
int y = Integer.parseInt(v2);

System.out.println("Valor com conversao de


tipos");
System.out.println(x+y);
} 52
Aplicação Java
exSwitch.java

public class exWhile {


public static void main(String[] args){
int j = 10;
while ( j > Integer.parseInt(args[0])){
System.out.println(""+j);
j--;
}
}
}

53
Aplicação Java
A palavra chave static é utilizada como modificador de
variáveis, métodos e classes.

String[] args – Esse método declara um único parâmetro


para o método main, args, e tem o tipo de um array
String. Quando esse método é chamado, o parâmetro args
contêm os argumentos digitado após o nome da classe.

Greeting hello = new Greeting();

Esta linha de instrução mostra como criar um objeto,


referenciado pela variável hello.

hello.greet();
Esta linha demonstra uma chamada de método do objeto.
54
Aplicação Java

Eco.java

01 // Classe Eco
02 public class Eco {
03 public static void main (String[] args ) {
04 for (int i=0; i < args.length; i++)
05 System.out.print(args[i] + “ ”);
06 System.out.println();
07 }
08 }

55
Declaração de Array

Os arrays são usados para agrupas objetos do


mesmo tipo. Os arrays permitem que você se refira
ao grupo de objetos usando um nome comum.
Na linguagem de programação Java, um array é um
objeto, e tal como acontece com outros tipos de
classe, a declaração não cria o objeto propriamente
dito. Em vez disso, a declaração de um array cria
uma referência que vovê pode usar para se referir a
um array. A memória real usada pelos elementos do
array é alocada dinamicamente por uma declaração
new ou pelo inicializador de um array.
Ao declarar arrays com os colchetes à esquerda, os
mesmos se aplicam a todas as variáveis que estão à
direita dos colchetes.
56
Declaração de Array
Agrupa objetos de dados de um mesmo tipo.

Declara arrays de tipos primitivo ou de classe:

char ch[]; “String”.charAt(1);


Point p[] “String".length();
char[] ch; vetor.length
Point[] p;
length X length()
String names[];
names = new String[3];
names[0] = “Ciro”;
names[1] = “Matheus”;
names[2] = “Bruno”;
String names[] = {“Ciro”,“Matheus”,“Bruno”};
57
Aplicação Java

// *** testArray.java
class Array {
private char[] ch1, ch2, ch3;
public void loadArray() {
ch1 = new char[10];
for(int i=0; i<10;i++){
ch1[i]= (char) ('A'+i); } }
public char[] copyArray(){
ch2 = new char[10];
for(int i=0; i<10;i++){
ch2[i]= ch1[i];
}
return ch2;
}
58
Aplicação Java
public void showArray(){
ch3 = new char[10];
ch3 = this.copyArray();
for(int i=0; i<10;i++){
System.out.println("Valor i = "+ch3[i]);
}
}
} // fim da class Array
public class testArray {
public static void main(String[] args){
Array arr = new Array();
arr.loadArray();
arr.showArray();
}
}
59
Vetores (Arrays
Unidimensionais)

Definição do array:
int[ ] posiçãoDeMemória = new int[1024];

int quantidadeNecessária = 32768;


byte[ ] vetorNumérico = new byte[quantidadeNecessária];
Definição e inicialização
char[ ] letrasDoAlfabeto =
{‘a’,’b’,’c’,’d’,’e’,’f’,’g’,’h’,’i’,’j’,’l’,’m’,’n’,’o’,’p’,’q’,’r’,’s’,’t’,’u’,’v’
,’x’,’z’};

Cópia ou compartilhamento?
double[ ] medidasDeTemperatura;
medidasDeTemperatura = new double[24*60*60];
double[ ] duplicata = medidasDeTemperatura;
Vetores (Arrays
Unidimensionais)

Exercício:

Verificar se o array referenciado por


duplicata é realmente uma
duplicata de
....
....
medidasDeTemperatura ou se é o
Ou
próprio array medidasDeTempera
(??)
medidasDeTemperatura.
duplica
tura ....

ta
medidasDeTempera duplica
tura ta
Vetores (Arrays
Unidimensionais)

Definição do array:
É possível definir o tamanho do array a partir do valor de uma
variável:
int quantidadeNecessária = 32768;
byte[ ] vetorNumérico = new byte[quantidadeNecessária];

É possível definir o tamanho do array a partir de um valor


conhecido em tempo de execução???
System.out.print("Entre com o tamanho do vetor:");
int i = Keyboard.readInt();

O construtor da classe
TesteArray v = new TesteArray(i);
que encapsula o array
recebe o valor lido e
declara o array.
Vetores (Arrays
Unidimensionais)

Exercício:

Verificar se arrays em java são podem ser


definidos em tempo de execução.

1) Criar a classe TesteArray que encapsule um array de inteiros,


sem tamanho definido.
2) O construtor desta classe deve receber como parâmetro o
tamanho do vetor a ser definido.
3) Escrever a classe DemoTesteArray que teste a declaração e
criação de TesteArray, utilizando um valor teclado como tamanho.
Vetores (Arrays
Unidimensionais)

Manipulação de array “como um todo”:


A manipulação das referências simula
int[ ] pos = {1000}; a manipulação do array como um
todo.
int[ ] num = {10,20,30};
pos = num;
As referências devem apontar para
char[] alfa = {'a','b'}; arrays do mesmo tipo, não
necessariamente do mesmo tamanho.
F:\AULAS\POO\aula15>javac
pos = alfa;
DemoTesteArray.java
DemoTesteArray.java:15: incompatible
types
found : char[]
required: int[]
pos = alfa;
^
1 error
Vetores (Arrays
Unidimensionais)
Definição de arrays “constantes”:
final int[] pos = {1000}; Um array declarado como final não
int[] num = {10,20,30}; pode ser modificado “como um
todo”....
pos = num; F:\AULAS\POO\aula15>javac
DemoTesteArray.java
DemoTesteArray.java:11: cannot assign a value
to final variable pos
pos = num;
^ ... mas pode ter seus componentes
1 error alterados!!!!
pos[0] =3000;
System.out.print.(pos[0]);F:\AULAS\POO\aula15>javac
DemoTesteArray.java
F:\AULAS\POO\aula15>java DemoTesteArray
3000
F:\AULAS\POO\aula15>
Vetores (Arrays
Unidimensionais)
Acesso à componentes de arrays:
Índices iniciam em 0 e variam até o tamanho do array menos
um. Em um array de 3 componentes, as
int[ ] num = {10,20,30}; posições válidas são 0,1,2.

10 20 30
num 0 1 2

Acesso à componente inexistente: Erro de execução: Java faz


verificação dinâmica de índices
i = num[4]; de array.
F:\AULAS\POO\aula15>javac DemoTesteArray.java
F:\AULAS\POO\aula15>java DemoTesteArray
3000Exception in thread "main"
java.lang.ArrayIndexOutOfBoundsException: 4
at DemoTesteArray.main(DemoTesteArray.java:16)
F:\AULAS\POO\aula15>
Vetores (Arrays
Unidimensionais)
O campo length:
Todo array unidimensional possui o campo length cuja
inicialização é automática.
length pode ser consultado
length não pode ser alterado.

int[] num = {10,20,30};


int[] pos = {10,20};
System.out.println(num.length);
System.out.println(pos.length);
pos = num; O campo length é alterado
automaticamente.
System.out.println(pos.length);
Java Orientação à Objetos

A programação OO separa estritamente a noção


entre o que deve ser feito e como deve ser feito.
O que, é descrito como um conjunto de métodos (é
as vezes dados disponíveis publicamente) e suas
semânticas associadas. Essa combinação – métodos,
dados e semântica – Conhecido com um contrato
entre o projetista da classe e o programador que a
utiliza.
O como, de um objeto é definido por sua classes, a
qual de define a implementação dos métodos que o
objeto admite.
Cada objeto é uma istância de uma classe.
Características da POO:

Abstração , Polimorfismo, Herança,


68
Java Orientação à Objetos

Abstração, é o mecanismo de programação que oculta


os detalhes privados da implementação que estão por
detrais das interfaces públicas.
Polimorfismo, se refere a capacidade de reconhecer
num objeto particular um outro mais geral.
Sobcarga, A forma mais simples de polimorfismo
oferecido pela linguagem Java é a sobrecarga de
métodos como o mesmo nome com assinatura
diferente.
Herança, é um mecanismo de criarmos novos objetos
a partir de outros que já existem, tomando como
prontas e disponíveis as características do objeto
origem. Isto cria a possibilidade de criarmos várias
classes, hierarquicamente relacionadas.
Encapsulamento, indica que podemos utilizar um
69
Classe

Uma classe é um tipo de objeto que pode ser


definido pelo programador para descrever uma
entidade real ou abstrata. Podemos entender uma
classe como um modelo ou especificação para
certos objetos.
Uma classe contém dois tipos de membros,
chamados campos e métodos.
Campos (atributos) são dados que pertencem à
classe propriamente dita ou aos objetos da classe;
eles compõem o estado de um objeto ou classe.
Métodos são conjuntos de instruções que operam
os campos para manipular o estado.
Instanciação, A criação de um objeto. Instanciar
significa criar uma instância da classe. Classe é o
modelo abstrato de um objeto, uma instância
70
Construtores
Os construtores são métodos especiais chamado
pelo sistema no momento da criação de um objeto,
assim sendo o operador new apenas indica que o
método especial construtor de uma certa classe
será utilizado
Um construtor é um conjunto de instruções criadas
para inicializar uma instância. Podem ser passados
parâmetros para o construtor, da mesma maneira
que se faz para um método.
Através dos construtores podemos criar objetos
concretos, isto é, estruturas de dados e operações
que representam um objeto do mundo real, a
partir de uma classe (um modelo abstrato de
objetos de um certo conjunto).
Os construtores não são Herdados (Herança)
Os construtores não tem tipo de retorno. 71
Projeto

POO - CLASSE

•Modificadores
private, public,
protected.
•Atributos
•Métodos
•Construtores
•Herança
72
Diálogo
Diálogo
public class Analise extends
public class Math { Math {
public int fat(int n)
{ public float arranjo(int n, int
if (n ==1){ r){
return 1; int vn, vnr;
}else{ vn = fat(n);
return (n * vnr = fat(n-r);
fat(n - 1)); return(vn/vnr);
} }
} }
} public static void main(String[] args) {
int x =
Integer.parseInt(JOptionPane.showInputDialog("Enter"));
int y =
Integer.parseInt(JOptionPane.showInputDialog("Enter"));
Analise ana = new Analise();
float ar = ana.arranjo(x, y);
System.out.println(ar); 74
Projeto

75
Projeto

76
Projeto

77
Semaforo pt = new

Exemplo Semaforo();
pt.ligar();
pt.aumenta();
int x = pt.obtemStatus();
System.out.println(x);

public class Semaforo { // Semaforo.java


// campos
int sDESL=0, sSOB=1,
sLIG=1, sDES=1;
private int status;
// construtor
public Semaforo ( ) { status = sDESL; }

// métodos
public void ligar ( ) { status = sLIG;
}
public void desligar ( ) { status =
sDESL; }
public void aumenta ( ) { status +=
} sSOB; }
78
public void abaixa ( ) { status -= sDES;
Aplicação Java
Greeting.java
01 // Greeting class declaration
02 public class Greeting {
03 public void greet() {
04 System.out.println("Hi Greeting ...");
05 }
06 }

TestGreeting.java
01 // Test Greeting Aplication
02 public class TestGreeting {
03 public static void main (String[] args ) {
04 Greeting hello = new Greeting();
05 hello.greet();
06 }
07 }
79
Construtores
Quando usamos a palavra new, estamos
construindo um objeto. Quando o comando new
é chamado, executa o construtor da classe.
O construtor da classe é um bloco declarado com o
mesmo nome que a classe.

Quando não e declarado nenhum construtor na


sua classe, o Java cria um para você. Esse
construtor é chamando de construtor default. Ele
não recebe nunhum argumento, e o corpo é vazio.

A partir do momento que você declara um


construtor, o construtor default não é mais
fornecido.
80
Aplicação Java

// * Arquivo Classe1.java
public class Classe1 {
Ctrl Espaço
public Classe1() {

}
}

// * Arquivo Classe2.java
public class Classe2 {

public Classe2() {
System.out.println(“Ola Mundo”);
}
}

81
Aplicação Java
Dog.java

// * Arquivo Dog.java UML/Dog


public class Dog {
-weight :int
private int weight;
//------------------// +Dog()
public Dog() { +getWeight():int
+setWeight(int):void
weight = 1;
}
public int getWeight(){
return weight;
}
public void setWeight(int newWeight){
weight = newWeight;
}
}

82
Aplicação Java
testDog.java

// Arquivo testDog.java
public class testDog {
public static void main(String[] args){
Dog d = new Dog();
System.out.println("Dog Weight ="+d.getWeight());
d.setWeight(52);
System.out.println("Dog Weight ="+d.getWeight());
}
}

83
UML/Livro

Aplicação Java -titulo : String


-pag : int
-preco : float
+Livro()
// * Livro.java +mostrarDados():void
public class Livro{
private String titulo = “Desenvolvimento Java”;
private int pag = 208;
private float preco = 49.50;
public Livro (){ }
public void mostrarDados(){
System.out.println(“Titulo = ”+titulo+”\nPagina
= ”+pag+”\nPreco = ”+preco);
}
}
// * Main.java
public class Main{
public static void main(String [] arg){
Livro li = Livro();
li.mostrarDados();
}
}
84
Aplicação Java
// * Livro1.java
public class Livro1{ UML/Livro1
private String titulo; -titulo : String
private int pag; -pag : int
private float preco; -preco : float
public Livro1 (){
titulo = “Desenvolvimento Java”; +Livro1()
pag = 208; +mostrarDados():void
preco = 49.50;
}
public void mostrarDados(){
System.out.println(“Titulo = ”+titulo+”\nPagina
= ”+pag+”\nPreco = ”+preco);
}
}
// * Main.java
public class Main{
public static void main(String [] arg){
Livro1 li = Livro1();
li.mostrarDados();
}
} 85
Aplicação Java UML/Livro2
-titulo : String
// * Livro2.java -pag : int
public class Livro2{ -preco : float
private String titulo; +Livro2(String, int, float)
private int pag; +mostrarDados():void
private float preco;
public Livro2 (String ti, int pa, float pr){
titulo = ti;
pag = pa;
preco = pr;
}
public void mostrarDados(){
System.out.println(“Titulo = ”+titulo+”\nPagina
= ”+pag+”\nPreco = ”+preco);
}
}
// * Main.java
public class Main{
public static void main(String [] arg){
Livro2 li = Livro2(“Desemvolvimento”,208,49.50);
li.mostrarDados();
}
} 86

Você também pode gostar