Здесь у вас есть две разные вещи.Во-первых, вы определяете класс:
public class Classname
"public": что бы вы ни определяли, это будет доступно для использования другими элементами вашего приложения (модификаторы доступа - это отдельная тема, а неотношение к вопросу).
"класс": вы определяете класс.
"Имя класса": вы хотите, чтобы класс назывался именем класса.
Затем вы начинаете определять, что на самом деле внутри вашего класса.То есть, когда вы начнете создавать экземпляры этого класса, у каждого экземпляра будет материал, который вы написали здесь:
Classname field;
Каждый экземпляр класса Classname будет иметь поле типа Classname, и поле будетбыть названным "полем".
Вы не предоставляете никаких модификаторов доступа (здесь нет "public"), поэтому ваше поле будет доступно только методам самого класса.Никто за пределами класса не сможет ничего сделать с этим полем.
"Classname": ваше поле должно быть ссылкой на объект типа Classname.Это интересная часть: вы планируете свой класс таким образом, что каждый экземпляр вашего класса будет ссылаться на некоторый экземпляр того же класса.Он может в конечном итоге ссылаться на себя или ничего не ссылаться (на ноль) или ссылаться на какой-либо другой объект, это зависит от вас, как вы будете использовать это поле, теперь вы просто определяете, что каждый экземпляр Classname будет иметь такую ссылку внутри.
«поле»: ваше поле будет называться «поле».Не очень информативное имя, но это то, что мы имеем.Опять же, каждый экземпляр Classname будет иметь свое собственное поле «field».
Сам пример не очень полезен, поскольку никто за пределами Classname не может получить доступ к «field», но, поскольку Classname не имеет методов и не имеетсвойства, поле не доступно вообще.Но как только вы сделаете свое поле общедоступным или добавите методы к своему классу, ваш класс станет моделью для какой-то цепочки объектов, где каждый объект типа Classname будет иметь ссылку на следующий объект того же типа, который на самом деле можетбыть полезным.