Sei sulla pagina 1di 58

Programando em Java A partir de agora, comearemos a fazer vrios tipos de programa em Java, onde podemos seguir uma rotina

de: Nome da Classe Atributos Construtor Funo Classe Principal Nome da Classe public static void main (String[] args) Instanciar a Classe, Exemplo: Contador num = new Contador(); Chamar as funes da classe anterior

Exemplo de novo programa em Java: Programa 2: Modifique a classe Lampada para que esta contenha tambm um campo que indique quantas vezes a lmpada foi acesa. Tente usar uma instncia 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;

} } --------------------------------------------------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 {

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:

Programa 3: Faa a soma dos 100 primeiros nmeros 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(); }}

No exemplo acima, comeamos com a classe Soma100 e depois ao invs de colocarmos o nome da outra como Principal colocamos como soma, ou seja, o nome no o mais importante e sim que faamos na mesma todos os requisitos para que seja a classe Principal e seja a responsvel por rodar o programa. Programa 4: Faa em JAVA todos os nmeros que so divisveis 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"); } }

Quando colocamos for (int i=4; i<=200; i++), significa que o looping comear de 4, ir at o nmero 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 nmero dividido por 4 == 0, ser um dos nmeros que desejo. X = 0, significa que estou atribuindo a varivel X o valor 0. X == 0, significa que estou comparando a varivel X com o valor 0. Quando colocamos System.out.println (i+"\n"), significa que apresento todos os nmeros que esto na condio acima apresentados e o \n para que apaream todos um debaixo do outro.

Programa 5: Foi feita uma pesquisa de audincia de canal de TV em vrias casas de uma certa cidade. Para cada casa visitada foi fornecido o nmero do canal (2, 4, 6, 7, 9, 13) e o nmero de pessoas que estavam assistindo a ele naquela casa. Fazer um programa que: leia um nmero indeterminado de dados, sendo que canal 0 (zero) representa fim da entrada de dados;

calcule a percentagem de audincia 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+"

("+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;

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: ");

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();

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

Looping com Java

Java O switch

O valor comparado com cada um dos casos relacionados. Se a combinao no for encontrada, o bloco default executado. O default opcional, ento caso este no esteja associado ao comando, o bloco do swicth poder no executar nada. Java Loop For for(inicializao; teste; incremento) { bloco de comandos; } Voc tambm pode incluir um comando simples, sendo assim no h necessidade da utilizao 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 condio verdadeira.

While (condio){ bloco de comandos; } A condio uma expresso booleana. Exemplo: int count=0; while(count < array1.length && array1[count]!=0){ array2[count]=(float) array1[count++]; } Java Loop Do A principal diferena entre o while e o do que o teste condicional no caso do while feita antes de se executar o cdigo interno ao loop. Desta forma, o que pode acontecer no while que o loop pode no ser executado se a condio for false. J no loop do o corpo do loop executado pelo menos uma vez, pois o teste de permanncia 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;

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 varivel x = + x); System.out.println(O valor da varivel y = + y); System.out.println(O valor da varivel z = + z); } }

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 Opo (Valor igual a zero)"); break; case 1: System.out.println("Segunda Opo (Valor igual a um)"); break; default: System.out.println("Outras Opes (Valor maior que um)"); break; } } } {

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); }}}

Programa 9: Faa um programa da classe Empregado colocando as opo de menu: 1 Cadastrar o Empregado 2 Alterar o Empregado 3 Listar o Empregado 4 - Sair public class Empregado { {nome = n; salario = s; passagem = pass; } public Empregado (String n, double s, double pass)

public void imprime() { salario); } System.out.println ("Nome = " + nome + " Salrio = " +

public String getNome() { } return nome;

public double getSalario() { return salario;

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 { { String nome; double salario; public static void main (String[] args)

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 nmero 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:

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' + "Alterao de nome efetuada com sucesso!"); break; case 2: double novoSalario = Console.readDouble("Digite o novo salrio: "); umEmpregado.setSalario(novoSalario); System.out.println('\n' + "Alterao de salrio efetuada com sucesso!"); break; default: System.out.println('\n' + "Opo invlida!"); break; } break; case 3:

System.out.println(""); umEmpregado.imprime(); break; case 4: continua = false; break; default: System.out.println('\n' + "Opo invlida!"); break;}}}}

Classes e Herana A derivao 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 mtodos da superclasse;

