0% acharam este documento útil (0 voto)
30 visualizações17 páginas

Resumo de Java e POO

Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
30 visualizações17 páginas

Resumo de Java e POO

Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 17

Java - Anotações
Informações Básicas

system.out.printIn (”Hello World”);

Class MeuPrograma {
public static void main (string args) {

Toda classe java é um arquivo.java

Todo nome da classe é o nome do arquivo (nome com inicial maiúscula).

Classe gera um arquivo.class

for (inicialização, condição, incremento)

Orientação á objetos
Ajuda na organização e resolve problemas.

Cncentra as responsabilidades em um lugar só.

Encapsula a lógica de negócios.

A definição da conta = classe. (todos da mesma classe tem atributos e


comportamentos em comum mas não são iguais).

A conta de verdade = objeto.

Java - Anotações 1
Criando uma classe:
class Conta {
int numero;
String dono;
double saldo;
double limite;

Criando um objeto (programa java):


Class Programa {
public static void main (String[] args {
new Conta ( );
Conta minhaConta;
minhaConta = new Conta( );
minhaConta.dono = “Duke”;

minhaConta.saldo = 1000.0;
}

Métodos
Comportamento que cada classe tem.

Exemplo: a conta saca dinheiro.

É necessário especificar isso dentro da própria classe conta.

Void pois não envia informação de volta.

Java - Anotações 2
Dentro do parentes informações de quanto vai ser sacado
(argumento/parametros).

this é usado para mostrar um atributo e não uma simples variável.

Metodo com retorno: um exemplo é o metodo saca pode retornar um valor


booleano indicando se a operação foi bem sucedida.

void Saca (double quantidade) {

Double novoSaldo = this.saldo - quantidade;


this.Saldo = novoSaldo;

Referências
Quando declara variavel para associar ao objeto ele na verdade não guarda
um objeto e sim a referencia até ele (igual um ponteiro).
Conta c1;

c1 = new Conta ( );

Array
Um array é sempre um objeto.

Arrays são inicializados com um tamanho fixo e não podem ser alterados
posteriormente.

Int [ ] idades;
idades = new int [10];

idades [5] = 10;


array.length;

Java - Anotações 3
Modificadores de acesso e atributos de classe
Controlando o acesso.

Exemplo: invocar o metodo saca e não permitir acesso ao tributo.

PRIVATE: fechamos o acesso ao mesmo em relação a todas as outras classes


(é uma boa prática)

Quando não há modificadores de acesso: visibilidade intermediaria entre


private e public.

Encapsulamento
Esconder todos os membros de uma classe, esconder como funcionam as
rotinas do sistema

Fundamental para que o sistema seja suscetivel a mudança.

Metodos públicos → interface da classe

Programar pensando na interface pois sempre que vamos acessar um objeto


utilizamos sua interface.

Getters e Setters
Como mostrar o saldo de uma conta se nem podemos acessar ele para leitura?
(privado)

Criamos um metodo para pegar o saldo (getter) e um para mudar o valor (setter).

Construtores

new → construindo um objeto.

O construtor da classe é em bloco declarado com o mesmo nome que a


classe porém não é um metodo. Quando não é declarado o construtor ele é o
Default.

Java - Anotações 4
Um construtor só pode rodar durante a construção do objeto.

Porém você pode durante a construção de um objeto fazer um construtor


chamar outro.

Java Bean: todos os atributos privados, getteres e settes e um construtor


vazio.

Atributos de classe

Quando declaramos um atributo como static, ele passa a não ser mais um
atributo de cada objeto e sem um atributo da classe.

Não usamos o this e sim o nome da classe.


conta.totalDeContas = conta.totalDeContas + 1;

Herança, reescrita e polimorfismo


Existe um jeito de relacionarmos uma classe de tal maneira que uma delas
herda tudo que a outra tem. Isto é uma relação de classe mãe e classe filha.
No nosso caso, gostaríamos de fazer com que o Gerente tivesse tudo que um
Funcionario tem, gostaríamos que ela fosse uma extensão de Funcionario.
Fazemos isto através da palavra chave extends.

class Gerente extends Funcionario {

informações adicionais que só o gerente possui

Classe mãe: Funcionario.

Classe gerente herda todos os atributos e metodos da classe mãe, ele


herda os atributos e métodos privados, porém não consegue acessá-los
diretamente.

Funcionário é a superclasse de gerente, e o gerente é uma subclasse de


funcionário. Todo gerente é um funcionário.

Java - Anotações 5
Usar o modificador protected → fica entre o private e o public. Um
atributo protected só pode ser acessado pela propria classe e por suas
subclasses.

Uma classe pode ter várias filhas, mas pode ter apenas uma mãe.

OVERRIDE → REESCREVER

Quando herdamos um método podemos alterar seu comportamente, ou


seja reescrever.

@override

Depois de reescrito, não podemos mais chamar o método antigo que fora
herdado da classe mãe: realmente alteramos o seu comportamento. Mas
podemos invocá-lo no caso de estarmos dentro da classe.

Polimorfismo
Polimorfismo é a capacidade de um objeto poder ser referenciado de
várias formas.

Super: acessar o metodo da classe mãe, para não ter de copiar e colocar
o conteúdo desse metodo e depois concatenar com a informação das
horas de aula.

No java a invocação do método sempre vai ser decidida em tempo de


execução.

Objetivo → diminuir o acoplamento (o quanto uma classe depende da


outra) entre classes, para evitar que novos códigos resultem em
modificações em inúmeros lugares.

Herança aumenta o acoplamento entre as classes (resolver isso com ajuda


de interfaces).

Classes Abstratas

Java - Anotações 6
Exemplo: existe a classe Pessoa e suas duas filhas PessoaFisica e
PessoaJuridica, a classe pessoa nesse caso estaria sendo usada apenas
para ganhar o polimorfismo e herdar algumas coisas, não precisario
instanciá-la.

A classe abstrata apenas idealiza um tipo, define apenas um rascunho..

Usamos a palavra abstract para impedir que ela possa ser instanciada.

Metodo Abstrato
O metodo abstrato indica que todas as classes filhas devem reescrever
esse método ou não compilarão.

abstract class Funcionario {


abstract double getBonificacao();
// outros atributos e métodos
}

Interfaces
Interface é a maneira através da qual conversamos com um objeto.

Uma interface pode definir uma série de métodos, mas nunca conter
implementação deles. Ela só expõe o que o objeto deve fazer, e não como
ele faz, nem o que ele tem. Como ele faz vai ser definido em uma
implementação dessa interface

Interfaces são utilizadas para definir um contrato, ou seja, um conjunto de


métodos que uma classe deve implementar.

Uma classe pode implementar várias interfaces, mas só pode herdar de


uma classe mãe.

Os métodos de uma interface são sempre públicos e abstratos.

Java - Anotações 7
Exceções e controle de erros
Tratamento de exceções: é uma forma de lidar com erros que podem
ocorrer durante a execução de um programa.

Try-catch: o código que pode gerar a exceção é colocado dentro do bloco


try, e o tratamento da exceção é colocado dentro do bloco catch.

Finally: bloco opcional que é sempre executado, independentemente de


ter ocorrido ou não uma exceção.

Toda invocação de método é empilhada em uma estrutura de dados que


isola a área de memória de cada um. Quando um método termina
(retorna), ele volta para o método que o invocou. Ele descobre isso
através da pilha de execução (stack): basta remover o marcador que está
no topo da pilha.

A palavra chave throw, que está no imperativo, lança uma Exception. Isto é
bem diferente de throws, que está no presente do indicativo, e que apenas
avisa da possibilidade daquele método lançá-la, obrigando o outro método
que vá utilizar deste de se preocupar com essa exceção em questão.

Organizando suas classes e bibliotecas


public - Todos podem acessar aquilo que for definido como public.
Classes, atributos, construtores e métodos podem ser public.

protected - Aquilo que é protected pode ser acessado por todas as


classes do mesmo pacote e por todas as classes que o estendam, mesmo
que essas não estejam no mesmo pacote. Somente atributos, construtores
e métodos podem ser protected.

padrão (sem nenhum modificador) - Se nenhum modificador for utilizado,


todas as classes do mesmo pacote têm acesso ao atributo, construtor,
método ou classe.
private - A única classe capaz de acessar os atributos, construtores e
métodos privados é a própria classe. Classes, como conhecemos, não
podem ser private, mas atributos, construtores e metodos.

Java - Anotações 8
SCANNER
É usado para pegar informações do teclado.

Scanner scan = new Scanner (System.in);

int num = scan.nextInt();


String nome = scan.nextLine();
double saldo = scan.nextDouble();

scan.close();

Coleção / Estrutura de dados


ArrayList
ArrayList<String> nome = new ArrayList<String>();
nome.add(”Tayna”);
nome.get(0);
nome.set(0,”Ana”);

nome.remove(0);
nome.clear(); >remove todos os elementos<

nome.size();

for (String variavelTemp : nome) {

System.out.printIn(nome);
}

Java - Anotações 9
VALIDAR SENHA
public static boolean isValidPassword(String password) {
boolean isValid = true;

if (password.length() > 15 || password.length() < 8) {


System.out.println("Password must be less than 20 and more than 8
characters in length."); isValid = false;

}
String upperCaseChars = "(.*[A-Z].*)";
if (!password.matches(upperCaseChars )) {

System.out.println("Password must have atleast one uppercase character");


isValid = false;

}
String lowerCaseChars = "(.*[a-z].*)";
if (!password.matches(lowerCaseChars )) {

System.out.println("Password must have atleast one lowercase character");


isValid = false;

}
String numbers = "(.*[0-9].*)";
if (!password.matches(numbers )) {

System.out.println("Password must have atleast one number");


isValid = false;
}

String specialChars = "(.*[@,#,$,%].*$)";


if (!password.matches(specialChars )) {

Java - Anotações 10
System.out.println("Password must have atleast one special character among
@#$%");

isValid = false;
}
return isValid;

}
Classe Math

A classe Math faz parte do pacote java.lang e possui um conjunto de


operações matemáticas comuns, como seno, cosseno, raiz quadrada, etc.

A classe Math não pode ser instanciada, ou seja, não podemos criar um
objeto Math. Seus métodos são todos estáticos, o que significa que
podemos utilizar diretamente sem precisar criar um objeto.
Exemplos:
double raiz = Math.sqrt(144);

double pi = Math.PI;
double seno = Math.sin(45);

String

É uma classe que representa uma cadeia de caracteres.

Ela é imutável, ou seja, depois de criada, não é possível mudar seus


caracteres.

É possível concatenar Strings utilizando o operador +.

É possível obter uma substring a partir de uma String utilizando o método


substring.

É possível comparar duas Strings utilizando o método equals ou


equalsIgnoreCase.
Exemplos:

String nome = "Fulano de Tal";


String primeiraLetra = nome.substring(0, 1);

Java - Anotações 11
String sobrenome = nome.substring(7);

boolean compara = nome.equals("fulano de tal");


boolean comparaIgnorandoCase = nome.equalsIgnoreCase("fulano de
tal");

Arrays

É uma estrutura de dados que permite armazenar um conjunto de


elementos do mesmo tipo.

O tamanho de um array é fixo e definido na criação do array.

Os elementos de um array são acessados através de um índice, que


começa em zero.

É possível percorrer os elementos de um array utilizando um loop for.


Exemplos:

int[] valores = new int[5];


valores[0] = 10;
valores[1] = 20;

for (int i = 0; i < valores.length; i++) {


System.out.println(valores[i]);

Date

A classe Date é utilizada para trabalhar com datas em Java.

Ela representa uma data como um número long, que representa o número
de milissegundos desde 1º de janeiro de 1970.

A classe Date é mutável, ou seja, seus valores podem ser alterados


através de seus métodos.

É possível formatar uma data em uma String utilizando a classe


SimpleDateFormat.

Exemplos:
Date dataAtual = new Date();

Java - Anotações 12
SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy");

String dataFormatada = formatador.format(dataAtual);

Calendar

A classe Calendar é utilizada para trabalhar com datas em Java.

Ela é uma classe abstrata, ou seja, não pode ser instanciada diretamente.

É possível obter uma instância da classe Calendar utilizando o método


getInstance.

A classe Calendar é mutável, ou seja, seus valores podem ser alterados


através de seus métodos.

É possível formatar uma data em uma String utilizando a classe


SimpleDateFormat.
Exemplos:
Calendar dataAtual = Calendar.getInstance();

SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy");


String dataFormatada = formatador.format(dataAtual.getTime());

Método equals

O método equals é utilizado para comparar se dois objetos são iguais.

Ele é implementado pela classe Object e pode ser sobrescrito pelas


classes filhas.

Por padrão, ele compara a referência dos objetos, ou seja, se os objetos


são o mesmo.

Para comparar o conteúdo dos objetos, é necessário sobrescrever o


método equals e implementar a comparação desejada.
Exemplos:
public class Pessoa {

private String nome;


public boolean equals(Object obj) {
if (obj instanceof Pessoa) {

Java - Anotações 13
Pessoa outraPessoa = (Pessoa) obj;
return this.nome.equals(outraPessoa.nome);
}
return false;

}
}

Método hashCode

O método hashCode é utilizado para obter um código hash de um objeto.

Ele é implementado pela classe Object e pode ser sobrescrito pelas


classes filhas.

Por padrão, ele retorna um código hash baseado na referência do objeto.

É importante que objetos iguais possuam o mesmo código hash.


Exemplos:
public class Pessoa {

private String nome;


public int hashCode() {
return Objects.hash(nome);
}
}

Wrapper classes

São classes que encapsulam tipos primitivos em Java.

São utilizadas para utilizar tipos primitivos em locais que exigem objetos,
como em coleções.

Cada tipo primitivo possui sua própria wrapper class.


Exemplos:
Integer valorInteiro = new Integer(10);

Double valorDecimal = new Double(10.5);

Java - Anotações 14
Autoboxing e Unboxing

Autoboxing é a conversão automática de um tipo primitivo em sua wrapper


class correspondente.

Unboxing é a conversão automática de uma wrapper class em seu tipo


primitivo correspondente.
Exemplos:
int valorInteiro = 10;

Integer valorInteiroWrapper = valorInteiro;


int valorInteiroNovamente = valorInteiroWrapper;

Enum

É uma classe especial em Java que representa um conjunto fixo de


constantes.

Cada constante é um objeto da classe Enum e possui um nome e um valor.

São utilizados para representar valores que não mudam, como os dias da
semana ou os meses do ano.
Exemplos:
public enum DiaSemana {
DOMINGO,
SEGUNDA,

TERCA,
QUARTA,
QUINTA,
SEXTA,
SABADO

Generics

São uma forma de tornar as classes e métodos mais genéricos, permitindo


que eles possam ser utilizados com tipos diferentes.

Java - Anotações 15
São utilizados para criar classes e métodos que trabalham com um tipo
específico sem precisar definir esse tipo.

São representados pelo símbolo "<>".


Exemplos:
public class Pilha<T> {
private List<T> elementos = new ArrayList<T>();
}

Lambda expressions

São uma forma de criar funções anônimas em Java.

São utilizados para simplificar a criação de objetos que implementam


interfaces funcionais.

São representados pelo símbolo "->".


Exemplos:

public class Exemplo {


public static void main(String[] args) {
new Thread(() -> System.out.println("Hello world!")).start();
}
}

Stream API

É uma API nova em Java 8 que permite trabalhar com coleções de forma
mais simples e eficiente.

É baseada em uma sequência de operações que são executadas em uma


coleção.

Possui diversos métodos para filtrar, mapear e reduzir coleções.


Exemplos:
List<Integer> numeros = Arrays.asList(1, 2, 3, 4, 5);

int soma = numeros.stream()

Java - Anotações 16
.filter(n -> n % 2 == 0)
.mapToInt(n -> n)

.sum();
System.out.println(soma);

Java - Anotações 17

Você também pode gostar