Campos de classe
A essência da programação orientada a objetos é representar o programa como uma interação de objetos.
 
Um objeto é algum tipo de entidade com certas propriedades e certas operações nele.

Os objetos foram originalmente criados para simular a realidade: muitas coisas ao nosso redor podem ser representadas como um objeto. Por exemplo, um livro que você leu recentemente pode ser pensado como um objeto com as propriedades 'nome', 'autor', 'classificação etária', 'texto do livro', 'número de páginas', etc. pode executar operações como "ler um livro", "queimar um livro", etc.
Na terminologia da linguagem de programação Java, essas "propriedades" são chamados de campos, e as operações em objetos são chamadas de métodos.
Como Java é uma linguagem tipada estaticamente, qualquer objeto deve ser criado de acordo com algum padrão. Em Java, esses modelos são classes. Classe descreve quais campos um determinado tipo de objeto pode ter e quais operações são definidas nele.
A diferença entre classe e objeto é análoga à diferença entre "carro" e "Toyota Camry estacionado no 5º prédio da Rua Cheburekovo".

Considere o procedimento para criar sua própria classe de objetos com campos em Java. livro escolar { stringname; String autorNome; int idadeRequisito; Stringtexto; int pageCount; } Este código cria a classe"Livro". objetosda classe «Livro» existem duas propriedades de número inteiro (chamadas «ageRequirement» e «pageCount») e três propriedades do tipo «String» (com os nomes "name", "authorName" e "text".
A sintaxe geral para criar uma classe com campos é a seguinte.
  classe <nome da classe> { <primeiro tipo de propriedade> <nome da primeira propriedade> <segundo tipo de propriedade> <nome da segunda propriedade> &helli; <tipo de última propriedade> <último nome da propriedade> }

Obviamente, em Java, você pode criar classes não apenas dessa maneira (também existem métodos, modificadores de acesso e muito mais), mas mais sobre isso posteriormente.

Métodos de classe
As operações em objetos em Java são chamadas de métodos. Métodos são como funções matemáticas: eles podem receber argumentose retornar um valor. Por outro lado, os métodos em Java também têm acesso a todos os campos de um objeto.

Para criar um método em uma classe, você deve incluí-lo na classe. Por exemplo, podemos definir um método print(age) que imprimirá informações sobre nosso livro e exibirá um aviso se o usuário ainda não tiver idade suficiente para esse livro.

    aula Livro
    {
        Nome da string;
        String authorName;
        int requisito de idade;
        String text;
        int pageCount;
        // cria um método de impressão
        void impressão(int idade)
        {
            Sistema.fora.< span style="color:#7d9029">println("Nome: " +nome);
            Sistema.fora.< span style="color:#7d9029">println("Autor: " +nome do autor);
            Sistema.fora.< span style="color:#7d9029">println("Número de páginas: "+Inteiro.toString(ageRequirement);
            // o código de verificação vai aqui
        }
    }
 
Vamos analisar a sintaxe para criar um método.
1) A primeira linha de um método é sua assinatura.
2) O tipo de retorno do método é escrito primeiro. Nosso método não retorna nenhum valor, então escrevemos void.
3) Em seguida na assinatura está o nome do método (print).
4) Entre parênteses há uma lista de argumentos. Os argumentos são separados por vírgulas. Para cada argumento, seu tipo e nome são especificados, separados por um espaço. No nosso caso, existe apenas um argumento, ele tem o tipo int e o nome age, portanto não há vírgulas.
5) Depois disso, vem o código do método entre chaves. Para retornar um valor de um método, escreva return <value>;. No exemplo, o método não retorna nada, então return pode ser omitido. Para encerrar prematuramente a execução de um método, você pode escrever return;.
6) Na própria classe, podemos nos referir aos campos do objeto desta classe pelo nome.

Modificadores de acesso
Por padrão, todos os campose métodos de uma classe em Java são privados. Isso significa que ninguém pode acessá-los, o que significa que fora dos objetos dessa classe, nenhum método pode usar os campos e métodos dos objetos dessa classe.

Campos e métodos podem se tornar públicos com o modificador de acesso public. Há também um modificador private que torna o campo privado. É opcional, pois todos os campos e métodos são privados por padrão. Aqui está um exemplo de uso dos modificadores public  e private. livro escolar { stringname público; String autorNome; private int ageRequirement; Stringtexto; public int pageCount; int getTextLength() { return tamanho do texto(); } public int getAverageLetterCount() { return getTextLength() / pageCount; } private int getDifficuiltyLevel() { return 5 * idadeRequisito * text.Length(); } }
Nesta versão da classe Book, os campos name e pageCount são tornados públicos para leitura e modificação em outros objetos. O método getAverageLetterCount() também está disponível para ser chamado a partir de objetos de outras classes. Todos os outros campos e métodos permanecem privados e estão disponíveis apenas nos métodos desta classe. No método público getAverageLetterCount() podemos chamar o método privado getTextLength() porque getAverageLetterCount() pertence à própria classe. Mas não funcionará de um método de outra classe.

Mas por que então tornar os campos privados? No código Java, você verá apenas campos privados. O fato é que, se o acesso a campos privados for realizado por meio dos métodos públicos do objeto, com qualquer acesso a campos privados será possível realizar ações e verificações adicionais. Mais sobre isso estará na lição sobre encapsulamento.

As lições até agora discutiram a criação de classes, que são modelos para a criação de objetos. Na mesma aula, será descrito o processo de criação e utilização dos próprios objetos.

Links
Na linguagem Java, uma variável nunca pode armazenar um objeto. Em vez disso, Java possui referências que apontam para a localização de um objeto na memória.
A sintaxe para criar uma variável do tipo referência de objeto é a seguinte:
<Nome da turma> <nome da variável>;
Vale ressaltar que indicamos imediatamente a classe cujos objetos serão referenciados.

Exemplo: uma variável chamada "b" apontando para a classe Book:

Livro b;

Da mesma forma, você pode criar campos de classe (você pode adicionar um modificador de acesso lá). Você pode criar arrays de referências e retorná-los de métodos. Exemplo:

public classe Biblioteca {
  Livro público[] livros;
  Livro público findBookWithName(String name) {
//código que encontra o livro certo
  }
};


Conclusão: de várias maneiras, você pode trabalhar com referências da mesma forma que com variáveis ​​de outros tipos elementares (int, long, double...).