A grande vantagem a possibilidade de se redefinir algumas caractersticas herdadas; Em Java, no existe o conceito de herana mltipla, entretanto o programador pode fazer uso do conceito de interfaces; Um objeto de uma subclasse tambm um objeto da superclasse, entretanto, a recproca no verdadeira; Quando um membro de uma superclasse no serve para a subclasse, o programador pode reescrev-lo e adequ-lo para a subclasse. Mtodos, com exceo dos construtores, so herdados da mesma forma que os atributos definidos numa superclasse; Os construtores definidos na superclasse nunca so herdados pelas subclasses, no importando os seus atributos de acesso; O mtodo construtor da superclasse deve sempre ser chamado dentro do mtodo construtor da subclasse; A palavra chave super chama esse construtor, recebendo os devidos parmetros; Este deve ser o primeiro comando do construtor da subclasse, caso no seja, o compilador colocar o construtor default da superclasse (aquele sem parmetros);

Programa 10: Herana

Superclasse: Classe: Funcionrio Atributo: String m_nome; Int m_idade Funo: Fn_listar ()

Subclasse: Classe: gerente Atributo: Int m_subordinados Funo: Fn_exibe_G

Subclasse: Classe: diretor Atributo: String m_filial Funo: 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); }}}

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();}}

Na superclasse fazemos normalmente colocando nos atributos o protected. Como a subclasse herda atributos e funes da superclasse, colocamos no atributo da subclasse o private, pois ela herda o atributo da superclasse e no o contrrio. 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 atribuda. Na classe Principal podemos instanciar uma subclasse e chamar uma funo da superclasse, pois estamos em uma HERANA, onde a subclasse herda atributos e funes da superclasse. Programa 11: Herana

Superclasse: Classe: Professor Atributo: string p_nome Funo: fn_listar ()

Subclasse:

Classe: Aluno Atributo: int a_nota Funo: 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[]) {

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

Programa 12: Herana Exemplo : Neste exemplo so usados os conceitos de superclasse, subclasse e herana; A classe Animal possui um construtor e um mtodo; A classe Cachorro uma subclasse da classe Animal e possui dois construtores e nenhum mtodo. 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);}}

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

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(); } }

Programa 13: Herana SuperClasse: Presidente Atributos: String nome Int idade Funo: fn_executar_poder() SubClasse: Deputado Atributo: int registro Funo: fn_fazerleis_F() SubClasse: Ministro Atributo: int CPF Funo: fn_executarmin () SubClasse: Vereador Atributo: int votos Funo: 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.");

} 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.";

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) {

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);

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: Herana Neste exemplo ser usado sobrecarga de mtodos que simula o som produzido por um animal; De acordo com a subclasse que atribuida a uma referncia superclasse (Animal) o mtodo correto chamado; 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); } public void sound(){ }//este mtodo 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

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"); } }

--------------------------------------------------------------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 so subclasses da classe Object, por default; Uma varivel do tipo Object pode conter um objeto de qualquer classe: isto pode ser til quando se deseja, por exemplo, escrever um mtodo 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.

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 questo finalize()- acionado pelo garbage collector para limpar referencias que no esto sendo usadas em memria. Classes Abstratas (Abstract Classes): Uma classe abstrata aquela no qual um ou mais mtodos so declarados mas no definidos; O corpo que representa a definio desses mtodos omitido; a definio desses mtodos dever ser implementada nas subclasses derivadas a partir da classe abstrata que contm a sua declarao; A palavra chave abstract deve ser colocada na declarao da classe (public abstract class Animal) ou (abstract public class Animal); Classes Abstratas (cont.): O mesmo vale para a declarao dos mtodos abstratos: (public abstract void sound()); Um mtodo abstract nunca pode ter atribuido de acesso private j que mtodos com esse atributo nunca so herdados; Podemos derivar classes a partir de uma classe abstrata (subclasses); Classes Abstratas (cont.): No se pode instanciar um objeto a partir de uma classe abstrata, mas pode-se fazer referncia a uma classe abstrata (declarar uma varivel com o seu tipo); essa varivel pode armazenar objetos de classes derivadas (subclasses) da classe abstrata; Quando se deriva uma classe a partir de uma classe abstrata no h necessidade de definirem todos os mtodos abstratos na subclasse; nesse caso, a subclasse tambm ser abstrata; Caso todos os mtodos sejam definidos, ento a classe no abstrata.

Programa 15: Polimorfismo

Polimorfismo Agregao

loja CD CDS[] Int m_quant fn_armazenar()

