Baixe o app para aproveitar ainda mais
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); } } * * * *
Compartilhar