Uma classe mesmo sem atributos continua sendo um molde para objetos.
Quando falamos em instância de uma certa classe estamos falando da realização das especificações definadas (na classe) ocupando um lugar na memória.
Uma classe sem atributos ela terá comportamento que são os métodos e cada objeto instanciado terá um lugar na memória de forma isolada existindo.
Nossaaa, sua explicação me fez refletir muito sobre o assunto, espero chegar a esse nivel de clareza logo na hora de criar um código, se eu entendi bem: só o ato de chamar um método e armazena-lo dentro de uma variável já é uma forma de instanciar um obj, a forma de explicar por ai me fez entender que uma instancia só é instancia quando temos a palavra new, como por exemplo: Pessoa fulano = new Pessoa();
Quase sempre será isso mesmo, para se ter uma instância de um objeto você usa o new
. Isso pode variar de uma linguagem para outra, mas normalmente segue o mesmo padrão.
É um exemplo muito raso, mas você pode pensar em classes como plantas para construção de uma casa, a casa construída é uma "instância da planta". A mesma planta pode ser usada para quantas casas forem possíveis, mas cada casa construída oculpa um espaço com seu devido endereço, o que acontece com uma não interfere na outra.
Exatamente - quando você realiza um objeto você tem o que chamamos de instância.
Uma classe por si não tem como residir em vários lugares na memória de forma isolada.