programando em java

58
Programando em Java A partir de agora, começaremos a fazer vários tipos de programa em Java, onde podemos seguir uma rotina de: Nome da Classe Atributos Construtor Função Classe Principal Nome da Classe public static void main (String[] args) Instanciar a Classe, Exemplo: Contador num = new Contador(); Chamar as funções da classe anterior Exemplo de novo programa em Java: Programa 2: Modifique a classe Lampada para que esta contenha também um campo que indique quantas vezes a lâmpada foi acesa. Tente usar uma instância da classe Contador. Obs: Você terá que ter 3 classes, ou seja, a classe Contador, a classe Lampada e a classe Principal, onde teremos que compilar as 3 clases individualmente e rodar na classe principal. class Contador { private int valor=0; public void zerar() { valor = 0;} public void incrementar() { valor= valor +1;} public void imprimir () { System.out.println(valor);} public int getValor() { return valor;

Upload: levi-ricardo

Post on 27-Oct-2015

34 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Programando Em Java

Programando em Java A partir de agora, começaremos a fazer vários tipos de programa em Java, onde podemos seguir uma rotina de: Nome da Classe Atributos Construtor Função Classe Principal Nome da Classe public static void main (String[] args) Instanciar a Classe, Exemplo: Contador num = new Contador(); Chamar as funções da classe anterior Exemplo de novo programa em Java:

Programa 2: Modifique a classe Lampada para que esta contenha também um campo que indique quantas vezes a lâmpada foi acesa. Tente usar uma instância da classe Contador.

Obs: Você terá que ter 3 classes, ou seja, a classe Contador, a classe

Lampada e a classe Principal, onde teremos que compilar as 3 clases individualmente e rodar na classe principal. class Contador { private int valor=0; public void zerar() { valor = 0;} public void incrementar() { valor= valor +1;} public void imprimir () { System.out.println(valor);} public int getValor() { return valor;

Page 2: Programando Em Java

} } --------------------------------------------------- class Lampada { private boolean aceso; private Contador vezes = new Contador(); public void acende() { vezes.incrementar(); aceso = true; } public void apaga() { aceso= false; } public void mostraEstado() { if (aceso == true) { System.out.println("A lampada esta acesa!"); } else { System.out.println("A lampada esta apagada!"); } System.out.print("A lampada foi acesa: "); vezes.imprimir(); System.out.println("vezes"); } } --------------------------------------------------------- public class Principal {

Page 3: Programando Em Java

public static void main (String[] args) { Contador num = new Contador(); Lampada lampSala = new Lampada(); lampSala.acende(); lampSala.mostraEstado(); lampSala.apaga(); lampSala.mostraEstado(); lampSala.acende(); lampSala.mostraEstado(); lampSala.apaga(); lampSala.mostraEstado(); lampSala.acende(); lampSala.mostraEstado(); lampSala.apaga(); lampSala.mostraEstado(); } }

Outro Exemplo:

Page 4: Programando Em Java

Programa 3: Faça a soma dos 100 primeiros números inteiros: public class Soma100{ public int sm = 0; public void Soma100(int sm){ this.sm = sm; } public void somar(){ for (int i=1; i<=100; i++) sm += i; } public void ImprimaSoma(){ System.out.println("A soma dos (1+2+3+...+99+100) é "+sm); } } ----------------------------------------------- public class soma { public static void main (String[] args){ Soma100 S = new Soma100(); S.somar(); S.ImprimaSoma(); }}

Page 5: Programando Em Java

No exemplo acima, começamos com a classe “Soma100” e depois ao invés de colocarmos o nome da outra como “Principal” colocamos como “soma”, ou seja, o nome não é o mais importante e sim que façamos na mesma todos os requisitos para que seja a classe “Principal” e seja a responsável por rodar o programa. Programa 4: Faça em JAVA todos os números que são divisíveis por 4 abaixo de 200(inclusive): import java.io.*; public class Div4{ public static void main (String[] args){ for (int i=4; i<=200; i++) if (i % 4 == 0) System.out.println (i+"\n"); } }

Page 6: Programando Em Java

Quando colocamos for (int i=4; i<=200; i++), significa que o looping começará de “4”, irá até o número “200” e i++, significa que irá somando até chegar aos 200. i = i + 1 => i ++ Quando colocamos if (i % 4 == 0), significa que se o “resto” do número dividido por “4” == 0, será um dos números que desejo. X = 0, significa que estou atribuindo a variável “X” o valor “0”. X == 0, significa que estou comparando a variável “X” com o valor “0”. Quando colocamos System.out.println (i+"\n"), significa que apresento todos os números que estão na condição acima apresentados e o “\n” é para que apareçam todos um debaixo do outro. Programa 5:

Foi feita uma pesquisa de audiência de canal de TV em várias casas de uma certa cidade. Para cada casa visitada foi fornecido o número do canal (2, 4, 6, 7, 9, 13) e o número de pessoas que estavam assistindo a ele naquela casa.

Fazer um programa que:

· leia um número indeterminado de dados, sendo que canal 0 (zero) representa fim da entrada de dados;

Page 7: Programando Em Java

· calcule a percentagem de audiência para cada emissora; · imprima total de pessoas pesquisadas, total de pessoas por canal e sua respectiva percentagem.

Resultado:

public class Pesquisa{ public int cn2, cn4, cn6, cn7, cn9, cn13; public int totalPesquisado; public float pcn2, pcn4, pcn6, pcn7, pcn9, pcn13; public void Leia(){ cn2 = 15; cn4 = 20; cn6 = 30; cn7 = 10; cn9 = 15; cn13 = 10; } public void PercentAudiencia(){ totalPesquisado = cn2+cn4+cn6+cn7+cn9+cn13; pcn2 = (cn2 * totalPesquisado) / 100; pcn4 = (cn4 * totalPesquisado) / 100; pcn6 = (cn6 * totalPesquisado) / 100; pcn7 = (cn7 * totalPesquisado) / 100; pcn9 = (cn9 * totalPesquisado) / 100; pcn13 = (cn13 * totalPesquisado) / 100; } public void Imprimir(){ System.out.println("Total de pessoas pesquisadasé "+totalPesquisado); System.out.println("Total de pessoas canal 2 é "+cn2+" ("+pcn2+")"); System.out.println("Total de pessoas canal 4 é "+cn4+" ("+pcn4+")"); System.out.println("Total de pessoas canal 6 é "+cn6+"

Page 8: Programando Em Java

("+pcn6+")"); System.out.println("Total de pessoas canal 7 é "+cn7+" ("+pcn7+")"); System.out.println("Total de pessoas canal 9 é "+cn9+" ("+pcn9+")"); System.out.println("Total de pessoas canal 13 é "+cn13+" ("+pcn13+")"); } } ------------------------------------- import java.io.*; public class Audiencia{ public static void main (String[] args){ Pesquisa Pesq = new Pesquisa(); Pesq.Leia(); Pesq.PercentAudiencia(); Pesq.Imprimir(); } }

======================================================

********************** OUTRA FORMA DE RESOLVER: import java.lang.*; import java.io.*; import java.util.*; public class Audiencia { public int Canal;

Page 9: Programando Em Java

public int Pessoas; public int[] TotCasas; public int[] TotPessoas; public int SomaPessoas; public int[] PercEmissoras; public int SomaCasas; public void Audiencia(int Canal,int Pessoas,int[] TotCasas, int[] TotPessoas, int SomaPessoas, int[] PercEmissoras, int SomaCasas)

{ this.Canal = Canal; this.Pessoas = Pessoas; this.TotCasas = TotCasas; this.TotPessoas = TotPessoas; this.SomaPessoas = SomaPessoas; this.PercEmissoras = PercEmissoras; this.SomaCasas = SomaCasas; } public void ler() { TotCasas = new int[15]; TotPessoas = new int[15]; PercEmissoras = new int[15]; for (int i=0;i<15;i++) { TotPessoas[i] = 0; TotCasas[i] = 0; PercEmissoras[i] = 0; } Canal = 1; while (Canal != 0) { Scanner sc = new Scanner(System.in); System.out.print("Canal: "); Canal = sc.nextInt(); if (Canal != 0) { System.out.print("Quantos pessoas assitem o canal: ");

Page 10: Programando Em Java

Pessoas = sc.nextInt(); TotCasas[Canal] = TotCasas[Canal] + 1; TotPessoas[Canal] = TotPessoas[Canal] + Pessoas; } } } public void imprimir() { SomaPessoas = 0; for (int i=0;i<15;i++) { if (TotPessoas[i] != 0) { SomaPessoas = SomaPessoas + TotPessoas[i]; SomaCasas = SomaCasas + TotCasas[i]; } } for (int i=0;i<15;i++) { if (TotPessoas[i] != 0) { PercEmissoras[i] = (TotPessoas[i] * 100) / SomaPessoas; System.out.println("Emissora " + i + ": " + PercEmissoras[i] + "%");

} } System.out.println("Total de casas: "+ SomaCasas); System.out.println("Total de pessoas: "+ SomaPessoas); } } ------------------------------------- public class Principal { public static void main(String args[]) { Audiencia votos =new Audiencia();

Page 11: Programando Em Java

votos.ler(); votos.imprimir(); } }

Looping com Java

Java – O switch

• O valor é comparado com cada um dos casos relacionados. Se a combinação não for encontrada, o bloco default executado.

• O default é opcional, então caso este não esteja associado ao comando, o bloco do swicth poderá não executar nada.

Java – Loop For

for(inicialização; teste; incremento) {

bloco de comandos;

}

Você também pode incluir um comando simples, sendo assim não há necessidade da utilização de chaves.

Exemplo: String strArray[] = new String[10];

for ( i=0; i< strArray.length; i++)

strArray[i]=””;

Inicializa um array de10 elementos com “”;

Java – Loop While

O while é usado para repetir um comando, ou um conjunto de comando enquanto a condição é verdadeira.

Page 12: Programando Em Java

While (condição){

bloco de comandos;

}

A condição é uma expressão booleana. Exemplo:

int count=0;

while(count < array1.length && array1[count]!=0){

array2[count]=(float) array1[count++];

}

Java – Loop Do

A principal diferença entre o while e o do é que o teste condicional no caso do while é feita antes de se executar o código interno ao loop. Desta forma, o que pode acontecer no while é que o loop pode não ser executado se a condição for false. Já no loop do o corpo do loop é executado pelo menos uma vez, pois o teste de permanência é executado no fim do loop.

do{

bodyOfLoop;

} while(condition);

Exemplos:

Programa 6:

public class Prog06 {

public static void main(String arg[ ]) {

int x = (int)(Math.random()*100);

int z = 0;

int y = 0;

Page 13: Programando Em Java

if (x > 50) {

y = 9;

}

else {

System.out.println(“O valor de x é menor que 50”);

y = (int)(Math.random() * (3.14));

}

z = y + x;

System.out.println(“O valor da variável x = ” + x);

System.out.println(“O valor da variável y = ” + y);

System.out.println(“O valor da variável z = ” + z);

} }

Page 14: Programando Em Java

Programa 7:

public class Prog07 {

public static void main(String arg[]) {

int valor = (int)(Math.random()*5);

switch(valor) {

case 0:

System.out.println("Primeira Opção (Valor igual a zero)");

break;

case 1:

System.out.println("Segunda Opção (Valor igual a um)");

break;

default:

System.out.println("Outras Opções (Valor maior que um)");

break;

}

}

}

Page 15: Programando Em Java

Programa 8:

public class Prog08 {

public static void main(String arg[]) {

int valor = (int)(Math.random()*5);

while(valor != 0) {

valor = (int)(Math.random()*5);

System.out.println("Valor igual a " + valor);

}}}

Page 16: Programando Em Java

Programa 9:

Faça um programa da classe Empregado colocando as opção de menu:

1 – Cadastrar o Empregado

2 – Alterar o Empregado

3 – Listar o Empregado

4 - Sair

public class Empregado

{ public Empregado (String n, double s, double pass)

{nome = n;

salario = s;

passagem = pass; }

public void imprime()

{ System.out.println ("Nome = " + nome + " Salário = " + salario);

}

public String getNome()

{ return nome;

}

public double getSalario()

{ return salario;

Page 17: Programando Em Java

}

public void setNome(String n)

{nome = n;

}

public void setSalario(double s)

{salario = s;

}

private String nome;

private double salario;

private double passagem;

}

----------------------------------------------

import corejava.*;

import java.util.Vector;

public class Principal

{ public static void main (String[] args)

{

String nome;

double salario;

Page 18: Programando Em Java

double passagem;

Empregado umEmpregado = null;

boolean continua = true;

while (continua)

{ System.out.println('\n' + "O que você deseja fazer?");

System.out.println('\n' + "1. Cadastrar o empregado");

System.out.println("2. Alterar o empregado");

System.out.println("3. Listar o empregado");

System.out.println("4. Sair");

int opcao = Console.readInt('\n' + "Digite um número entre 1 e 5:");

switch (opcao)

{

case 1:

nome = Console.readLine('\n' + "Digite o nome do empregado: ");

salario = Console.readDouble("Digite o salario do empregado: ");

umEmpregado = new Empregado (nome, salario);

System.out.println('\n' + "Empregado cadastrado com sucesso!");

break;

case 2:

Page 19: Programando Em Java

System.out.println('\n' + "O que você deseja alterar?");

System.out.println('\n' + "1. Nome");

System.out.println("2. Salario");

int opcaoAlteracao = Console.readInt('\n' + "Digite 1 ou 2:");

switch (opcaoAlteracao)

{ case 1:

String novoNome = Console.readLine("Digite o novo nome: ");

umEmpregado.setNome(novoNome);

System.out.println('\n' + "Alteração de nome efetuada com sucesso!");

break;

case 2:

double novoSalario = Console.readDouble("Digite o novo salário: ");

umEmpregado.setSalario(novoSalario);

System.out.println('\n' + "Alteração de salário efetuada com sucesso!");

break;

default:

System.out.println('\n' + "Opção inválida!");

break;

}

break;

case 3:

Page 20: Programando Em Java

System.out.println("");

umEmpregado.imprime();

break;

case 4:

continua = false;

break;

default:

System.out.println('\n' + "Opção inválida!");

break;}}}}

Classes e Herança

• A derivação de classes permite que se defina uma nova classe a partir de uma classe já existente; essa classe derivada é chamada de subclasse e a classe original é chamada de superclasse;

• Uma subclasse herda os atributos e métodos da superclasse;

Page 21: Programando Em Java

• A grande vantagem é a possibilidade de se redefinir algumas características herdadas;

• Em Java, não existe o conceito de herança múltipla, entretanto o programador pode fazer uso do conceito de interfaces;

• Um objeto de uma subclasse é também um objeto da superclasse, entretanto, a recíproca não é verdadeira;

• Quando um membro de uma superclasse não serve para a subclasse, o programador pode reescrevê-lo e adequá-lo para a subclasse.

Métodos, com exceção dos construtores, são herdados da mesma forma que os atributos definidos numa superclasse;

Os construtores definidos na superclasse nunca são herdados pelas subclasses, não importando os seus atributos de acesso;

O método construtor da superclasse deve sempre ser chamado dentro do método construtor da subclasse;

A palavra chave super chama esse construtor, recebendo os devidos parâmetros;

Este deve ser o primeiro comando do construtor da subclasse, caso não seja, o compilador colocará o construtor default da superclasse (aquele sem parâmetros);

Programa 10: Herança

Superclasse:

Classe: Funcionário

Atributo: String m_nome; Int m_idade Função: Fn_listar ()

Page 22: Programando Em Java

Subclasse: Classe: gerente Atributo: Int m_subordinados Função: Fn_exibe_G Subclasse: Classe: diretor Atributo: String m_filial Função: Fn_exibe_D class Funcionario{ protected String m_nome; protected int m_idade; public Funcionario(){ } public Funcionario(String m_nome, int m_idade){ this.m_nome=m_nome; this.m_idade=m_idade; } public Funcionario(String m_nome){ this.m_nome=m_nome;} public void fn_listar(){ if(m_idade==0) System.out.println("\nNome:"+m_nome); else{ System.out.println("\nNome:"+m_nome); System.out.println("\nIdade:"+m_idade); }}}

Page 23: Programando Em Java

class gerente extends Funcionario{ private int m_subordinados; public gerente(String m_nome, int m_idade, int m_subordinados){ super(m_nome,m_idade); this.m_subordinados=m_subordinados;} public void fn_exibe_G(){ System.out.println("\nSubordinados="+m_subordinados);}} class diretor extends Funcionario{ private String m_filial; public diretor(String m_filial,String m_nome){ super(m_nome); this.m_filial=m_filial;} public void fn_exibe_D(){ System.out.println("\nFilial="+m_filial);}} class principal{ public static void main(String argv[]){ gerente obj2=new gerente("Marcelo",18, 10); diretor obj3=new diretor("Copacabana","Marcelo"); obj2.fn_listar(); obj2.fn_exibe_G(); obj3.fn_listar(); obj3.fn_exibe_D();}}

Page 24: Programando Em Java

Na superclasse fazemos normalmente colocando nos atributos o “protected”. Como a subclasse herda atributos e funções da superclasse, colocamos no atributo da subclasse o “private”, pois ela herda o atributo da superclasse e não o contrário. No construtor da subclasse colocamos a palavra “super” para dizer que há um atributo sendo herdado da superclasse e quando colocamos o “extends” significa que a classe referenciada é uma subclasse da superclasse atribuída. Na classe Principal podemos instanciar uma subclasse e chamar uma função da superclasse, pois estamos em uma HERANÇA, onde a subclasse herda atributos e funções da superclasse.

Programa 11: Herança

Superclasse:

Classe: Professor

Atributo: string p_nome Função: fn_listar () Subclasse:

Page 25: Programando Em Java

Classe: Aluno Atributo: int a_nota Função: fn_listar_nota class Professor { protected String p_nome; public Professor (String p_nome) { this.p_nome=p_nome; } public void fn_listar() { System.out.println ("nome:"+p_nome); } } class Aluno extends Professor { private int a_nota; public Aluno (String p_nome, int a_nota) { super(p_nome); this.a_nota=a_nota; } public void fn_listar_nota() { System.out.println("nota: "+a_nota); } } class Principal { public static void main(String argv[]) {

Page 26: Programando Em Java

Aluno obj2 = new Aluno ("Marcelo", 8); obj2.fn_listar(); obj2.fn_listar_nota(); } }

Programa 12: Herança

• Exemplo : – Neste exemplo são usados os conceitos de superclasse,

subclasse e herança; – A classe Animal possui um construtor e um método; – A classe Cachorro é uma subclasse da classe Animal e possui

dois construtores e nenhum método. public class Animal { private String especie; //construtor public Animal(String especie){ this.especie = new String(especie); } public void show(){ System.out.println("Este animal é um: " + especie);}} -----------------------------------------------

Page 27: Programando Em Java

public class Cachorro extends Animal { private String nome; private String raca; public Cachorro(String umNome){//construtor 1 super("Cachorro"); //Chama o construtor da superclasse nome = umNome; raca = "Desconhecida"; } public Cachorro(String umNome, String umaRaca){//construtor 2 super("Cachorro"); nome = umNome; raca = umaRaca; } } -------------------------------------------------------- public class TestSubClass{ public static void main(String [] args){ Cachorro umCachorro = new Cachorro("Fido", "Poodle"); Cachorro outroCachorro = new Cachorro("Lassie"); umCachorro.show(); outroCachorro.show(); } }

Page 28: Programando Em Java

Programa 13: Herança SuperClasse: Presidente Atributos: String nome Int idade Função: fn_executar_poder() SubClasse: Deputado Atributo: int registro Função: fn_fazerleis_F() SubClasse: Ministro Atributo: int CPF Função: fn_executarmin () SubClasse: Vereador Atributo: int votos Função: fn_fazerleis_M()

• O Vereador só será eleito se tiver votos > =500 --------------------------------------------

public class Presidente { protected String nome; protected int idade; public Presidente (String nome, int idade) { this.nome = nome; this.idade = idade; } public void fn_executar_poder (boolean competente) { if (competente) { System.out.println ("O politico " + nome + ", de " + idade + " anos, exerce bem o poder.");

Page 29: Programando Em Java

} else { System.out.println ("O politico " + nome + ", de " + idade + " anos, e incompetente."); } }} --------------------------------------------------- class Deputado extends Presidente { private int registro; public Deputado (String nome, int idade, int registro) { super(nome, idade); this.registro = registro; } public void fn_fazerleis_F(int tipoLei) { String msg; String lei; msg = "O deputado " + nome + " estah fazendo leis "; switch (tipoLei) { case 1: lei = "tributarias."; break; case 2: lei = "sobre saude."; break; case 3: lei = "sobre educacao."; break; default: lei = "em beneficio do povo.";

Page 30: Programando Em Java

break; } msg += lei; System.out.println (msg); }} ----------------------------------------------------------- class Ministro extends Presidente { private int CPF; public Ministro (String nome, int idade, int CPF) { super(nome, idade); this.CPF = CPF; } public void fn_executarmin () { System.out.println ("O ministro " + nome + " esta exercendo sua funcao."); } } ------------------------------------------------------ class Vereador extends Presidente { private int votos; public Vereador (String nome, int idade, int votos) { super(nome, idade); this.votos = votos; } public void fn_fazerleis_M(int qtdLeis) { int i = 0; if (votos >= 500) { while (++i <= qtdLeis) {

Page 31: Programando Em Java

System.out.println ("O vereador " + nome + " estah fazendo a lei # " + i); } } else { System.out.println ("O vereador " + nome + " nao foi eleito!"); }}} ------------------------------------------------- public class PrincPoliticos { public static void main (String args[]) { Deputado d1 = new Deputado ("Jose da Silva", 57, 7684); Deputado d2 = new Deputado ("Joao Mello", 44, 2365); Ministro m1 = new Ministro ("Lucas Moraes", 62, 78904563); Vereador v1 = new Vereador ("Victoria Moraes", 39, 763); Vereador v2 = new Vereador ("Manuel Felicio", 41, 497); Presidente p1 = new Presidente ("Nosso Guia", 54); Presidente p2 = new Presidente ("Camila Moraes", 46); d1.fn_fazerleis_F (2); d2.fn_fazerleis_F (6);

Page 32: Programando Em Java

d1.fn_fazerleis_F (3); d2.fn_fazerleis_F (1); m1.fn_executarmin (); v1.fn_fazerleis_M (4); v2.fn_fazerleis_M (20); v1.fn_executar_poder (true); p1.fn_executar_poder (false); p2.fn_executar_poder (true); } }

Programa 14: Herança

– Neste exemplo será usado sobrecarga de métodos que simula o som produzido por um animal;

– De acordo com a subclasse que é atribuida a uma referência à superclasse (Animal) o método correto é chamado;

public class Animal { private String especie;

Page 33: Programando Em Java

//construtor public Animal(String especie){ this.especie = new String(especie); } public void show(){ System.out.println("Este animal é um: " + especie); } public void sound(){ }//este método deverá ser implementado nas classes derivadas } --------------------------------------- public class Cachorro extends Animal { private String nome; private String raca; //construtor 1 public Cachorro(String umNome){ super("Cachorro"); //Chama o construtor da superclasse nome = umNome; raca = "Desconhecida"; } //construtor 2 public Cachorro(String umNome, String umaRaca){ super("Cachorro"); nome = umNome; raca = umaRaca; } public void show(){ super.show(); System.out.println("Seu nome é "+ nome + " e sua raca é " + raca); } public void sound(){ System.out.println("Au Au"); } } --------------------------------------------------- public class Gato extends Animal { private String nome; private String raca; //construtor 1 public Gato(String umNome){ super("Gato"); //Chama o construtor da superclasse

Page 34: Programando Em Java

nome = umNome; raca = "Desconhecida"; } //construtor 2 public Gato(String umNome, String umaRaca){ super("Gato"); nome = umNome; raca = umaRaca; } public void show(){ super.show(); System.out.println("Seu nome é "+ nome + " e sua raca é " + raca); } public void sound(){ System.out.println("Miau"); } } ------------------------------------------------------- public class Pato extends Animal { private String nome; private String raca; //construtor 1 public Pato(String umNome){ super("Pato"); //Chama o construtor da superclasse nome = umNome; raca = "Desconhecida"; } //construtor 2 public Pato(String umNome, String umaRaca){ super("Pato"); nome = umNome; raca = umaRaca; } public void show(){ super.show(); System.out.println("Seu nome é "+ nome + " e sua raca é " + raca); } public void sound(){ System.out.println("Qua Qua"); } }

Page 35: Programando Em Java

--------------------------------------------------------------- public class TesteSobrecarga{ public static void main(String [] args){ Animal[] osAnimais = { new Cachorro("Rover", "Poodle"), new Gato("Max", "Siames"), new Pato("Daffy", "Ganso") }; Animal escolha; for (int index = 0; index<osAnimais.length; index++){ escolha=osAnimais[index]; System.out.println("\n Sua escolha: "); escolha.show(); escolha.sound();}}}

• A superclasse de todas as classes em Java: – Todas as classes definidas nos diferentes exemplos vistos são

subclasses da classe Object, por default; – Uma variável do tipo Object pode conter um objeto de

qualquer classe: isto pode ser útil quando se deseja, por exemplo, escrever um método que vai manipular objetos de tipo desconhecido;

– Todas as classes herdam os membros da classe Object: • toString() • getClass() – retorna a class de um objeto. • equals() • hashCode() – retorna o hasCode de um objeto.

Page 36: Programando Em Java

• notify() – Acorda um simples thread que estava em estado de espera.

• notifyAll() - Acorda todos threads que estavam em estado de espera.

• wait() – coloca um thread em espera ate que outro invoque um notify() ou notibyAll()

• clone() – retorna uma copia exata do objeto em questão • finalize()- é acionado pelo garbage collector para limpar

referencias que não estão sendo usadas em memória. • Classes Abstratas (Abstract Classes):

– Uma classe abstrata é aquela no qual um ou mais métodos são declarados mas não definidos;

– O corpo que representa a definição desses métodos é omitido; a definição desses métodos deverá ser implementada nas subclasses derivadas a partir da classe abstrata que contém a sua declaração;

– A palavra chave abstract deve ser colocada na declaração da classe (public abstract class Animal) ou (abstract public class Animal);

• Classes Abstratas (cont.): – O mesmo vale para a declaração dos métodos abstratos:

(public abstract void sound()); – Um método abstract nunca pode ter atribuido de acesso

private já que métodos com esse atributo nunca são herdados; – Podemos derivar classes a partir de uma classe abstrata

(subclasses); • Classes Abstratas (cont.):

– Não se pode instanciar um objeto a partir de uma classe abstrata, mas pode-se fazer referência a uma classe abstrata (declarar uma variável com o seu tipo); essa variável pode armazenar objetos de classes derivadas (subclasses) da classe abstrata;

– Quando se deriva uma classe a partir de uma classe abstrata não há necessidade de definirem todos os métodos abstratos na subclasse; nesse caso, a subclasse também será abstrata;

– Caso todos os métodos sejam definidos, então a classe não é abstrata.

Programa 15: Polimorfismo

Page 37: Programando Em Java

Polimorfismo – Agregação

class loja{ CD CDs[]; int m_quant=0; public loja(int quant){m_quant=quant; CDs=new CD[quant]; m_quant=0;} public void fn_armazena(CD aux){ CDs[m_quant]=aux; System.out.println("Nome:"+CDs[m_quant].m_nome+"\nTitulo:"+CDs [m_quant].m_titulo); m_quant++;}} class CD{ String m_nome; String m_titulo; public CD(String nome, String titulo){ m_nome=nome; m_titulo=titulo;

loja CD

CD CDS[] Int m_quant

fn_armazenar()

String m_nome String m_titulo

Fn_Rnome()

Page 38: Programando Em Java

} public String fn_Rnome(){ return(m_nome);} public String fn_titulo(){ return(m_titulo);}} class loja1{ public static void main(String argv[]){ CD disco1; disco1=new CD("\nCaetano","\nPrenda Minha"); System.out.println(disco1.fn_Rnome()); System.out.println(disco1.fn_titulo()); loja Soaudio=new loja(20); Soaudio.fn_armazena(disco1); disco1=new CD("Roberto Carlos","Cafe"); Soaudio.fn_armazena(disco1);}}

Page 39: Programando Em Java

19 – FRAMES: Programa 16: Frames - Janela //import java.awt.*=Cores(RGB – vai do inteiro 0 a 255) – Color, Dimension, Image. //import javax.swing.*=adiciona suporte arquitetura swing, versão extendida a java.awt //Toolkit = Converter do pacote java.awt //Frame f=new Frame(); //Para acessar deve recuperá-lo utilizando o método //getContentPane().add(<Nome do Componente>); //f.add(< nomeDoComponente>); //Background = cor de fundo //SetForeground() = cor da fonte //GetScreenSize() = Para obter a resolução do vídeo(largura e altura //em pixel) //Height = altura //Width = largura //Dimension = tamanho //* Lado ruim deste programa:Se você fechar a janela e existir outras //janelas elas não irão fechar, por isso o System.exit(o), no programa //EventoJanela. import java.awt.*; import javax.swing.*; public class Janela extends JFrame{ public Janela(String titulo, Dimension tamanho){ setTitle(titulo); setSize(tamanho); centralize(); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); getContentPane().setLayout(null); getContentPane().setBackground(new Color(200,230,200)); Image Ico; Ico = Toolkit.getDefaultToolkit().getImage("exemplos.gif"); setIconImage(Ico);} public void centralize(){

Page 40: Programando Em Java

Dimension T = Toolkit.getDefaultToolkit().getScreenSize(); Dimension J = getSize(); if(J.height > T.height) setSize(J.width,T.height); if(J.width > T.width) setSize(T.width,J.height); setLocation((T.width - J.width)/2, (T.height - J.height)/2); } public static void main(String[] args){ Janela jan = new Janela("Janela", new Dimension(300,200)); jan.show(); }}

Programa 17: Frames – EventoJanela Todo programa de Frames há como base a classe “Janela”. import java.awt.*; import javax.swing.*; public class Janela extends JFrame{ public Janela(String titulo, Dimension tamanho){ setTitle(titulo); setSize(tamanho); centralize(); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); getContentPane().setLayout(null); getContentPane().setBackground(new Color(200,230,200)); Image Ico;

Page 41: Programando Em Java

Ico = Toolkit.getDefaultToolkit().getImage("exemplos.gif"); setIconImage(Ico);} public void centralize(){ Dimension T = Toolkit.getDefaultToolkit().getScreenSize(); Dimension J = getSize(); if(J.height > T.height) setSize(J.width,T.height); if(J.width > T.width) setSize(T.width,J.height); setLocation((T.width - J.width)/2, (T.height - J.height)/2); } public static void main(String[] args){ Janela jan = new Janela("Janela", new Dimension(300,200)); jan.show(); }} --------------------------------------------------------------------- //WindowListener = Para fechar eventos de janela, este objeto tem que conter os 7 métodos desta interface. //Existem eventos de Janela: //Public void windowClosing(WindowEvent e). //Public void windowOpened(WindowEvent e). //Public void windowIconified(WindowEvent e). //Public void windowDeiconified(WindowEvent e). //Public void windowClosed(WindowEvent e). //Public void windowActivated(WindowEvent e). //Public void windowDeactivated(WindowEvent e). import java.awt.*; import java.awt.event.*; public class EventoJanela extends Janela implements WindowListener{ public EventoJanela() { super("Eventos de janela", new Dimension(300,200)); getContentPane().setBackground(Color.CYAN); addWindowListener(this); addWindowListener(new WindowListener(){ public void windowClosing(WindowEvent e){System.exit(0);}

Page 42: Programando Em Java

public void windowOpened(WindowEvent e){} public void windowIconified(WindowEvent e){} public void windowDeiconified(WindowEvent e){} public void windowClosed(WindowEvent e){} public void windowActivated(WindowEvent e){} public void windowDeactivated(WindowEvent e){} }); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){System.exit(0);}}); addWindowListener(new Ouvinte1()); addWindowListener(new Ouvinte2()); } public void windowClosing(WindowEvent e){} public void windowOpened(WindowEvent e){} public void windowIconified(WindowEvent e){} public void windowDeiconified(WindowEvent e){} public void windowClosed(WindowEvent e){} public void windowActivated(WindowEvent e){} public void windowDeactivated(WindowEvent e){} public static void main(String[] args){ new EventoJanela().show();} } class Ouvinte1 implements WindowListener{ public void windowClosing(WindowEvent e){System.exit(0);} public void windowOpened(WindowEvent e){} public void windowIconified(WindowEvent e){} public void windowDeiconified(WindowEvent e){} public void windowClosed(WindowEvent e){} public void windowActivated(WindowEvent e){} public void windowDeactivated(WindowEvent e){} } class Ouvinte2 extends WindowAdapter{ public void windowClosing(WindowEvent e){System.exit(0);}}

