Title: Usando Mais Objetos e Classes Simples
1Usando Mais Objetos e Classes Simples
2Classe Rinoceronte
public class Rinoceronte double Peso
int idade boolean velho
Rinoceronte(double p, int i) Peso
p idade I if (idade gt 40)
velho true void
andar() System.out.println("Rino
andando " 1/Peso "km/h") void
comer() System.out.println("Rino
comendo") void dormir()
System.out.println("Rino dormindo")
3Classe Antilope
public class Antilope Antilope()
void andar()
System.out.println("Anti correndo")
void comer() System.out.println("An
ti comendo") void dormir()
System.out.println("Anti dormindo")
4Classe Hipopotamo
public class Hipopotamo Hipopotamo()
void andar()
System.out.println("Hipo andando")
void comer() System.out.println("Hi
po comendo") void dormir()
System.out.println("Hipo dormindo")
5Classe Coordenador
class Coordenador public static void
main(String arg) Rinoceronte rino1
new Rinoceronte(10, 1) Rinoceronte rino2
new Rinoceronte(12, 50) Antilope anti new
Antilope() Hipopotamo hipo1 new
Hipopotamo() Hipopotamo hipo2 new
Hipopotamo() Hipopotamo hipo3 new
Hipopotamo() rino1.dormir()
anti.comer() hipo1.dormir()
hipo1.andar() hipo2.andar()
hipo3.comer() if (! rino2.velho )
rino2.andar()
Não sabemos quem é que está fazendo uma ação,
falta um identificador para cada objeto
6O tipo String
Em JAVA o tipo String não é primitivo Foi
construida uma classe especial para lidar com
ela. String nome nome Meu nome
7O tipo String
s.substring(x) fornece a cadeia de caracteres
iniciando no caractere de número x de s e indo
até o final de s. s.substring(x, y) fornece a
cadeia de caracteres iniciando no caractere de
número x de s e indo até o caractere de número
y-1. s.length() fornece um valor inteiro que
corresponde à quantidade de caracteres de
s. s.toUpperCase() fornece a cadeia de
caracteres similar à cadeia s, porém convertendo
todas as letras para caixa alta. s.toLowerCase()
fornece a cadeia de caracteres similar à cadeia
s, porém convertendo todas as letras para caixa
baixa.
8O tipo String
s.compareTo(t) compara as cadeias de caracteres
s e t. Se elas forem idênticas, retorna o valor
zero se s vier alfabeticamente antes de t,
retorna um inteiro menor que zero se s vier
alfabeticamente depois de t, retorna um inteiro
maior que zero. s.indexOf(c) fornece o número
da primeira ocorrência do caractere c na cadeia
s. s.indexOf(c,n) fornece o número da
primeira ocorrência do caractere c na cadeia s,
que seja maior que ou igual a n. s s1 s2
coloca na cadeia s o resultado da concatenação
das cadeias s1 e s2. Por exemplo, se s1 abc e
s2 def, então s abcdef.
9Classe Rinoceronte com nome
public class Rinoceronte double Peso
String nome Rinoceronte(double p, String n)
Peso p nome
n.substring(5) void andar()
System.out.println(nome" vai a " 1/Peso
"km/h") void comer()
System.out.println(nome " comendo")
void dormir() System.out.println(no
me " dormindo")
10Classe Coordenador
class Coordenador public static void
main(String arg) Rinoceronte rino1
new Rinoceronte(10,"Rino rino1") Rinoceronte
rino2 new Rinoceronte(12, "Rino rino2")
Antilope anti new Antilope("Anti anti")
Hipopotamo hipo1 new Hipopotamo("Hipo hipo1")
Hipopotamo hipo2 new Hipopotamo("Hipo
hipo2") Hipopotamo hipo3 new
Hipopotamo("Hipo hipo3") rino1.dormir()
anti.comer() hipo1.dormir()
hipo1.andar() hipo2.andar()
hipo3.comer() rino2.andar()
O que vai acontecer?
11Exercício
Faça um programa que leia o nome de um arquivo
completo, incluindo sua extensão. Logo em
seguida, deverá imprimir qual é o tipo de arquivo
que se está escolhendo, seguindo esta
tabela .txt -gt Arquivo texto .exe -gt arquivo
executavel .jpg -gt arquivo imagem .mp3 -gt arquivo
de áudio Exemplo Entre com o nome do arquivo
gt minhasFerias.jpg O arquivo escolhido é uma
imagem Caso o formato não seja reconhecido, o
programa deverá dizer Formato desconhecido...
12Leitura de Arquivos
- import java.io.
- 3 etapas
- definir a fonte de dados, com um objeto de
FileInputStream - definir um repositório de leitura, parametrizado
pela fonte de dados, como um objeto de
InputStreamReader - definir um leitor desse repositório, como um
objeto de BufferedReader
13Leitura de Arquivos
import java.io. InputStream is new
FileInputStream("entrada.txt") InputStreamReader
isr new InputStreamReader(is) BufferedReader
br new BufferedReader(isr) String linha
br.readLine()
14Escrita de Arquivos
- import java.io.
- 3 etapas
- definir um destino para os dados, como um objeto
de FileOutputStream - definir um repositório de gravação, parametrizado
pelo destino de dados, como um objeto de
OutputStreamWriter - definir um gravador desse repositório, como um
objeto de BufferedWriter
15Escrita de Arquivos
import java.io. OutputStream os new
FileOutputStream("saida.txt") OutputStreamWriter
osw new OutputStreamWriter(os) BufferedWriter
bw new BufferedWriter(osw) String linha
br.readLine() bw.write("Ola " linha)
bw.newLine() bw.write("Ate mais tarde "
linha) bw.close()
16Classes Abstratas
public abstract class Mamifero Mamifero()
void andar()
System.out.println("Mamifero andando")
void comer() System.out.println("Mam
ifero comendo") void dormir()
System.out.println("Mamifero dormindo")
17Classes Abstratas
public class Rinoceronte extends Mamifero
double Peso Rinoceronte(double p)
Peso p _at_Override void
andar() System.out.println("Rino
andando " 1/Peso "km/h")
_at_Override void comer()
System.out.println("Rino comendo")
_at_Override void dormir()
System.out.println("Rino dormindo")
18Classes, Heranças e Objetos
19Classe
Uma classe é um molde (template) que define, de
maneira genérica, como serão os objetos. Uma
classe é como uma receita para construir objetos.
Objetos são criados como sendo instâncias de uma
classe.
20Classe Diagrama UML
21Classe
22Classe
Construtores Variáveis de referencia Operador
ponto
23Classe
24Classe
package testeretangulo public class Main
public static void main(String args)
Retangulo r1 new Retangulo() //
Cria retangulo r1 Retangulo r2 new
Retangulo(0,15,5,10) // Cria retangulo r2
r1.x 15 // altera origem de r1
r1.altura 5 // altera altura de r1
System.out.println("Area r1 " r1.getArea())
// imprime nova area de r1
r2.transladar(5, 0) // translada origem de 5
pixels na horizontal r2.transladar(5, 0)
// translada origem de mais 5 pixels
System.out.println("origem r2 (" r2.x ","
r2.y ")")
25Classes em arquivos separados
package testeretangulo public class Main
public static void main(String args)
Retangulo r1 new Retangulo() //
Cria retangulo r1 Retangulo r2 new
Retangulo(0,15,5,10) // Cria retangulo r2
r1.x 15 // altera origem de r1
r1.altura 5 // altera altura de r1
System.out.println("Area r1 " r1.getArea())
// imprime nova area de r1
r2.transladar(5, 0) // translada origem de 5
pixels na horizontal r2.transladar(5, 0)
// translada origem de mais 5 pixels
System.out.println("origem r2 (" r2.x ","
r2.y ")")
26Classes em arquivos separados
package testeretangulo public class Main
public static void main(String args)