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