Page 43: Programando Em Java

Programa 18: Frames – LeiauteGrade Todo programa de Frames há como base a classe “Janela”. import java.awt.*; import javax.swing.*; public class Janela extends JFrame{ public Janela(String titulo, Dimension tamanho){ setTitle(titulo); setSize(tamanho); centralize(); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); getContentPane().setLayout(null); getContentPane().setBackground(new Color(200,230,200)); Image Ico; Ico = Toolkit.getDefaultToolkit().getImage("exemplos.gif"); setIconImage(Ico);} public void centralize(){ Dimension T = Toolkit.getDefaultToolkit().getScreenSize(); Dimension J = getSize(); if(J.height > T.height) setSize(J.width,T.height); if(J.width > T.width) setSize(T.width,J.height); setLocation((T.width - J.width)/2, (T.height - J.height)/2); } public static void main(String[] args){ Janela jan = new Janela("Janela", new Dimension(300,200)); jan.show(); }}

Page 44: Programando Em Java

import java.awt.*; import javax.swing.*; public class LeiauteGrade extends Janela{ public LeiauteGrade(){ super("Leiaute de Grade", new Dimension(300,150)); GridLayout gl = new GridLayout(3,2,0,0); getContentPane().setLayout(gl); JButton B1 = new JButton("Linha 1 - Coluna 1"); JButton B2 = new JButton("Linha 2 - Coluna 2"); JButton B3 = new JButton("Linha 3 - Coluna 3"); JButton B4 = new JButton("Linha 4 - Coluna 4"); JButton B5 = new JButton("Linha 5 - Coluna 5"); JButton B6 = new JButton("Linha 6 - Coluna 6"); getContentPane().add(B1); getContentPane().add(B2); getContentPane().add(B3); getContentPane().add(B4); getContentPane().add(B5); getContentPane().add(B6);} public static void main(String[] args){ new LeiauteGrade().show();}}

