Download 2 Bim - Univap

Document related concepts
no text concepts found
Transcript
Universidade do Vale do Paraíba
Colégio Técnico Antônio Teixeira Fernandes
Disciplina POO-III
Material II-Bimestre
Fundamentos da linguagem Java
(Programação Orientada a Objetos)
site : www1.univap.br/~wagner
Prof. Responsável
Wagner Santos C. de Jesus
1
Conceitos Básicos de OOP
(Programação Orientada à Objetos)
Em Java temos conceitos para
trabalhar com as classes e os métodos
esse conceitos são chamado de
Encapsulamento, Polimorfismo e
Herança.
2
Uma classe vem a ser o modelo para um objeto ou seja
como vamos desenhar o mesmo. uma classe deve conter
métodos para descrever que tipo de ações esses objetos vão
tomar.
3
Usando Classes criadas pelo usuário.
(Programador)
• Para usar outra classe temos que cria-la e
depois instanciar essa mesma classe.
• Instancia : É quando pegamos uma classe e
deixamos essa mesma classe disponível
para o uso em nosso programa. Quando
instanciamos uma classe ou um objeto ele
pode ser conhecido em qualquer parte do
programa.
4
A sintaxe que permite ao programador
Java instanciar um objeto(Classe) é a
seguinte.
NomeClasse objeto = new NomeClasse();
O operador new é que permite que possamos
instancia uma determinada classe.
5
Conversão de tipos
Convertendo um número com casas
decimais em uma string. Método
toString().
double x = 4.55;
Double objreal = new Double(x);
String a = objreal.toString();
Obs : Para converter um inteiro em String usa-se a classe
Integer() analogamente.
6
Convertendo tipo de dado String
em Número(int,float,double).
Convertendo String para int, intValue().
int i = Integer.valueOf(String variavel).intValue();
Convertendo String para float, floatValue().
float f = Float.valueOf(String variavel).floatValue();
Convertendo String para double, doubleValue().
double f = Double.valueOf(String variavel).DoubleValue();
7
Criação de um método
Um método vem a ser a maneira que usamos para identificar o
comportamento de uma classe. Em uma classe poderemos
encontrar vários métodos.
Os métodos são equivalentes as funções em outras linguagens.
Estrutura de um método.
public tipo nome-método ( parametros ) {
:
: <Código Programa>
return <valor>;
}
8
Exemplo da Utilização de um método.
class exemp1 {
public boolean parimpar(int n) {
if( n%2 == 0)
return true;
else
return false;
}
public static void main(String args[]) {
int a = 5;
exemp1 numero = new exemp1();
System.out.println(numero.parimpar(a));
}
}
9
Teoria da Programação Orientada a Objetos
Encapsulamento : Vem a ser quando um objeto mantém sua
características privadas para outros objetos; Contendo em seu
interior os dados enviados por intermédio de seus métodos.
Exemplo : Carro Onibus = new Carro();
10
Implementação de uma classe
public class Encap{
private String nome;
private String cidade;
private double salario;
public void setNome(String vnome){
this.nome = vnome;
}
public void setCidade(String vcidade){
this.cidade = vcidade;
}
public void setSalario(double vsalario){
this.salario = vsalario;
}
public String getNome(){
return this.nome;
}
public String getcidade(){
return this.cidade;
}
public double getsalario(){
return this.salario;
}
11
}
Usando a classe Encap
public static void main(String args[]){
Encap objencap = new Encap();
objencap.setNome(“Ana Maria da Silva");
System.out.println(objencap.getNome());
}
12
Modificando um atributo
class Dadospessoais{
String nome,endereco;
Dadospessoais(String nome, String endereco){
this.nome = nome;
this.endereco=endereco;
}
Dadospessoais() {
nome = "Jose";
endereco = "Rua Barao";
}
}
class criadados {
public static void main(String args[]){
Dadospessoais p = new Dadospessoais();
p.nome = "Fatima Bernardes";
System.out.println(p.nome+" "+p.endereco);
}
}
13
Polimorfismo : Vem a ser quando podemos
passar parâmetros de tipos diferentes para
mesmo método.
14
Exemplo :
class exemp1 {
public boolean parimpar(int n) {
if( n%2 == 0)
return true;
else
return false;
}
public boolean parimpar(double n) {
if( n%2 == 0)
return true;
else
return false;
}
public static void main(String args[]) {
double a = 5.5;
exemp1 numero = new exemp1();
System.out.println(numero.parimpar(a));
}
}
15
Operador this
É usado quando se precisa usar a referência
do objeto da própria classe.
Exemplo : this.propriedade = dados;
this.metodos();
16
Exemplo :
class exemp1 {
public boolean parimpar(int n) {
if( n%2 == 0)
return true;
else
return false;
}
public boolean parimpar(double n) {
boolean v = this.parimpar(8);
System.out.println(v);
if( n%2 == 0)
return true;
else
return false;
}
public static void main(String args[]) {
double a = 5.5;
exemp1 numero = new exemp1();
System.out.println(numero.parimpar(a));
}
}
17
Criando uma nova classe a partir de outra
classe.
Pode ser criada também uma classe principal nela
estará o método main(). E depois criada uma
outra classe somente com os métodos necessários
para chamada da execução do programa.
18
Exemplo :
class exemp2 {
public static void main(String args[]) {
numeros conta = new numeros();
System.out.println( conta.soma(3,3) );
System.out.println( conta.sub(3,2) );
}
}
class numeros {
public int soma(int n, int y) {
int x = n + y;
return x;
}
public int sub(int n, int y) {
int x = n - y;
return x;
}
}
19
Herança : É quando um objeto
da classe aproveita características
de outro. Nesse caso ao invés de
instanciarmos a classe a qual esse
método pertence usamos o
operados extends.
20
extends
Instrução do Java que permite criar o que
vem a ser uma herança.
Exemplo :
class progsub extends mensagem {
:
:
}
21
class mensagem{
mensagem(String msg) {
System.out.println(msg);
}
}
class progsub extends mensagem {
progsub(String a) {
super(a);
...........................
}
public static void main(String args[]){
progsub p = new progsub("Ola Mundo");
}
}
22
class matematica {
public int fator (int n){
int fat = 1;
for(int i=1;i<=n;i++)
fat = fat * i;
return fat;
}
public boolean primos (int num ) {
// ...... Instruções
return true;
}
}
23
class mistura extends matematica {
public static void main(String args[]){
mistura objheranca = new mistura();
int x = 3;
int resultCalc = objheranca.fator(x);
System.out.println(resultCalc);
}
}
24
Encapsulamento
Vem a ser uma estrutura para proteger
as propriedades em uma classe, podendo
somente acessar as mesma por intermédio
de métodos e não diretamente.
25
Encapsulamento
Permite realizar o acesso aos métodos da
classe por intermédio apenas dos métodos,
isso torna-se mais seguro porque as
propriedades serão privadas.
set(dado)
get()
Processamento
26
Encapsulamento : Entrada
Classe
setNome(“Maria”)
setEndereco(“Barão, 34”)
Nome
Endereco
setNome()
setEndereco()
27
Encapsulamento : Saída
getNome() => Maria
Classe
getEndereco() => Barão,34
Nome
Endereco
getNome()
getEndereco()
28
Exemplo : Encapsulamenento
public class Encapsula {
private int p = 1;
public void setPotencia(int base,int expoente)
{
int r = 1;
for(int i=1;i<=expoente;i++)
r*=base;
this.p = r;
}
public int getPotencia(){
return this.p;
}
public static void main(String args[]){
Encapsula obj = new Encapsula();
obj.setPotencia(3,2);
System.out.println(obj.getPotencia());
}
}
29
try-catch: Manipulador de
Exceção
try {
//bloco de código
} catch (Excecaotipo1 e) {
// Manipulador para Exceção1
} catch (ExcecaoTipo2 e) {
// Manipulador para Exceção2
throw(e); }
finally {
// Bloco de Instruções
}
30
Criando uma classe para
Encapsulamento
Simbologia de classe
Encap
- String nome;
- String cidade;
- double salario;
+ void setNome(String vnome)
+ void setCidade(String vcidade)
+ void setSalario(double vsalario)
-String getNome()
-String getcidade()
-double getsalario()
Nome da classe
Propriedades
Métodos
31
Exemplo
class Extry1 {
public static void main(String args[]){
try {
int d = 0;
int a = 42 / d;
} catch (ArithmeticException e) {
System.out.println("ERRO: Divisao por Zero ......");
}
}
}
32
Várias Cláusulas catch
class Extry1 {
public static void main(String args[]){
try {
int d = 1;
int a = 42 / d;
System.out.println(a);
System.out.println(args[0]);
} catch (ArithmeticException e) {
System.out.println("ERRO: Divisao por Zero ......");
}
catch (ArrayIndexOutOfBoundsException e) {
System.out.println("ERRO:Estouro no indice do array");
}
}
}
33
Throw : Lança explicitamente uma exceção.
class Extry2 {
static void demoproc() {
try {
throw new NullPointerException("demo");
} catch( NullPointerException e) {
System.out.println("Capturada no método demoproc");
throw e;
}
}
public static void main(String args[]){
try {
demoproc();
}
catch ( NullPointerException e) {
System.out.println("recapturada: "+e);
}
}
}
34
Tratando uma exceção qualquer
class Extry3 {
public static void main(String args[]){
try {
System.out.println(args[0]);
}
catch (Exception e) {
System.out.println("Ocorreu um Erro : "+e);
}
}
}
35
Criação de Vetores (Arrays)
Exemplo :
String vet[] = { "Maria","Paula","Roberta","Ana Lucia"};
Ou
String let[] = new String[4];
36
Exemplo da criação de um vetor de Inteiros e Reais.
int vet[] = new int[3];
double vet1[] = new double[4];
ou
double vet1[] = new double[4][3];
37
Programa Exemplo :
class exemp3 {
public static void main(String args[]) {
double v1[] = { 5,8,9.1,10.5,9.75 };
for(int i=0;i<=4;i++){
System.out.println(v1[i]);
}
}
}
38
Métodos de Manipulação de Números
Para calcularmos valores manipularmos
números de uma forma matemática temos uma
classe em Java específica para esse tipo de
tarefa, essa classe é chamada de Math (Cujo
significado é Matemática).
39
Estrutura da Classe Math
Classe
Metodo1
......
Metodo4
Propriedades
......
Metodo2
......
Metodo3
........
40
Sintaxe geral :
<Variável double> = Math.método( < Parâmetros > );
41
Exemplos dos método da classe Math.
double a;
a = Math.PI;
Retorna com valor de pi = 3.141592......
42
sqrt() - Retonar a raiz quadrada de um número
passado como parâmetro.
Exemplo:
double x = Math.sqrt(49);
System.out.println(x);
Retonar para x como 7 que o valor da raiz de
49.
43
abs() - Retorna o valor absoluto de um
número negativo dados -3 deverá ser 3.
Exemplo:
double x = Math.abs(-4);
System.out.println(x);
Retorna o número 4 positivo.
44
random() - Retorna um número aleatório no
intervalo entre 0 e 1.
Exemplo:
double x = Math.random();
System.out.println(x);
45
rint() - Retorna com o número arredondado
para inteiro.
Exemplo:
double x = Math.rint(4.3);
System.out.println(x);
Retorna para a variável x com o valor 4.
46
log() - Retorna o logaritmo neperiano de um
número passado.
Exemplo:
double x = Math.log(100);
System.out.println(x);
Retorna o número aproximadamente 4.60 na
base e = 2.718....
47
pow() - Retonar o valor de uma base elevado
a um determinado expoente.
double x = Math.pow(3,2);
System.out.println(x);
Retorna o 9 para x.
48
exp() - Retonar o exponencial de um número
dado.
double x = Math.exp(1);
System.out.println(x);
Retorna o valor de e = 2.718.... elevado a 1.
49
sin() - Retorna o valor do seno em graus para
um determinado ângulo.
Exemplo:
double x = Math.sin(30 * Math.PI/180);
System.out.println(x);
Retorna o valor 0,5 que seno 30º .
50
cos() - Retorna o valor do cosseno em graus
para um determinado ângulo.
Exemplo:
double x = Math.cos(30 * Math.PI/180);
System.out.println(x);
Retorna o valor 0,8 que cosseno 30º .
51
tan() - Retorna o valor do tangente em graus
para um determinado ângulo.
Exemplo:
double x = Math.tan(30 * Math.PI/180);
System.out.println(x);
Retorna o valor 0,57 que tangente 30º .
52
max() - Retorna o maior valor entre dois
valore passados com parâmetros.
Exemplo:
double x = Math.max(8,20);
System.out.println(x);
Retorna 20 que é o maior valor.
53
min() - retorna o menor valor entre dois
valores passados com parâmetros.
Exemplo:
double x = Math.min(8,20);
System.out.println(x);
Retorna 8 que é o menor valor.
54
Atenção : Tome cuidado os
métodos max() e min() retornam
sempre valores analisando dois
argumentos, mais do que dois
argumento não podemos passar
como parâmetros para esses
métodos.
55
Formatando valores Numéricos
DecimalFormat : Classe que permite realizar
a formatação de números com suas respectivas
casas decimais.
Exemplo : Instância
DecimalFormat meuFormato = new DecimalFormat();
56
import java.text.DecimalFormat;
Para
usar
a
classe
DecimalFormat
é
necessário
importar o pacote acima. Que
deverá ser colocada no inicio do
programa antes da declaração da
classe onde será implementado.
57
applyPattern() : Método que realiza a formatação
de casas decimais e valores.
Exemplo :
DecimalFormat meuFormato = new DecimalFormat();
meuFormato.applyPattern("R$ ##0,000.00;R$ (##0,000.00)");
58
format() – Determina a saída formatada para o
número dado do tipo String.
Exemplo:
String ssaldo = “1000,34”;
DecimalFormat meuFormato = new DecimalFormat();
meuFormato.applyPattern("R$ ##0,000.00;R$ (##0,000.00)");
ssaldo = meuFormato.format( Double.parseDouble(ssaldo) );
59
Métodos de Manipulação de Strings.
São métodos capazes de gerar operações com
strings fazendo com que os programa fiquem
mais avançados e flexíveis.
60
Sintaxe geral dos métodos.
String <variável> = <String>.<método>(<parametros> );
Ou
int/boolean <variável> = <String>.<método>(<parametros> );
61
equals() - Retorna verdadeiro ou falso
mediante duas strings sendo comparadas.
Exemplo :
String a = "Abacaxi";
boolean resul = a.equals("Morando");
O valor booleano retornado para result será
falso. (false) as strings não são iguais.
62
equalsIgnoreCase():
compara se duas string são iguais independente de serem
maiúsculas ou minúsculas.
Exemplo :
String nome = "maria";
String nome2 = "MARIA";
if (nome.equalsIgnoreCase(nome2) ) System.out.println("Iguais");
else System.out.println("Diferenetes");
63
startsWith(): Retorna verdadeiro se a cadeia ou um
caractere estiver no inicio da string.
Exemplo :
String S = "Tchak estava na cozinha ....";
boolean bld = S.startsWith("Tchak");
System.out.println(bld);
64
endsWith(): Retorna verdadeiro se a cadeia ou um
caractere estiver no fim da string.
Exemplo :
String nome = "maria";
boolean bl2 = nome.endsWith(“a”);
System.out.println(bl2);
65
isDigit() - Retorna verdadeiro se caracter
passado como argumento for um número.
Exemplo :
boolean d = Character.isDigit('1');
Retorna true para a variável d.
Obs : Um char em Java deve ser declarado
com apóstrofos (') e não aspas (").
66
charAt() - Retorna com um caracter da string
mediante a informação da posição desse
elemento.
Exemplo :
String palavra = "Morango";
char y = palavra.charAt(2);
Retorna o caracter r que está na posição 2 da
string, considerando a partir do zero.
67
replace() - Substitui na string um determinado
caracter, mediante a informação do mesmo.
Exemplo :
String a = "Marta".replace('a','o');
Retorna com a String Morto para a variável a.
68
length() - Retorna o numero de elementos de
uma string.
Exemplo :
String texto = "Laranja";
int x = texto.length();
Retorna com o número 7 que vem a ser o
número de caracteres da palavra "Laranja".
Obs : Se for um vetor o método length deve
ser escrito sem os simbolos de ().
69
substring() - Retorna com uma parte da string
mediante ao argumento numérico dado.
Exemplo :
String s = "Morango";
String l = s.substring(3,6);
Irá retornar a string ang retirando os três
primeiro caracteres e considerando os demais
até a sexta posição.
70
toUpperCase() - converte um string de
minúscula para maiúscula.
Exemplo :
String s = "morango";
String teste = s.toUpperCase();
O resultado da variável teste será
MORANGO.
71
toLowerCase() - converte um string de
maiúscula para minúscula.
Exemplo :
String s = "MORANGO";
String teste = s.toLowerCase();
O resultado da variável teste será morango.
72
trim() - Retira os espaços em branco de uma
String.
Exemplo :
String b = "
Lixo
Strimg x = b.trim();
";
O resultado para a variável x será "Lixo".
73
indexOf() - Retornar em que posição
encontra-se a primeira ocorrência de uma
string em uma outra string. Caso não encontre
a string procurado ele irá retornar -1.
Exemplo :
String lista = "Constiuição";
int x = lista.indexOf("s");
O resultado será três tomando como base de
referencia a posição (0).
74
lastindexOf() - Retorna em que posição
encontra-se a ultima ocorrência de uma string
em uma outra string.
Exemplo :
int y = "Constiuição".lastindexOf("i");
Irá retorna 7 que é o número da posição da
ultima ocorrência da letra "i” na String.
75