Buscar

05 - Classes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 23 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 23 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 23 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

JCM
Licenciatura em Computação
*
Programação Orientada a Objetos
Autor: José Carlos Mota
JCM
Bacharelado em Computação
*
UEPB
UEPB
Licenciatura em Computação
JCM
Licenciatura em Computação
*
Classes
JCM
Bacharelado em Computação
*
Classes são modelos de objetos existentes na vida real.
Elementos de uma classe:
Variáveis – são atributos dos objetos
Métodos – são instruções que realizam tarefas, também conhecidos como funções e/ou procedimentos.
Bacharelado em Computação
JCM
Licenciatura em Computação
*
Classes (Exemplo:)
JCM
Bacharelado em Computação
*
Bacharelado em Computação
import javax.swing.JOptionPane;
public class MinhaClasse {		//o arquivo deve ser: MinhaClasse.java
	int x = 0;		//variável da classe
	double y = 0;		//variável da classe
	public MinhaClasse () {	// método construtor (mesmo nome da classe)
		x = 100;	// quando esta classe for instanciada, x e y
		y = 52.3D;	// passarão a ter esses valores
	}
	// Outros métodos da classe
	public void imprime(String s, int x) {	//imprime não retorna nada
		System.out.println(“s =” + s + “x=” + x + “Este x=”+ this.x);
	}
	public String lestr() {		//lestr retorna um string de caracteres
		String s = JOptionPane.showInputDialog(“Digite um string”);
		return s;
	}
}
JCM
Licenciatura em Computação
*
Criação de objetos
JCM
Bacharelado em Computação
*
Para ativar os métodos da classe MinhaClasse, precisamos criar um objeto, ou seja, criar uma instância da mesma.
Isto é feito com o operador new. Conforme exemplo em seguida.
Bacharelado em Computação
JCM
Licenciatura em Computação
*
Ativação da classe MinhaClasse
JCM
Bacharelado em Computação
*
Bacharelado em Computação
/*	Classe principal que cria um objeto do tipo MinhaClasse
e ativa os métodos dessa classe
*/
public class Princ {
	public static void main (String[] args) {
		// cria um objeto chamado mc do tipo MinhaClasse
		MinhaClasse mc = new MinhaClasse();
		mc.imprime(“Carlos”, 50);	//ativa o método imprime
		String str = mc.lestr();	//obtem um string
		System.out.println(str);
		System.exit(0);		//encerra a aplicação
	}
}
JCM
Licenciatura em Computação
*
Parâmetros
JCM
Bacharelado em Computação
*
Em java, os parâmetros são passados por valor e não por referência.
Deste modo, as variáveis passadas só são alteradas no método chamado.
Quando retorna para ao método chamador, os valores permanecem inalterados.
Bacharelado em Computação
JCM
Licenciatura em Computação
*
Parâmetros (Exemplo:)
JCM
Bacharelado em Computação
*
Bacharelado em Computação
public class princ {
	public static void main (String[] args) {
		Mclasse mc = new Mclasse();
		int x = 100;
		int y = 200;
		mc.metodo(x, y);
		System.out.println(“x =” + x + “ y=” + y);
	}
}
public class Mclasse {
	metodo(int x, int y) {
		x = 2000;
		y = 3000;
		System.out.println(“x do metodo=” + x + “ y do método=”+ y);
	}
}
JCM
Licenciatura em Computação
*
Método de Finalização
JCM
Bacharelado em Computação
*
Em java, existe a coleta de lixo automática, ou seja, arquivos abertos, alocação de memória, etc. são automaticamente fechados quando a aplicação é encerrada.
Por outro lado, existe o método finalize() que pode ser criado para realizar estas tarefas.
Bacharelado em Computação
JCM
Licenciatura em Computação
*
Método de Finalização (Ex.:)
JCM
Bacharelado em Computação
*
Bacharelado em Computação
JCM
Licenciatura em Computação
*
Pacotes (packages)
JCM
Bacharelado em Computação
*
São grupos de classes relacionadas e armazenadas em um mesmo local.
Em java, existem vários pacotes com classes prontas que enriquecem a linguagem.
Exemplos:
java.io	//classes de I/O
java.lang	//classes básicas
java.awt	//classes gráficas
Etc.
Bacharelado em Computação
JCM
Licenciatura em Computação
*
Pacotes (packages)
JCM
Bacharelado em Computação
*
Em um arquivo, a primeira linha de código deve ser para declarar pacotes, caso existam.
Exemplo:
package nome_do_pacote;
Bacharelado em Computação
JCM
Licenciatura em Computação
*
Pacotes (packages)
JCM
Bacharelado em Computação
*
nome_do_pacote
significa o caminho de diretório onde encontram-se os arquivos .class
Bacharelado em Computação
JCM
Licenciatura em Computação
*
import
JCM
Bacharelado em Computação
*
A diretiva import deve ser utilizada para fazer referência as classes que foram previamente compiladas.
As classes podem ser referenciadas sem a inclusão do nome do pacote.
Ex:
import java.io.*; // as classes de I/O serão incluídas
Bacharelado em Computação
JCM
Licenciatura em Computação
*
Uso de Pontos
JCM
Bacharelado em Computação
*
Em java usa-se o ponto para ativar e unir alguns nomes de classes, pacotes e métodos.
Exemplos:
java.lang.System.out.println(x);
java.awt.*;
mc.metodo();
Bacharelado em Computação
JCM
Licenciatura em Computação
*
Uso de Pontos (descrição)
JCM
Bacharelado em Computação
*
No primeiro exemplo temos: Classe começa com letra maiúscula, logo:
java.lang → é o nome do pacote
System → nome da classe
out → objeto da classe System
println → método da classe System
Bacharelado em Computação
JCM
Licenciatura em Computação
*
Uso de Pontos (descrição)
JCM
Bacharelado em Computação
*
No segundo exemplo, temos:
java.awt → é o pacote
.* → inclui todas as classes desse pacote, bem como todos os métodos dessas classes
Bacharelado em Computação
JCM
Licenciatura em Computação
*
Uso de Pontos (descrição)
JCM
Bacharelado em Computação
*
No terceiro exemplo, temos:
mc → objeto instanciado de uma determinada classe.
metodo() → método da classe instanciada pelo objeto mc. Observar que metodo termina com () parênteses, logo é um método.
Bacharelado em Computação
JCM
Licenciatura em Computação
*
Herança
JCM
Bacharelado em Computação
*
É uma das ferramentas mais poderosas da programação orientada a objetos.
O conceito básico é o reaproveitamento de código já elaborado e fazer modificações e ampliações sobre o mesmo.
Bacharelado em Computação
JCM
Licenciatura em Computação
*
Herança
JCM
Bacharelado em Computação
*
Para utilizar-se deste mecanismo, deve-se usar o modificador extends.
Com isto, o compilador é informado que a classe presente deve ser estendida e o novo código deve ser utilizado, bem como partes inalteradas.
Bacharelado em Computação
JCM
Licenciatura em Computação
*
Herança (Exemplo:)
JCM
Bacharelado em Computação
*
Bacharelado em Computação
import java.awt.*;
public class MinhaAplGrafica extends Frame {	//herança da classe Frame
	public MinhaAplGrafica() {
		super(“Nome da Aplicação”);	//cabeçalho
		setSize(250, 300);			//dimensão do frame
		setLocation(50, 50);			//localização da janela
		Button b1 = new Button(“Cadastro”);	//cria um botão
		add(b1);				//adiciona o botão
	}
}
JCM
Licenciatura em Computação
*
Herança (Exemplo: cont.)
JCM
Bacharelado em Computação
*
Bacharelado em Computação
public class Princ {		// ativa a aplicação
	public static void main(String[] args) {
		MinhaAplGrafica f = new MinhaAplGrafica();
		f.show();
	}
}
JCM
Licenciatura em Computação
*
Sobrecarga
JCM
Bacharelado em Computação
*
Métodos em Java podem ser sobrecarregados.
Usa-se o mesmo nome do método com parâmetros diferentes ou de tipos diferentes.
Segue exemplo.
Bacharelado em Computação
JCM
Licenciatura em Computação
*
Sobrecarga
JCM
Bacharelado em Computação
*
Bacharelado em Computação
//Classe com métodos sobrecarregados
public class Sobrecarga {
	double w = 0;
	double metodo(int x, int y) {
		x +=2;
		y -= 5;
		w = x + y;
		return (w);
	}
	double metodo(long x, long y) {
		x += 2;
		y -= 5;
		w = x + y;
		return(w);
	}
}
*
*
*
*

Outros materiais