Programa 19: Frames – MenuPopup Todo programa de Frames há como base a classe “Janela”. Neste programa teremos que clicar com o botão direito do mouse dentro do MenuPopup e aparecerá as cores e ao clicar em cada opção a janela segue a respectiva cor acionada.

Page 45: Programando Em Java

import java.awt.*; import javax.swing.*; public class Janela extends JFrame{ public Janela(String titulo, Dimension tamanho){ setTitle(titulo); setSize(tamanho); centralize(); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); getContentPane().setLayout(null); getContentPane().setBackground(new Color(200,230,200)); Image Ico; Ico = Toolkit.getDefaultToolkit().getImage("exemplos.gif"); setIconImage(Ico);} public void centralize(){ Dimension T = Toolkit.getDefaultToolkit().getScreenSize(); Dimension J = getSize(); if(J.height > T.height) setSize(J.width,T.height); if(J.width > T.width) setSize(T.width,J.height); setLocation((T.width - J.width)/2, (T.height - J.height)/2); } public static void main(String[] args){ Janela jan = new Janela("Janela", new Dimension(300,200)); jan.show(); }} import java.awt.*; import java.awt.event.*; import javax.swing.*; public class MenuPopup extends Janela implements ActionListener{ ButtonGroup BG1 = new ButtonGroup(); JPopupMenu PopMenu = new JPopupMenu(); JRadioButtonMenuItem M1 = new JRadioButtonMenuItem("Vermelho"); JRadioButtonMenuItem M2 = new JRadioButtonMenuItem("Verde"); JRadioButtonMenuItem M3 = new JRadioButtonMenuItem("Azul"); public MenuPopup(){

Page 46: Programando Em Java

super("Menupopub", new Dimension(200,150)); getContentPane().setLayout(new BorderLayout()); getContentPane().setBackground(new Color(255,255,255)); PopMenu.add(M1); PopMenu.add(M2); PopMenu.add(M3); BG1.add(M1); BG1.add(M2); BG1.add(M3); M1.addActionListener(this); M2.addActionListener(this); M3.addActionListener(this); addMouseListener(new MouseAdapter(){ public void mouseReleased(MouseEvent e){ if(e.isPopupTrigger()) PopMenu.show(e.getComponent(),e.getX(),e.getY());}});} public void actionPerformed(ActionEvent e){ Color c = new Color(0,0,0); if(e.getSource()==M1) c=Color.RED; if(e.getSource()==M2) c=Color.GREEN; if(e.getSource()==M3) c=Color.BLUE; getContentPane().setBackground(c); repaint();} public static void main(String[] args) {new MenuPopup().show();}}

