Sunteți pe pagina 1din 3

POO - JAVA

Tudo é compreendido como a um objeto


Anatomia:

class Nome {
//esse é o corpo da classe
//colocam-se os métodos, os atributos
}

class Cachorro {
Atributos: Peso, cor do pêlo, sexo...
//Os atributos são os dados que podem ser inteiros, booleanos, floats,
strings...
Métodos: Latir, Morder, Lamber, fazer bagunça...
//Os métodos são aquilo que um objeto de uma determinada classe pode fazer
}

Classe é uma abstração


A partir de uma classe, criam-se instâncias, que representam objetos. São dados
gerados, a partir
de uma classe

EX
Class Produto{
Atributos: Nome, Preço, Desconto;
}

Usamos um construtor como método especial para criar os objetos de cada classe

Uma classe pode ter múltiplas classes, além de métodos, construtores, atributos
Variáveis podem pertencer a classes ou objetos, bem como métodos.
A palavra reservada static pode transformar variáveis de classe em objetos e vice-
versa
Convenção métodos: primeira letra minúscula e as palavras iniciais restantes em
maiúsculo

Métodos:

//o int indica que o método retorna inteiro. Se void, ele não retorna valores
int nomeMetodo(){
//sequencia no algoritmo
}

//todos os metodos possuem parenteses no final


//métodos podem ter o mesmo nome, desde que variem o numero de atributos de entrada
ou a ordem
double nomeMetodoDois(double a, double b){
//recebeu as duas variáveis a e b do tipo double
double res = a + b;
return res;
}

construtores não possuem saída (nem mesmo void), de modo que seriam considerados
métodos.
Os construtores pedem o nome da classe
De forma análoga aos métodos, os construtores podem ter parâmetros de entrada ou
não e podem ter o
mesmo nome, desde que possuam parametros diferentes
O static garante que a variável pertença apenas à aquela classe.
Class Math{
static double PI = 3.1415; //GARANTE ECONOMIA DE MEMÓRIA, POIS APENAS UM
LOCAL DE MEMÓRIA SERÁ DESTINADO À AQUELA VARIÁVEL
}

o termo static final garante que se obtenha uma constante;


obs: tanto faz -
static final tipo
como
final static tipo

This x this()
This é uma instância e não permite acesso à variáveis e métodos estáticos. É o
equivalente ao self em Python
O this permite que um dado parâmetro do método de uma determinada classe seja
alterado, sem alterar um atributo
da classe com um mesmo nome.
O this tb pode ser usado para métodos.

class bozo(){
int a = 5;
double funcBozo(a){
this.a = a;
return 2*this.a
}
}

//com isso apenas altero o valor a dentro do método


O this é útil para evitar ambiguidades

Variável de classe - membro estático


Variável local - apenas atua naquele determinado método. Foi definida dentro do
escopo do método.
Para usar variáveis que atuem além do método, deve-se colocar do lado de fora do
método,
como uma variável de classe ou de instância.
Para usar variável local fora do método, deve-se usar o this para salvar.
Obrigatoriamente, as variáveis locais precisam ser inicializadas.

Objetos por padrão possuem valor nulo - ou seja, nao apontam em nenhum lugar de
memoria.
Dessa forma se inicializo um construtor, sem variável alguma, imprime-se o valor
nulo.
Não é possível tb acessar um método ou atributo q esteja como nulo, de modo q será
lançada uma exceção. De forma,
q não é um objeto real na memória, não apontando para nenhum lugar da memória ou
não ocupando nenhum lugar na memória.

Ex
Criar 3 classes - Pessoa,Comida e Jantar
A classe pessoa deve ter como atributos: nome, peso
método comer e recebe como parâmetro um objeto da classe comida, que será o nome e
peso
deve-se ter o peso da pessoa acrescentado pelo peso da comida. Mostrar o nome da
pessoa e o peso antes e depois
Int, double, char são tipos primitivos

Construtor
Obriga que o objeto receba dados no momento da instanciação do objeto.
Não é obrigatório criar um construtor. A classe já possui um construtor padrão
This significa que estou me referenciando ao atributo do objeto. Sem isso, me
referencio ao parametro do metodo

Encapsulamento
Oculta detalhes da implementação da classe
O objeto nao deve expor nenhum detalhe
Para que outra classe acesse uma claase private, deve-se usar o método especial get
Para que outra classe modifique uma classe private, deve-se usar o método especial
set
Ambos não podem retornar valores (void)

S-ar putea să vă placă și