Olá a todos.
Sou novo aqui no fórum. Já tem um tempo que venho estudando java e estou começando ainda.
Eu estava procurando um site na internet onde eu pudesse tirar minhas dúvidas com gente que entende de java e que saiba explicar, e acho que aqui seria um bom lugar.
A minha dúvida é a seguinte:
Eu estou lendo aquele livro de java que creio que vocês conhecem: “Java - como programar 6ª Edição”. Estou na página 65 e comecei a ter dúvidas sobre algumas coisas.
Existem duas classes. Uma se chama “GradeBook” e a outra “GradeBookTest”. Uma contém métodos e outra é o “método main”.
GradeBook:
[code]public class GradeBook
{
private String courseName;
public void setCourseName( String name )
{
courseName = name;
}
public String getCourseName()
{
return courseName;
}
public void displayMessage()
{
System.out.println(“Welcome to the grade book for\n%s!\n” , getCourseName() );
}
}
[/code]
GradeBookTest:
import java.util.Scanner;
public class GradeBookTest
{
public static void main ( String args[] )
{
Scanner input = new Scanner ( System.in );
GradeBook myGradeBook = new GradeBook();
System.out.println("The initial course name is: %s\n\n" , myGradeBook.getCourseName() );
System.out.println("Please enter the course name: ");
String theName = input.nextLine();
myGradeBook.setCourseName( theName );
System.out.println();
myGradeBook.displaMessage();
}
}
Dúvidas:
1- Na classe “GradeBook”, eu não entendo o motivo do método “getCourseName” ter antes a palavra-chave “string”. Creio que é por causa do “return”… Mas eu não entendo como funciona muito bem ele. O livro diz que ele retorna um valor. Beleza… Mas ele retorna um valor para onde? Para o método? Para a classe com os métodos? Para a outra classe com o método main!? Qual o motivo do “string”?
2-1 O livro fala muito de variáveis de instância. Percebo que pelo que parece são variáveis que só a classe pode ter acesso por causa do “private”. Eu estou falando da variável com nome “courseName” logo no início da classe “GradeBook”. O livro diz que ela é uma variável de instância e que por causa disso ou do “private” (eu não entendi direito), ela só pode ser usada pela classe em seus métodos. Mas o engraçado do Java, é que com a outra classe(“GradeBookTest”), eu posso interagir com esse valor através dos métodos… Meio maluco isso… Eu juro que não entendi isso muito bem. Parece que o livro diz uma coisa e na real é outra. Estou bem confuso.
2-2 Variável de instância pode ser comparada a uma variável global? Digo… Não seria global, mas só para a classe, né?
3- “set” e “get” são palavra-chaves/comandos? Sempre eu vejo elas por aí e muita gente usa. E agora agora é que eu me deparo com elas pela primeira vez. O livro parece não falar diretamente “isso é isso e é usado aqui”. Eu gostaria que alguém me dissesse isso. O que são e onde podem ser usados. Não precisa nada complexo nem muita avançado… Mas pelo menos o básico seria bem legal. E se pudesse colocar um exemplo BEM simples mesmo, seria melhor ainda.
4- Eu sei que a palavra-chave “void” é quando não há retorno de um valor. Beleza… Mas olha só, em “GradeBook”, ele existe e tem atributos com o método… Como é isso? Não retorna nem um valor e tem atributos dizendo que uma variável é igual a outra? :?
Olha me deculpem por escrever muito. Mas eu procuro ser bem específico para que entendam minhas dúvidas e que elas sejam resolvidas da melhor forma.
Agradeço a todos a atenção e a vontade de me ajudar de antemão.
Abraços! :-o