20 – Interfaces Gráficas Programa 20: Caixas de Diálogo – Interfaces Gráficas

Page 47: Programando Em Java

import java.awt.*; import javax.swing.*; public class Janela extends JFrame{ public Janela(String titulo, Dimension tamanho){ setTitle(titulo); setSize(tamanho); centralize(); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); getContentPane().setLayout(null); getContentPane().setBackground(new Color(200,230,200)); Image Ico; Ico = Toolkit.getDefaultToolkit().getImage("exemplos.gif"); setIconImage(Ico);} public void centralize(){ Dimension T = Toolkit.getDefaultToolkit().getScreenSize(); Dimension J = getSize(); if(J.height > T.height) setSize(J.width,T.height); if(J.width > T.width) setSize(T.width,J.height); setLocation((T.width - J.width)/2, (T.height - J.height)/2); } public static void main(String[] args){ Janela jan = new Janela("Janela", new Dimension(300,200)); jan.show(); }} -------------------------------------------------------------- //showMessageDialog(): Informa ao usuário algo que ocorreu. //showConfirmDialog(): Solicita uma confirmação. //showInputDialog(): Solicita que o usuário informe um valor. //showOptionDialog(): Solicita que o usuário faça uma opção. import java.awt.*; import java.awt.event.*; import javax.swing.*; public class DialogoPadrao extends Janela implements ActionListener{ JButton B1=new JButton("Mensagem"); JButton B2=new JButton("Confirmação"); JButton B3=new JButton("Entrada");

