é sempre bom postar tanto o código quanto o erro que está dando.
bom, eu achei essa sua classe muito confusa, cara… na hora de instanciar ela, o construtor recebe o nome e o telefone… mas os getters do nome e telefone não retornam esse valor, eles lêem de System.in e retornam oq eles leram, ou seja, os parametros do construtor nunca vão servir para nada.
mas isso nao impediria sua classe de compilar. O erro que eu imagino que seja, é que sempre que voce cria um método cujo tipo de retorno é algo diferente de void, esse método deve sempre retornar um valor através da instrução return.
os seus setters(setnome, settelefone), foram declarados de forma a retornarem valores String, mas em momento algum voce fez isso. Como os setters servem apenas para ajustar o valor de algum atributo da classe que nao seja acessivel diretamente(como os seus atributos nome e telefone, que são privados[isso sim vc fez corretamente]), o recomendavel é fazer eles retornarem void, ou seja, não retornam nada.
outra coisa: as regras que vou citar, são parte de uma convenção, não faz diferença nenhuma no q diz respeito a compilação e execução, mas ajuda na leitura do código, seja por voce mesmo ou por terceiros:
para nomes de classes, sempre utilize a primeira letra de cada palavra que compoe o nome em maiuscula, e as outras em minusculo. ex:
Contato, MinhaClasse, FormPrincipal, etc.
para nomes de atributos e métodos, variaveis, parametros, vc faz algo parecido, a diferença é que a primeira letra da primeira palavra será minuscula.
ex: setNome(), setTelefone(), telefone, nome, getText(), etc…
nomes de atributos, métodos, classes, parametros, etc, devem deixar claro o seu proposito, ou seja, ao invés de receber uma String chamada s no método setnome(), vc poderia utilizar uma String chamada nome, ou novoNome, ou algo assim.
reescrevendo o seu método setnome de acordo com as convenções, ficaria assim:
public void setNome(String novoNome) {
nome = novoNome;
}