Почему методы не считывать данные?
На уровне языка существует объявление полей с инициализацией, но не на уровне байткода. Компилятор переносит все операции инициализации в начало объявленного конструктора или в конструктор по умолчанию. Соответственно, ваш код после компиляции будет соответствовать такому:
public class Student {
    private String name;
    private String secondName;
    private int age;

    private String format;
    private String info;

    public void personInfo(){
        System.out.println(info);
    }

    public Student(String name, String secondName, int age) {
        this.format = ("Меня зовут %s %s и мне %s лет");
        this.info = String.format(format,name,secondName,age);

        this.name = name;
        this.secondName = secondName;
        this.age = age;
    }
}
А значит в момент выполнения String.format(format,name,secondName,age) в полях будет содержаться null.
Полагаю, что значение info вычисляется до выполнения тела конструктора, вычисляй его также в конструкторе с новыми данными