A Linguagem Java PDF
Document Details
Uploaded by ForemostRadon
Tags
Summary
This document discusses Java's primitive data types, describing boolean, char, byte, short, int, long, float, and double. It also introduces classes, including constructors and methods. The document briefly touches upon object creation and object-oriented concepts.
Full Transcript
Tipos primitivos do Java A Linguagem Java 19 Algoritmos e Estrutura de Dados Exemplo de classe Esta classe inclui Um atributo inteiro (count), que assume o valor zero por omissão, a não ser que o inicializemos com outro valor; Dois métodos construtores:...
Tipos primitivos do Java A Linguagem Java 19 Algoritmos e Estrutura de Dados Exemplo de classe Esta classe inclui Um atributo inteiro (count), que assume o valor zero por omissão, a não ser que o inicializemos com outro valor; Dois métodos construtores: por defeito e de conversão; Um método consultor (accessor method) e três modificadores (update methods). A Linguagem Java 20 Algoritmos e Estrutura de Dados Criação e utilização de objetos Em Java, as classes são conhecidas como tipos referência. Uma variável de um tipo referência guarda apenas a localização (i.e., o endereço de memória) dum objeto do tipo declarado O objeto tem existência separadamente e essa variável apenas o referencia; Essa variável pode ser vista como um apontador para o objeto; Pode sempre guardar um valor especial, null, que representa a ausência do objeto. Em Java, um novo objeto é sempre criado com o operador new O operador new devolve uma referência para o objeto criado Tipicamente, a referência devolvida é atribuída a uma variável (de um tipo referência) para que posteriormente lhe possamos aceder. Em java, os objetos são sempre alocados de forma dinâmica (via operador new) A Linguagem Java 21 Algoritmos e Estrutura de Dados Objetos Java vs Objetos C++ C++ Java (++ simples) Referenciação Três formas: Uma única forma: - X obj; - X x; - X *ptr; (a variável guarda a referência - X &ref; para o objeto) Acesso aos membros Três operadores: Um único operador: - obj.metod() / ref.metod() - x.metod() / X.metod() - ptr->metod() - X::metod() Alocação Três formas: Uma única forma: - automática; - Os objetos são sempre - estática; alocados de forma dinâmica (c/ - dinâmica (c/ oper. new); oper. new) Desalocação Manual, através do Automática, logo que os objetos operador delete deixem de ser referenciados Exemplo X x; X *p = new X(); X x=new X(); X p = new X(); p->metod(); p.metod(); delete p; p = x; p = &x; A Linguagem Java 22 Algoritmos e Estrutura de Dados Tipos valor e tipos referência Tipos valor: tipos primitivos A variável contem diretamente os dados As comparações (==, !=) e atribuições (=) são realizadas sobre os próprios dados (funcionam bem, i.e., como esperado) ☺ Tipos referência: classes, interfaces, arrays e enumerações A variável contêm apenas a referência para um objeto que existe separadamente O que é comparado (==, !=) e atribuído (=) são as referências, e não os objetos referenciados. Qualquer variável em int n = 10; n 10 Java, ou é de um tipo int n2 = 5; n2 10 primitivo, ou então de n2 = n; um tipo referência c 0 (que contém uma Counter c = new Counter(); referência para uma Counter c2 = new Counter(); c2 0 instância de uma c2 = c; classe, array, …) A Linguagem Java 23 Algoritmos e Estrutura de Dados Continuação do Exemplo Neste exemplo, um novo objeto contador é criado na linha 4, sendo a sua referência guardada na variável c. Na linha 11, as variáveis e e d passam a conter a mesma referência (de um objeto Counter) A Linguagem Java 24 Algoritmos e Estrutura de Dados Outras particularidades do Java Em Java, os parâmetros de um método são sempre passados por valor logo, se passarmos, por exemplo, uma variável inteira para o método, apenas o valor inteiro contido na variável é copiado; O método pode, depois, alterar a cópia do valor, não o valor que ficou na variável de invocação; Se passarmos uma variável referência (variável que referencia um objeto), então é a referência contida nessa variável que é copiada. Em java, os atributos assumem um valor por defeito, logo no momento da sua criação. Esse valor inicial será o null, se o atributo for de um tipo referência; zero, se o atributo for de um tipo primitivo. O mesmo já não acontece com as variáveis locais (internas a um qualquer método) não devendo, por isso, ser usadas antes de lhes ser atribuído explicitamente um primeiro valor. A Linguagem Java 25 Algoritmos e Estrutura de Dados