public String Name;:
Объявляется переменная с именем Name типа String.
Модификатор public обеспечивает доступ к переменной из любого места программы.
public void setName(String n) { name = n; };:
Объявляется метод setName с аргументом n типа String.
Внутри метода значение аргумента n присваивается переменной Name.
n – локальная переменная, используемая для передачи значения в метод.
public String getName() { return name; };:
Объявляется метод getName без аргументов, возвращающий значение типа String.
Метод возвращает текущее значение переменной Name.
Перекомпилируй в смали, и я объясню. Да, ответ ниже прав: строка name равна символу n (в компилированном виде это нужно для взаимодействия ресурсов с кодом, но не обязательно именно так) перевели в n-регистр текстовое поле, в методе Name формы стринга типа публик
Твой код, мягко говоря, странный. Если поле объекта public, то get* / set* не имеют смысла. Методы с префиксами get/set принято использовать для доступа к приватному полю - чтобы этот доступ контролировать. private String name; // создаём недоступное снаружи класса поле name
// создаём метод, отдающий текущее значение поля name
public String getName() { return name; }
// создаём метод, устанавливающий новое значение поля name
public void setName(String new_value) { name = new_value; } Соответственно, при работе с объектом этого класса: tmp = obj.getName(); // получаем значение поля name объекта obj и записываем его в переменную tmp
obj.setName(val); // записываем в поле name объекта obj значение переменной val В других языках есть специальные методы (геттеры и сеттеры), автоматически вызываемые при обращении к полю. А в Java приходится вот таким образом обходиться.