Page 48: Programando Em Java

JButton B4=new JButton("Opção"); JLabel L1=new JLabel("Resposta"); JOptionPane d=new JOptionPane(); ImageIcon Ico=new ImageIcon("Exemplos.gif"); String[] t={"Mensagem","Confirme","Opte","Informe"}; String[] o={"Tudo","Nada"}; String[] r={"Sim","Não"}; public DialogoPadrao(){ super("Dialogos padronizados",new Dimension(400,100)); getContentPane().setLayout(new BorderLayout()); B1.addActionListener(this); B2.addActionListener(this); B3.addActionListener(this); B4.addActionListener(this); JPanel P1=new JPanel(); P1.setOpaque(false); P1.add(B1); P1.add(B2); P1.add(B3); P1.add(B4); getContentPane().add(P1,BorderLayout.CENTER); getContentPane().add(L1,BorderLayout.SOUTH);} public void actionPerformed(ActionEvent e){ int i=0; String s=new String(); if(e.getSource()==B1){ d.showMessageDialog(this,"Erro",t[0],0); d.showMessageDialog(this,"Informação",t[0],1); d.showMessageDialog(this,"Aviso",t[0],2);} if(e.getSource()==B2){ i=d.showConfirmDialog(this,"Sim ou Não?",t[1],0); if(i==-1)L1.setText("Resposta: Nenhuma"); if(i==0)L1.setText("Resposta: Yes"); if(i==1)L1.setText("Resposta: No"); i=d.showConfirmDialog(this,"OK?",t[1],2); if(i==-1)L1.setText("Resposta: Nenhuma"); if(i==0)L1.setText("Resposta: OK"); if(i==0)L1.setText("Resposta: Cancel");} if(e.getSource()==B3){ s=d.showInputDialog(this,"Qual é o seu nome?", t[2],3); L1.setText("Resposta: "+s);

Page 49: Programando Em Java

s=(String)d.showInputDialog(this,"O que você quer?", t[2],3,null,o,"Nada"); L1.setText("Resposta:" +s);} if(e.getSource()==B4){ i=d.showOptionDialog(this,"Sim?",t[1],0,3,null,r,"Não"); if(i==-1)L1.setText("Resposta: Nenhuma"); if(i==0)L1.setText("Resposta: SIM"); if(i==1)L1.setText("Resposta: Não");}} public static void main(String[] args){ new DialogoPadrao().show();}}

