O Milton @Zeca_Peteca já deu uma luz boa. Deixa eu tentar ir um ponto antes.
Quando você cria uma classe, você precisa de atributos. Esses atributos podem ter alteradores de visibilidade.
Então um atributo pode ser visto só pela classe; pela classe e as que herdam ela; pelas classes do mesmo pacote; ou por todo mundo.
Imagine como se fosse um caderno seu… você pode deixar suas amigas lerem; todas as pessoas da sua sala; todas as pessoas da sua faculdade; ou só você mesma. Isso é a visibilidade dos atributos.
Outra forma de ter acesso a esses dados é por getters (“pegadores”) e setters (“definidores”).
Então você cria métodos (funções) que dão acesso a algumas variáveis (atributos), conforme necessidade. Isso funciona dentro de uma coisa chamada “encapsulamento”, que é um dos princípios a orientação a objetos.
Sobre os getters (coletar informações armazenadas)
Pense num atributo de senha (password). Você pode ter uma função que compare o que o usuário digitou com a senha armazenada; mas você não pode simplesmente deixar outra classe exportar a senha limpa para o usuário, pois isso seria uma brecha de segurança imensa.
Então nem todos os getters podem ser usados. Existem atributos que não convém ter getters.
Sobre os setters (definidores)
Eles servem para definir valores dos atributos. Vamos supor que você tenha uma classe chamada Cachorro. Esse cachorro tem vários atributos, entre eles a raça, o tamanho, as cores, o nome dele etc. Você pode criar um objeto e instanciar ele já passando esses atributos. Ou você pode instanciar uma classe dessas e depois passar os atributos.
Essa passagem de valores depois é feita por meio dos setters.
ISSO É UM RESUMO. Recomendo ler a teoria mais a fundo para pegar bem a ideia.
=============
Então sobre seu problema, você vai ter duas classes: a Principal e a Aluno.
public float getMedia() {
}
É um getter. Veja que ele começa com “get”, e isso é o emprego das boas práticas de programação. Ele coleta um dado do teu objeto.
A questão das notas, você pode fazer um IF, algo como
public void setNota(float notaDigitada) {
if ((nota >= 0.0) && (nota <= 10.0)) {
println("Nota válida");
this.nota = notaDigitada;
} else {
println("Nota inválida");
}
Neste caso você está fazendo um setter, definindo uma nota.
Entendeu a lógica?
Tenta aí e posta aqui o resultado, para esclarecermos as dúvidas específicas.
Bons estudos! E seja bem vinda ao fórum!
PS: quando tiver mais experiência, lembre de voltar aqui e ajudar aos novatos.