Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

2. Jar e Javadoc, criar uma API.

Olá,

E as bibliotecas que se usa diariamente como util, io etc, como funciona? Cada classe tem seu main que é acionado quando chamamos o método de uma biblioteca (toString()), por exemplo? Se tiver 100 classes numa biblioteca terão 100 main? Como funciona essa parte?

2 respostas
solução!

Oi Hugo,

O main é somente o ponto de entrada do seu código, nele você pode utilizar diversas classes. Você pode ter um jar sem nenhum main dentro dele.

Imagine que você tenha um jar com as classes Cliente e Funcionario, algo como:

// Cliente.java

package br.com.caelum.dominio.modelos;

public class Cliente {
    private String nome;
    private String cpf;

    // getters e setters

    public String toString(){
        return "Nome [" + this.nome + "] CPF [" + this.cpf + "]";
    }
}

// Funcionario.java

package br.com.caelum.dominio.modelos;

public class Funcionario {
    private String nome;
    private double salario;

    // getters e setters

    public String toString(){
        return "Nome [" + this.nome + "] Salário [" + this.salario + "]";
    }
}

Você poderia importar o jar com estas classes para o seu projeto e criar o seu próprio main para utilizá-las. Por exemplo:

// TestaJar.java

package br.com.caelum.teste.principal;

import br.com.caelum.dominio.modelos.Cliente;
import br.com.caelum.dominio.modelos.Funcionario;

public class TestaJar {
    public static void main (String [] args) {
        Cliente c1 = new Cliente();
        c1.setNome("Batman");
        c1.setCpf("001010011-11");

        Funcionario f1 = new Funcionario();
        f1.setNome("Coringa");
        f1.setSalario(31200);

        System.out.println("Dados do cliente " + c1.getNome());
        System.out.println(c1); // Aqui imprime o retorno do toString do Cliente

        System.out.println("Dados do funcionario " + f1.getNome());
        System.out.println(f1); // Aqui imprime o retorno do toString do Funcionario
    }
}

Veja que no exemplo eu tenho duas classes e apenas um único main sendo executado.

Abraço!

Entendi, a dúvida era mesmo sobre se precisava de um main no jar, mas o jar apenas é um pacote com extensão .jar que eu posso usar em qualquer lugar desde que eu importe o .jar. É como os pacotes da própria aplicação. Obrigado!

Você é Jovial!