Entender as APIs e a relação entre objetos, dúvida

6 respostas
J

Olá

Estou estudando as APIs de Date, DateFormat, SimpleDateFormat e Calender.
Pesquisando exemplos de uso para entender o que as APIs dizem
sobre cada classe e seus métodos, fiquei muito confuso de como devo
pensar a relação entre a herança entre as classes e a chamada dos métodos das
superclasses nas subclasses e como relacionar objetos/métodos de classes de um pacote
com objetos/métodos de classes de outros pacotes.

Segundo as APIs as relações entre as classes que citei é esta
java.lang.Object
        java.text.Format
            java.text.DateFormat
                java.text.SimpleDateFormat

				
    java.lang.Object
        java.util.Date

		
    java.lang.Object
        java.util.Calendar

Dai me deparei com o seguinte exemplo, que funciona:

import java.util.*;
import java.text.*;

public class Estudos{ 
  public static void main(String args[]){ 
    
	Calendar agora = Calendar.getInstance();
    
    // formata e exibe a data e hora atual
    Format formato = new SimpleDateFormat("dd/MM/yyyy - HH:mm:ss");
    System.out.println("Hoje é: " +formato.format(agora.getTime()));

    // vamos adicionar 5 dias a esta data
    agora.add(Calendar.DAY_OF_MONTH, 5);  // o mesmo resultado pode ser obtido com agora.add(Calendar.DATE, 5);
    
    // formata e exibe o resultado
    formato = new SimpleDateFormat("dd/MM/yyyy - HH:mm:ss");
    System.out.println("Daqui a 5 dias será: " +formato.format(agora.getTime()));
  } 
}

O que me é confuso:
a) agora --> objeto de Calender;
b) formato --> objeto de SimpleDateFormat tipificado como Format;
c) formato.format(agora.getTime()); --> objeto formato de SimpleDateFormat chama o método format de Format, que, por sua vez, contem o objeto agora de Calender com o seu método getTime.

Sem olhar um exemplo, como poderia chegar a conclusão que poderia fazer isso só olhando as APIs?
Qual é o esquema geral (como devo pensar) da relação entre objetos/métodos nas chamadas de método pela anotação de ponto?

Obrigado.

6 Respostas

wagnerfrancisco

No javadoc destas APIs normalmente tem exemplos de uso, como você pode ver na classe Calendar.

Caso contrário, você precisa verificar os métodos das classes. O que cada um faz. Se for um método estático, você pode invocá-lo diretamente, caso contrário você precisa criar uma instância antes. Mas isto é bem superficialmente. O esquema é ler o javadoc de maneira bem detalhada.

J

Olá novamente wagnerfrancisco

A dica já ajuda, tinha pensado nela, mas faltava confirmação, certeza.

Agora os docs das APIs em docs.oracle.com/javase/7/dosc/API e javadoc são coisas diferentes?

wagnerfrancisco

Aham, é isto mesmo!

Edit: Quis dizer que a documentação postada é o próprio javadoc.

J

OK.

E onde acho esse javadoc?

wagnerfrancisco

Desculpe-me, eu quis dizer que era a mesma coisa. O link que tu postou é referente aos javadocs. Vou editar o post anterior.

J

wagnerfrancisco

OK. Valeu.

Criado 25 de agosto de 2012
Ultima resposta 25 de ago. de 2012
Respostas 6
Participantes 2