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

Como criar uma classe dentro de um classe (?)

Bem, cheguei na parte do "Trabalhando com Objetos" do texto complementar da aula 1 de Algoritmos e pedem pra criar uma classe chamada "Produtos" e o código que mostra depois dessa parte fica assim

public class Produto {

    private String nome;
    private double preco;

}

Bem, aqui vai minha duvida, como eu posso criar minha classe? Faço da mesma maneira que explicaram logo no inicio? Só explica detalhadamente como criar o produto. O meu código atual está assim

public static void main(String[] args) {
        Produto produtos[] = new Produto[5];
        precos[0] = new Produto("Lamborghini, 1000000");
        precos[1] = new Produto("Jipe", 46000);
        precos[2] = new Produto("Brasilia", 16000);
        precos[3] = new Produto ("Smart", 46000);
        precos[4] = new Produto ("Fusca", 17000);
        int maisBarato = 0;

        for (int atual = 0; atual <= 4; atual++){
            if (precos[atual] < precos [maisBarato]){
                maisBarato = atual; 
            }

            System.out.println(maisBarato);
            System.out.println("O mais barato custa" + precos[maisBarato]);
        }



      }
    }

Estou achando aula de Algoritmos com java muito complicada (?) a de Ruby estava entendendo completamente, mas segui recomendações e comecei por Algoritmos 1. Tem algo errado no código? Obrigado.

10 respostas

Pra deixar mais claro minha duvida, retirei a parte do texto.

" Trabalhando com objetos

Nós sabemos que quando trabalhamos com Java não precisamos, necessariamente, utilizar tipos primitivos. Temos a opção de criar novas classes e objetos. Como nossos elementos têm nome e preço, não faz sentido que um produto seja um double. Por exemplo, a Lamborghini, o Smart, o Fusca, todos têm um nome...

Desejamos obter um produto com nome e com preço. Então, ao invés, de ter um array de double, eu vou ter um array de produtos. Vamos, então, criar uma classe de Produtos? A classe Produto terá um nome e um preço: "

Alguém?

Alguém para me ajudar? Estou a um bom tempo tentando entender essa parte e não consegui.

Então Bruno, não entendo muito bem de java mas com esse conceito de classe acho que posso te ajudar.

Para criar uma classe basta fazer exatamente como foi passado

public class Produto {

    private String nome;
    private double preco;

}

você coloca class e o nome dela. Uma classe é composto por atributos e métodos. Os atributos seriam variáveis dentro de uma classe (nesse código nome e preco são os atributos) e métodos seriam funções. Pense numa classe como se fosse um molde para criar um objeto.

Não pode ter uma classe dentro de outra classe, é recomendado você ter um arquivo para cada classe e também que esse arquivo tenha o mesmo nome da classe.

Se você quiser entender mais sobre classe, objetos recomendo que estude o paradigma de Programação Orientada a Objetos, assim você vai entender mais sobre esses conceitos.

Então Daniel, eu teria que criar a

public class Produto {

    private String nome;
    private double preco;

}

Junto da Public Main Void?

public static void main(String[] args) {
        Produto produtos[] = new Produto[5];
        precos[0] = new Produto("Lamborghini, 1000000");
        precos[1] = new Produto("Jipe", 46000);
        precos[2] = new Produto("Brasilia", 16000);
        precos[3] = new Produto ("Smart", 46000);
        precos[4] = new Produto ("Fusca", 17000);
        int maisBarato = 0;

Lendo o texto complementar achei muito complicado.

Não, você vai criar um novo arquivo só para a classe Produto

Produto.java

public class Produto {

    private String nome;
    private double preco;

}

Nesse trecho de código:

public static void main(String[] args) {
        Produto produtos[] = new Produto[5];
        precos[0] = new Produto("Lamborghini, 1000000");
        precos[1] = new Produto("Jipe", 46000);
        precos[2] = new Produto("Brasilia", 16000);
        precos[3] = new Produto ("Smart", 46000);
        precos[4] = new Produto ("Fusca", 17000);
        int maisBarato = 0;

Você chama a classe Produto normalmente igual ta ai.

Então eu vou rafazer esse arquivo em outro e escrever tudo como se tivesse montando o primeiro código com o "Public Main" é isso?

solução!

O arquivo que tem o public static void main você pode deixar do jeito que está, você só vai pegar mesmo o public class Produto e jogar num arquivo diferente.

Ah, creio que entendi! Obrigado, caso eu apareça com a mesma duvida mais pra frente, posto de novo. Mas muito obrigado haha

De nada, poste sim.

Só pra reforçar: quando você for criar uma classe, crie um arquivo só para ela.