Facom39502 Java
Facom39502 Java
Faculdade de Computação
Java
2023/1
Sumário
1 Java
A linguagem Java II
A linguagem Java IV
15 //processamento
16 mediaAritmetica = (nota1+nota2+nota3+nota4)/4;
17 //resultados
18 System.out.printf ("A média aritmética: %.2f",
mediaAritmetica);
19 if (mediaAritmetica >= 7.0){
20 System.out.printf("Aluno aprovado!");
21 }//fim do if
22 } //fim do método main
23 } //fim da classe média
Declarando classes II
Declarando classes IV
carroDoJoao:
marca = “Fiat”
modelo = “Uno”
Carro placa = “ABC-1234”
≪instância de≫
marca: String acelerar()
modelo: String
placa: String carroDaMaria:
≪instância de≫
acelerar() marca = “Ferrari”
modelo = “F50”
placa = “DEF-5678”
acelerar()
acelerar()
Tipos de dados II
Tipos primitivos:
Números inteiros:
Tipo Descrição Faixa de valores
byte inteiro de 8 bits −128 a 127
short inteiro curto (16 bits) −32768 a 32767
int inteiro (32 bits) −2147483648 a 21474863647
long inteiro longo (64 bits) −263 a 263 − 1
Números reais (IEEE-754):
Tipo Descrição Faixa de valores
float decimal (32 bits) −3, 4e+038 a −1, 4e−045;
1,4e−045 a 3,4e+038
double decimal (64 bits) −1, 8e+308 a −4, 9e−324;
4,9e−324 a 1,8e+308
Outros tipos
Tipo Descrição Faixa de valores
char um único caractere (16 bits) ’\u0000’ a ’uFFFF’
(0 a 65535 Unicode ISO)
boolean valor booleano (lógico) false, true
Tipos de dados IV
Modelagem:
Pessoa
nome: String
idade: int
sexo: char
profissao: String
...
Exercício II
Métodos em Java II
Exemplo:
1 public class Carro
2 {
3 // declaração dos atributos
4 // ...
5
Métodos em Java IV
Métodos em Java VI
1 class Administrativo {
2 float salario;
3 public float retorneSalario( )
4 {
5 //calcular salario
6 return salario;
7 }
8 }
Se o método não retorna nenhum valor, isto deve ser declarado usando-se a
palavra-chave void – como em C.
Exemplo:
public class Carro {
String marca;
String modelo;
String placa;
public void acelerar() // void indica que nao ha
retorno de valor
{
}
}
Lampada
estadoDaLampada: boolean
+acender()
+apagar()
Exercício – métodos II
Pessoa
nome: String
idade: int
profissao: String
dinheiroNaCarteira: double
+gastar(valor: double)
+receber(valor: double)
Exercício – métodos IV
Instanciação de objetos II
...
Carro carro1 = new Carro();
...
Instanciação de objetos IV
Comando ponto II
Pessoa p1;
p1 = new Pessoa();
p1.nome = "Vitor Josue Pereira";
p1.nascimento = "10/07/1966";
p1.gastar( 3200.00 ); // Mensagem sendo passada ao
objeto p1
Passagem de mensagens II
Quando você quer que um objeto faça alguma coisa, você envia a ele
uma “mensagem” informando o que quer fazer, e o objeto faz;
Se o método for público, o objeto terá que executá-lo;
Se ele precisar de outro objeto para o auxiliar a realizar o “trabalho”,
ele mesmo vai cuidar de enviar mensagem para esse outro objeto.
Exercício I
Lampada
estadoDaLampada: boolean
+acender()
+apagar()
Exercício III
Exercício V
Pessoa
nome: String
idade: int
profissao: String
dinheiroNaCarteira: double
+gastar(valor: double)
+receber(valor: double)
Exercício VII
Exercício IX
Declaração de variáveis:
Escolha-caso:
1 switch (expressão)
9 ...
2 {
10 case <valorN>:
3 case <valor1>:
11 <comando(s);>
4 <comando(s);>
12 break;
5 break;
13 default:
6 case <valor2>:
14 <comando(s);>
7 <comando(s);>
15 }
8 break;
Repetição
Com while
while (<condição>)
<comando>; Com do-while – teste ao final
do
{
while (<condição>) <comandos>;
{ } while (<condição>);
<comandos>;
}
0 1 2 3 4
v[0] v[1] v[2] v[3] v[4]
Vetores e matrizes II
Vetores e matrizes IV
// Sintaxe 2
double []nota = new double [125];
String nome[] = new String [70];
Vetores e matrizes VI
Vetores multidimensionais:
Vetor bidimensional: matriz.
▶ Ex.: double[][] matriz = new double[5][10];
É possível construir vetores multidimensionais não retangulares:
// matriz de inteiros, 2 x 3 (2 linhas e 3 colunas)
int v[][] = new int[2][];
v[0] = new int[3];
v[1] = new int[3];
// vetor bidimensional não-retangular.
int vet[][] = new int[3][];
vet[0] = new int[2];
vet[1] = new int[4];
vet[2] = new int[3];
Vetores e matrizes X
Java API II
Exemplos:
Pacote Descrição
java.lang Classes muito comuns (este pacote é importado au-
tomaticamente pelo compilador javac em todos
os programas Java).
java.io Classes que permitem entrada e saída em arquivos.
java.math Classes para executar aritmética de precisão arbitrária
javax.swing Classes de componentes GUI Swing para criação e
manipulação de interfaces gráficas do usuário
java.util Utilitários como: manipulações de data e hora, pro-
cessamento de números aleatórios, armazenamento e
processamento de grandes volumes de dados, quebras
de strings em unidades léxicas etc.
Método Descrição
Math.abs(x) Valor absoluto de x.
Math.ceil(x) Teto de x (menor inteiro maior ou igual a x).
Math.cos(x) Cosseno de x (x dado em radianos).
Math.exp(x) Exponencial de x (e x ).
Math.floor(x) Piso de x (maior inteiro menor ou igual a x).
Métodos estáticos
Chamados a partir da classe (e não de um objeto específico)
Java API IV
Método Descrição
ob.concat(s) Concatena objeto ob ao String s.
ob.replace(x,y) Substitui, no objeto ob, todas as ocorrências do ca-
ractere x pelo caractere y.
ob.substring(i,j) Constrói novo String para ob, com caracteres do
índice i ao índice j − 1.
Armazenamento em memória II
Coleta de lixo II
Coleta de lixo IV
Encapsulamento
Encapsulamento é a capacidade de controlar o acesso a classes, atributos e
métodos
Package-only
▶ Caso padrão (quando modificador de acesso é omitido);
▶ Permite acesso a partir das classes do mesmo pacote – ou classe de
outro pacote, desde que seja subclasse (herdeira) da classe em questão
(conceito de herança).
protected
▶ Permite acesso a partir de uma classe que é herdeira de outra.
public
▶ Permite acesso irrestrito a partir de qualquer classe (mesmo que estejam
em outros arquivos);
▶ Único que pode ser usado em classes.
private
▶ Permite acesso apenas por objetos da própria classe. O elemento é
visível apenas dentro da classe onde está definido.
Encapsulamento e métodos
Encapsulamento e atributos II
Conta
–saldo: double
–limite: double Banco
+setSaldo() opera
+main()
+setLimite()
+getSaldo()
+getLimite()
Conta
–saldo: double
–limite: double Banco
+sacar() opera
+depositar() +main()
+getSaldo()
+getLimite()
+setLimite()
Construtores I
Classe Veiculo.java I
1 class Veiculo
2 {
3 private String marca;
4 private String placa;
5 private int kilometragem;
6 public Veiculo( String m, String p, int k )
7 {
8 marca = m;
9 placa = p;
10 kilometragem = k;
11 }
12 public String getPlaca()
13 {
14 return placa;
15 }
16 public String getMarca()
17 {
18 return marca;
19 }
Classe AcessaCarro.java
1 class AcessaCarro
2 {
3 public static void main(String args[])
4 {
5 Veiculo meuCarro = new Veiculo("Escort","XYZ-3456",60000);
6 String marca;
7 int kilometragem;
8 marca = meuCarro.getMarca();
9 System.out.println( marca );
10 kilometragem = meuCarro.getKilometragem();
11 System.out.println( kilometragem );
12 meuCarro.setKilometragem( 100000 );
13 System.out.println( kilometragem );
14 }
15 }