Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Mdulo 2
Programao Orientada a Objetos
Objetivos do Mdulo
Definir os conceitos: abstrao, encapsulamento e pacotes Discutir por que podemos reusar cdigo de uma aplicao na tecnologia Java Definir classe, membro, atributos, mtodos, construtor e pacote Usar os modificadores de acesso private e public como guia para encapsulamento Invocar um mtodo em um objeto particular
Mdulo 2, 2-29
Objetivos do Mdulo
Em um programa Java, identificar o seguinte: A declarao de pacote (package) As declaraes import Classes, mtodos, e atributos Construtores Usar a documentao de online da API Java (Application Programming Interface)
Mdulo 2, 3-29
Abstrao
Funes Escrever um algoritimo que pode ser usado em vrias situaes. Objetos Agrupam um conjunto de atributos relacionados e comportamentos dentro de uma classe. Frameworks and APIs Conjunto de objetos que so desenvolvidos para darem suporte a atividades complexas.
Mdulo 2, 4-29
Exemplo:
public class Veiculo { private String cor; public void setCor(String value) { cor = value; } }
Fundamentos da Linguagem de Programao Java
Mdulo 2, 6-29
Declarando Atributos
Sintaxe bsica de um atributo
<attribute_declaration> ::= <modifier> <type> <name> [= <default_value>]; <type> ::= byte | short | int | long | char float | double | boolean | <class>
Exemplos:
public class Foo public int private float private String } { x; y = 12626.0F; name = "Fred Flintstone";
Mdulo 2, 7-29
Declarando Mtodos
Sintaxe bsica de um mtodo
<method_declaration> ::= <modifier> <return_type> <name> (<parameter>*) { <statement>* } <parameter> ::= <parameter_type> <parameter_name>,
Exemplos:
public class Dog { private int weight; public int getWeight() { return weight; } public void setWeight(int new_weight) { weight = new_weight; } }
Fundamentos da Linguagem de Programao Java
Mdulo 2, 8-29
Mdulo 2, 9-29
3. Criar um mtodo chamado exibirData(), dentro da classe Data, que imprima a data no formato dd/mm/yyyy, atravs dos atributos dia, mes e ano da classe Data. 4. Criar uma classe DataTest, que contenha o mtodo main. Dentro do mtodo main: Declarar e instnciar uma varivel de referncia para um objeto da classe Data, setar seus atributos, e executar o mtodo exibirData().
O cdigo Cliente tem acesso direto aos dados internos do objeto, e com isso, dados invlidos podem ser armazenados.
Mdulo 2, 11-29
Desta forma, poderamos ter uma data 32/13/2263 o que estaria errado do ponto de vista de representao de data, porm o sistema no poderia criticar pois as variveis possuiriam valores vlidos, do ponto de vista de programao.
Mdulo 2, 12-29
MyDate d = new MyDate() d.setDay(32); // dia invlido, retorna false d.setMonth(2); d.setDay(30); // dia no permitido no ms, retorna false d.setDay(d.getDay() + 1); // retorna false se dia for permitido
Mdulo 2, 13-29
Encapsulamento
Esconde detalhes de implementao de uma classe. Fora o usurio a utilizar uma interface para acessar os dados. Torna o cdigo mais fcil de se realizar manuteno.
Mdulo 2, 14-29
Declarando Construtores
Sintaxe bsica de um construtor
<constructor_declaration> ::= <modifier> <class_name> (<parameter>*) { <statement>* }
Exemplos:
public class Thing { private int x; public Thing() { x = 47; } public Thing(int new_x) { x = new_x; } }
Fundamentos da Linguagem de Programao Java
Mdulo 2, 15-29
Declarando Construtores
public class Thing { private int x; public Thing() { x = 47; } public Thing(int new_x) { x = new_x; } public int getX() { return x; } public void setX(int new_x) { x = new_x; } }
Mdulo 2, 16-29
Declarando Construtores
Usando o exemplo:
public class TestThing { public static void main(String[] args) { Thing thing1 = new Thing(); Thing thing2 = new Thing(42); System.out.println("thing1.x is " + thing1.getX()); System.out.println("thing2.x is " + thing2.getX()); } }
Sada:
thing1.x is 47 thing2.x is 42
Mdulo 2, 17-29
Construtor Default
Toda classe sempre ter pelo menos um construtor. Se no for definido um construtor, Java ir criar um construtor default automticamente. Construtor Default: No possui argumentos; Sempre ter o mesmo modificador de acesso da classe; No possui corpo para incluso de cdigo; A funo do construtor default permitir que um objeto seja instanciado atravs da instruo new Xxx( ).
Mdulo 2, 18-29
public class VehicleCapacityReport { private List vehicles; public void generateReport(Writer output) {...} }
Fundamentos da Linguagem de Programao Java
Mdulo 2, 19-29
Pacotes de software
Pacotes ajudam a gerenciar sistemas grandes e complexos. Pacotes podem conter classes e sub-pacotes.
Mdulo 2, 20-29
A instruo package
Sintaxe bsica da declarao package:
<package_declaration> ::= package <top_pkg_name>[.<sub_pkg_name>]*;
Exemplo:
package shipping.reports.web;
Deve ser definido no incio do arquivo fonte Java. S pode existir uma (1) declarao de pacote por programa fonte. Se no for definido nenhum package, ento a classe pertencer a um package defalut. Os nomes dos pacotes devem ser hierrquicos e separados por ponto (.)
Mdulo 2, 21-29
A instruo import
Sintaxe bsica da declarao import:
<import_declaration> ::= import <pkg_name>[.<sub_pkg_name>]*.<class_name | *>;
Exemplo:
import shipping.domain.*; import java.util.List; import java.io.*;
Deve ser definido antes de todas as declaraes de classes e abaixo da instruo package.
Mdulo 2, 22-29
Mdulo 2, 23-29
Mdulo 2, 25-29
Mdulo 2, 26-29
2.2 Tarefa 1. Usar o browser para explorar a Java 2 SDK API 2. Criar um projeto no Eclipse chamado Modulo2Exercicio2. 3. Alterar os atributos da classe Data de public para private. 4. Definir um construtor para a classe Data que receba por argumento, 3 valores inteiros e atribua para os atributos da classe Data. 5. Criar mtodos getters e setters para os atributos da classe Data. 6. Gerar a especificao para a classe Data.
Mdulo 2, 27-29
Mdulo 2, 28-29
Mdulo 2, 29-29