CD String m_nome String m_titulo Fn_Rnome()

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:"+C Ds [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;

} 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);}}

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, verso extendida a java.awt //Toolkit = Converter do pacote java.awt //Frame f=new Frame(); //Para acessar deve recuper-lo utilizando o mtodo //getContentPane().add(<Nome do Componente>); //f.add(< nomeDoComponente>); //Background = cor de fundo //SetForeground() = cor da fonte //GetScreenSize() = Para obter a resoluo do vdeo(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 no iro 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(){

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;

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 mtodos 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);}

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);}}

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(); }}

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 boto direito do mouse dentro do MenuPopup e aparecer as cores e ao clicar em cada opo a janela segue a respectiva cor acionada.

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(){

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 Grficas

Programa 20: Caixas de Dilogo Interfaces Grficas

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 usurio algo que ocorreu. //showConfirmDialog(): Solicita uma confirmao. //showInputDialog(): Solicita que o usurio informe um valor. //showOptionDialog(): Solicita que o usurio faa uma opo. 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("Confirmao"); JButton B3=new JButton("Entrada");

JButton B4=new JButton("Opo"); 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","No"}; 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,"Informao",t[0],1); d.showMessageDialog(this,"Aviso",t[0],2);} if(e.getSource()==B2){ i=d.showConfirmDialog(this,"Sim ou No?",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);

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,"No"); if(i==-1)L1.setText("Resposta: Nenhuma"); if(i==0)L1.setText("Resposta: SIM"); if(i==1)L1.setText("Resposta: No");}} public static void main(String[] args){ new DialogoPadrao().show();}}

Programa 21 Applet

Para comearmos a aplicao de um Applet abra o Jcreator e opte por:

Opte pela opo AloApplet.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(){

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; }

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 Crculo = " + c.getRaio(), 25, 55); c.setRaio(4.25); c.setPonto(2, 2); g.drawString("Nova posio do crculo e o seu raio: ", 25, 85); g.drawString(c.toString(), 40, 100); g.drawString("A rea do crculo : " + precisao2.format(c.area()), 25, 115); } }

21- Programa de Conexo com o Banco de Dados Em primeiro lugar voc precisa criar um banco de dados, seja ele, no Microsoft Access, MySQL, Oracle, etc.

INCLUSO 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;}

String st=""; if(it==1)st="Classe JdbcOdbcDriver no encontrada!"; if(it==2)st="Falha durante tentativa de conexo!"; JOptionPane.showMessageDialog(null,st,"Erro",0); System.exit(0); } public void monteInterface(){ setTitle("Incluso"); 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("Preo")); 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();}

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 includo com sucesso!"; JOptionPane.showMessageDialog(this,st,"Informao",1); } catch(SQLException sqle){ st="Erro ocorrido!"+ "\nCdigo:" + sqle.getErrorCode()+ "\nMensagem:"+sqle.getMessage(); JOptionPane.showMessageDialog(this,st,"Erro",0);}} public static void main(String[] args){new Inclusao("Banco");}}

Para abrir uma conexo com um Banco de Dados, atravs da qual possam ser executadas operaes de definio e de manipulao de dados, preciso realizar duas tarefas distintas: registrar o driver que ser utilizado e solicitar ao gerenciador de drivers a abertura de conexo. Lembre-se que ser utilizada a fonte de dados ODBC, chamada Banco, para estabelecer uma conexo com o banco de dados que fora criado anteriormente. O prximo exemplo ilustra como estabelecer uma conexo com o banco de dados que fora criado. Abra um novo documento em seu editor de texto, digite o cdigo 7.2, salve-o como Conexo.java e execute-o.

Cdigo 7.2 Conexo.java import java.sql.*; import javax.swing.*; public class Conexao{

Connection con; String st =""; try{Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");} catch(ClassNotFoundException cnfe){ st =="Classe JdbcOdbcDriver no encontrada!"; JOptionPane.showMessageDialog(null,st,"Erro",0); System.exit(0); } try { com ==DriverManager.getConnection("jdbc:odbc:Banco"); st == "Conexo estabelecida"; JOptionPane.showMessageDialog(null,st,"Informao",1); con.close(); st == "Conexo fechada"; JOptionPane.showMessageDialog(null,st,"Informao",1); } catch(SQLException sqle){ st == "Falha Ocorrida!"; JOptionPane.showMessageDialog(null,st,"Erro",0); } System.exit(0);}}

Concluso
JAVA hoje a linguagem de programao mais bem aceita pelo mercado de computao, 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 tranqilidade em termos de empregabilidade, pois hoje em dia, h muito mais vagas disponveis do que programadores habilitados em JAVA. Com o aprendizado desde Algoritmos Computacionais, Engenharia de Software, SQL, UML e JAVA, caso o leitor seja esforado e tenha interesse em aprender, certamente ir proporcion-lo mudanas significativas em sua vida e justamente isso que fez eu escrever este livro, pois meu intuito e ver pessoas se qualificando profissionalmente em JAVA.

Potrebbero piacerti anche