Dúvidas sobre o roteiro de uma programa java

Pessoal estou estudando sozinho vou precisar muito da ajuda de vocês e como vocês mesmo sabem não é fácil aprender java sozinho.

Estou no ínicil de um programa para banco da apostila Caelum.

1-Eu queria tirar uma dúvida “Os atributos eles sempre são colocados antes do bloco Main?”, ou seja, é feito uma classe só pra eles.
2-E para instanciá-lo criar uma uma nova classe?
3-E para acessar a classe anterior criar uma outa classe? (chamada classe de acesso).

Favor a quem poder me ajudar me passe esse roteiro, preciso entender para que possa ter uma linha de raciocínio legal que acho importante em java e também possa dá os primeiro passos.

Valeu galera.

Carinha

Baixe a apostila de java da caelum, pra vc aprender http://www.caelum.com.br/apostilas/, é a apostila FJ-11

Lendo ela inteira você aprendera como iniciar em java

Falows

Respostas:
1 - Não.
Você pode colocar os atributos onde bem entender, dentro das chaves que indicam o escopo da classe.
Nem toda classe java conterá um bloco main. Nem toda classe java possuirá qualquer atributo ou qualquer método.
Aliás, você precisa rever o conceito de classe, que, basicamente é “um composto que abstrai determinado objeto, suas características (atributos) e ações (métodos), podendo, ainda, não conter nenhuma ação (método) ou característica (atributo)” = Uma classe tem o objetivo de representar um objeto do mundo real, mas pode omitir ou ignorar determinadas coisas, dependendo do que você pretende fazer. Por exemplo, se o teu sistema quer somente o nº de objetos passageiro que um objeto carro suporta, saber qual a cor dele é irrelevante.
2 - Depende.
Instanciar um objeto significa incorporar à execução de determinada parte de um aplicativo o objeto requerido. Você está confundindo o conceito de instanciar.
Considerando as perguntas 1 e 2, me parece que você se perdeu em herança.
Quais livros você está lendo?
3 - Não.
Para acessar qualquer classe, aí sim, basta instanciá-la (isso num primeiro momento, até você descobrir os frameworks).
Suponha que você tem 1 classe chamada Calculadora e 1 chamada Soma.
Quando você insere o primeiro operando, o sinal de adição, o segundo operando e clica em “=”, nesse momento estará instanciando a classe Soma, passando os parâmetros. Ela irá proceder com a lógica que lhe cabe e retornar a soma dos operandos inseridos.
Calc

 public classCalculadora{
  ...//logica aqui
  public void soma(){
   Soma s = new Soma(op1, op2);
   int res = s.getSoma();
   System.out.println("Soma: " + res);
  }
 }

Soma

public class Soma{
 public Soma(int op1, int op2){
  this.op1 = op1;
  this.op2 = op2;
 }
 int op1;
 int op2;

 public getSoma(){
  return op1 + op2;
 }
}