Programa 21 – Applet

Page 50: Programando Em Java

Para começarmos a aplicação de um Applet abra o Jcreator e opte por:

Opte pela opção AloApplet.java

Page 51: Programando Em Java

Depois de compilar e executar, vai onde o arquivo está armazenado, neste caso em: C:\Program Files\Xinox Software\JCreator LE\MyProjects\AloApplet\ e veja o .html onde exibirá o applet. import java.awt.*; import java.applet.*; public class AloApplet extends Applet { public void init() { } public void paint(Graphics g) { g.drawString("Mundo da ExLibris!!", 50, 60 ); } } Programa 22 – Applet public class Pontos { protected int x, y; //coordenadas do ponto public Pontos(){

Page 52: Programando Em Java

setPonto(0,0); } public Pontos(int a, int b){ setPonto(a, b); } public void setPonto(int a, int b){ x=a; y=b; } public int getX(){ return x; } public int getY(){ return y; } public String toString(){ return "[" + x + "," + y + "]"; } } public class Circulo extends Pontos{ protected double raio; public Circulo(){ setRaio(0); } public Circulo(double r, int a, int b){ super(a, b); setRaio(r); } public void setRaio(double r){ raio=(r >= 0.0 ? r : 0.0); } public double getRaio(){ return raio; } public double area(){ return Math.PI*raio*raio; }

Page 53: Programando Em Java

public String toString(){return ("Centro" + super.toString() + "; Raio =" + raio); } } import java.awt.Graphics; import java.applet.Applet; import java.text.DecimalFormat; public class Teste extends Applet{ private Circulo c; public void init(){ c = new Circulo(2.5, 37, 43); } public void paint(Graphics g){ DecimalFormat precisao2 = new DecimalFormat("#.00"); g.drawString("Coordenada X = " + c.getX(), 25, 25); g.drawString("Coordenada Y = " + c.getY(), 25, 40); g.drawString("Raio do Círculo = " + c.getRaio(), 25, 55); c.setRaio(4.25); c.setPonto(2, 2); g.drawString("Nova posição do círculo e o seu raio: ", 25, 85); g.drawString(c.toString(), 40, 100); g.drawString("A área do círculo é: " + precisao2.format(c.area()), 25, 115); } }

