Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Java
Portvel
Gratuita Robusta
Java
Cria um arquivo de cdigo-fonte seguindo a sintaxe definida pela linguagem. Compila o cdigo-fonte usando o compilador java (javac). Executa o bytecode compilado (.class) em uma mquina virtual java (JVM).
Java 1.02
Java 1.1
500 classes Um pouco mais rpida Mais recursos, mais amiguvel Cdigo de GUI mais adequado
2.300 classes Muito mais rpida Pode (em algumas condies) ser executada em velocidades condizentes Profissional e poderosa 3 verses (J2ME, J2SE, J2EE)
Garbage Collector
A linguagem Java tem alocao dinmica de memria em tempo de execuo. Durante o ciclo de execuo do programa, o Java verifica se as variveis de memria esto sendo utilizadas, caso no estejam libera automaticamente a rea para uso atravs do Garbage Collector.
Objetos e Classes
Uma classe em Java sempre declarada com a palavra-chave class seguida do nome da classe. O nome da classe no pode conter espaos, deve sempre ser iniciado por uma letra (incluindo _ e $).
O operador new responsvel por instanciar um objeto da classe especificada. Ele aloca memria para o objeto, chama o construtor e retorna uma referncia para o mesmo (que pode ser armazenada em uma varivel).
Os atributos definem o estado do objeto, atravs dos valores armazenados. Devem ser declarados dentro do corpo da class (entre o { e } ). Devem conter o tipo de dados que iro conter e o nome.
boolean: valores lgicos (true ou false) byte: 1 byte, -128 e 127 short: 2 bytes, -32768 e 32767 int: 4 bytes, -2147483648 e 2147483647 long: 8 bytes -9223372036854775808 e 9223372036854775807 char: 2 bytes, caracteres Unicode entre 0 e 65535 float: 4 bytes, 1,4e-45 e 3,4e+38 (7 dgitos de preciso) long: 8 bytes, 4,9e-324 e 1,7e+308 (15 dgitos de preciso)
So os tipos representados por instncias de classes. Um tipo caracterizado pelas operaes que voc pode realizar sobre este tipo. Exemplos:
length() retorna o tamanho da String toUpperCase() converte a String para caracteres maisculos toLowerCase() converte a String para caracteres minsculos ...
Um mtodo deve conter uma assinatura que fornece informaes necessrias para invocar o mtodo. Os nomes dos mtodos devem ser iniciados por uma letra (incluindo _ e $), devem ser compostos de uma nica palavra e podem conter nmeros. Deve ser definido um tipo de dados de retorno (void caso no haja retorno).
Deve ser definida uma lista de parmetros contendo tipo e nome (entre parnteses) O corpo do mtodo (ou implementao) deve ser descrito entre chaves { e }.
Atributos de uma classe so vlidos por toda a classe. Variveis (primitivas ou de classe) declaradas de dentro de mtodos s sero vlidas dentro dos respectivos mtodos. Se uma varivel declarada dentro de um bloco de comandos (por exemplo: if, for) ela s vlida no bloco no qual foi declarada. Variveis passadas como argumentos para mtodos somente so vlidas dentro dos mtodos.
Modificadores de acesso
Exerccio 1
preco : int // armazena o valor do ticket que a mquina gera saldo: int // armazena o saldo atual do cliente total: int // armazena o total coletado pela mquina
retornaPreco: retorna o valor do preo do bilhete retornaSaldo: retorna o saldo atual do cliente retornaTotal: retorna o total de dinheiro coletado pela mquina insereDinheiro: permite que o cliente insira dinheiro na mquina para poder um imprimir um bilhete imprimeBilhete: imprime um bilhete (desde que o cliente tenha inserido o dinheiro suficiente)
Exerccio 1
Crie uma classe para testar a MaquinaDeBilhetes. Utilize o mtodo insereDinheiro para simular a insero de uma quantidade de dinheiro na mquina e depois use o mtodo retornaSaldo para verificar se a mquina tem o registro correto da quantidade inserida. Voc pode inserir vrias quantidades separadamente de dinheiro na mquina, exatamente como inseriria vrias moedas ou notas em uma mquina real. Insira a quantidade de dinheiro exata necessria para um bilhete. Como essa uma mquina muito simples, o bilhete no ser emitido automaticamente; portanto chame o mtodo imprimeBilhete.
Exerccio 1
Qual valor retornado se voc verificar o saldo da mquina aps imprimir o bilhete? Experimente inserir quantidades diferentes de dinheiro antes de imprimir o bilhete. Voc consegue imprimir um bilhete com valor inferior ao preo? O que acontece? Crie outra mquina de imprimir bilhetes com um preo diferente. Compre um bilhete dessa mquina. O bilhete impresso diferente?
Exerccio 2
Idade maior ou igual a 18 anos e menor ou igual a 25 anos: valorPremio deve conter o valorPremio atual acrescido de 20%
Exerccio 2
Idade superior a 25 anos e menor ou igual a 36 anos: valorPremio deve conter o valorPremio atual acrescido de 15% Idade superior a 36 anos: valorPremio deve conter o valorPremio atual acrescido de 10%
oferecerDesconto(): no retorna valor, mas recebe o parmetro cidade, que ir conter o nome da cidade para clculo do desconto (use equals() para comparar Strings)
Curitiba 20% de desconto Rio de Janeiro 15% de desconto So Paulo 10% de desconto Belo Horizonte 5% de desconto Demais cidades no possuem desconto.
Exerccio 2
Desenvolve uma segunda classe chamada TestaApolice com o mtodo main de acordo com a descrio abaixo:
Crie um objeto do tipo Apolice; Execute o mtodo imprimir; Execute o mtodo calcularPremioApolice; Execute o mtodo imprimir; Execute o mtodo oferecerDesconto passando como parmetro Curitiba; Execute o mtodo imprimir novamente.
Exerccio 3
Implemente um programa que imprima na tela os fatoriais de 1 a 10. O fatorial de um nmero n n * n-1 * n-2 ... at n = 1. Se possvel utilize recurso para resolver o problema. Devem ser criadas 2 classes, uma para teste e outra para clculo do Fatorial.
Uma classe no um objeto (mas usada para constru-lo). Uma classe um projeto de um objeto. Ela informa a mquina virtual como criar um objeto desse tipo especfico. Cada objeto criado a partir dessa classe ter seus prprios valores para as variveis de instncia da classe.
Mtodos
Abandonando a main
Se voc estiver codificando na sua funo main ainda no est realmente trabalhando de forma orientada a objetos. adequado executar um programa de teste dentro da main, mas em um aplicativo OO real, voc precisar de objetos que se comuniquem com outros objetos e no de um mtodo main() esttico criando e testando objetos. As duas finalidades da main so:
O jogo de adivinhao envolve um objeto jogo e trs objetos jogador. O jogo gera um nmero aleatrio entre 0 e 9 e os trs objetos jogador tentam adivinh-lo. Classes:
Lgica:
na classe CarregadorDeJogo que o aplicativo iniciado, ela possui o mtodo main. No mtodo main, um objeto JogoDeAdivinhacao criado e seu mtodo iniciaJogo chamado.
Lgica:
No mtodo iniciaJogo do objeto JogoDeAdivinhacao que o jogo inteiro se desenrola. Ele cria os trs jogadores e, em seguida, pensa em um nmero aleatrio (aquele que deve ser adivinhado). Depois solicita a cada jogador que adivinhe, verifica o resultado e exibe informaes sobre o(s) jogador(es) vencedor(es) na tela ou pede que adivinhem novamente.
Exerccio 4 - Classes
Relembrando...
Uma classe descreve como criar um objeto desse tipo de classe. Uma classe como um projeto. Um objeto deve saber cuidar de si prprio. No necessrio conhecer com a maneira como ele age internamente.
Um objeto conhece coisas e faz coisas.
Relembrando...
As coisas que o objeto conhece sobre si prprio se chamam atributos. Eles representam o estado de um objeto. As coisas que um objeto faz so chamadas de mtodos. Eles representam o comportamento de um objeto. Quando uma classe criada, talvez voc queria criar uma classe de teste separada, para criar objetos do seu novo tipo de classe. Em tempo de execuo, um programa Java nada mais do que objetos comunicando-se com outros objetos.