Page 54: Programando Em Java

21- Programa de Conexão com o Banco de Dados Em primeiro lugar você precisa criar um banco de dados, seja ele, no Microsoft Access, MySQL, Oracle, etc. INCLUSÃO NO BD import java.awt.*; import java.awt.event.*; import java.sql.*; import javax.swing.*; public class Inclusao extends JFrame{ Connection con; Statement stm; JTextField T1,T2,T3; JButton B1; public Inclusao(String Fonte){ monteInterface(); int it=conecte_se(Fonte); if(it==0){show();return;}

Page 55: Programando Em Java

String st=""; if(it==1)st="Classe JdbcOdbcDriver não encontrada!"; if(it==2)st="Falha durante tentativa de conexão!"; JOptionPane.showMessageDialog(null,st,"Erro",0); System.exit(0); } public void monteInterface(){ setTitle("Inclusão"); setSize(300,200); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); T1=new JTextField(); T2=new JTextField(); T3=new JTextField(); B1=new JButton("Incluir",new ImageIcon("Salvar.gif")); B1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){inclua();}}); Container C=getContentPane(); C.setLayout(new GridLayout(7,1)); C.add(new JLabel("Codigo:")); C.add(T1); C.add(new JLabel("Nome:")); C.add(T2); C.add(new JLabel("Preço")); C.add(T3); C.add(B1); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e){ desconecte_se();}});} public int conecte_se(String Fonte){ try{Class.forName("sun.jdbc.odbc.jdbcOdbcDriver");} catch(ClassNotFoundException cnfe){return 1;} try { con=DriverManager.getConnection("jdbc:odbc:"+Fonte); stm=con.createStatement(); return 0; } catch(SQLException sqle){return 2;}} public void desconecte_se(){ try{ stm.close(); con.close();}

Page 56: Programando Em Java

catch(SQLException sqle){} } public void inclua(){ String st="INSERT INTO VALUES("+"'"+T1.getText().trim()+"',"+ "'"+T2.getText().trim()+"',"+ "'"+T3.getText().trim()+"')"; try { stm.executeUpdate(st); con.commit(); st="Registro incluído com sucesso!"; JOptionPane.showMessageDialog(this,st,"Informação",1); } catch(SQLException sqle){ st="Erro ocorrido!"+ "\nCódigo:" + sqle.getErrorCode()+ "\nMensagem:"+sqle.getMessage(); JOptionPane.showMessageDialog(this,st,"Erro",0);}} public static void main(String[] args){new Inclusao("Banco");}} Para abrir uma conexão com um Banco de Dados, através da qual possam ser executadas operações de definição e de manipulação de dados, é preciso realizar duas tarefas distintas: registrar o driver que será utilizado e solicitar ao gerenciador de drivers a abertura de conexão. Lembre-se que será utilizada a fonte de dados ODBC, chamada Banco, para estabelecer uma conexão com o banco de dados que fora criado anteriormente. O próximo exemplo ilustra como estabelecer uma conexão com o banco de dados que fora criado. Abra um novo documento em seu editor de texto, digite o código 7.2, salve-o como Conexão.java e execute-o. Código 7.2 – Conexão.java import java.sql.*; import javax.swing.*; public class Conexao{

Page 57: Programando Em Java

Connection con; String st =""; try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");} catch(ClassNotFoundException cnfe){ st =="Classe JdbcOdbcDriver não encontrada!"; JOptionPane.showMessageDialog(null,st,"Erro",0); System.exit(0); } try { com ==DriverManager.getConnection("jdbc:odbc:Banco"); st == "Conexão estabelecida"; JOptionPane.showMessageDialog(null,st,"Informação",1); con.close(); st == "Conexão fechada"; JOptionPane.showMessageDialog(null,st,"Informação",1); } catch(SQLException sqle){ st == "Falha Ocorrida!"; JOptionPane.showMessageDialog(null,st,"Erro",0); } System.exit(0);}} Conclusão JAVA é hoje a linguagem de programação mais bem aceita pelo mercado de computação, pois é a única que funciona em qualquer Sistema Operacional e por isso mesmo, sendo uma linguagem Orientada a Objetos e com o JVM (Java Virtual Machine) será durante muitos anos a mais requisitada para trabalho por grandes empresas. É a linguagem que se for bem aprendida, dedicada e estudada pelo programador trará rapidamente retorno financeiro e tranqüilidade em termos de empregabilidade, pois hoje em dia, há muito mais vagas disponíveis do que programadores habilitados em JAVA. Com o aprendizado desde Algoritmos Computacionais, Engenharia de Software, SQL, UML e JAVA, caso o leitor seja esforçado e tenha interesse em aprender, certamente irá proporcioná-lo mudanças significativas em sua vida e é justamente isso que fez eu escrever este livro, pois meu intuito e ver pessoas se qualificando profissionalmente em JAVA.

Page 58: Programando Em Java