Java 此代码的简单但深入的解释

Java 此代码的简单但深入的解释,java,Java,我只是编程和Java的初学者。由于我在Java方面的经验非常少,因此我希望对这段代码进行一个简单但深入的解释。这段代码使用了两个类和许多方法 苹果类: package jacob; import java.util.Scanner; class apples { public static void main (String args[]){ Scanner input = new Scanner(System.in); grapes gobject = new grapes(

我只是编程和Java的初学者。由于我在Java方面的经验非常少,因此我希望对这段代码进行一个简单但深入的解释。这段代码使用了两个类和许多方法

苹果类:

package jacob;
import java.util.Scanner;

class apples {
public static void main (String args[]){
    Scanner input = new Scanner(System.in);
    grapes gobject = new grapes();

    System.out.println("Enter name of first gf here: ");
    String temp = input.nextLine();
    gobject.setName(temp);
    gobject.saying();



}
}
葡萄等级:

package jacob;
public class grapes {
private String girlName;
public void setName(String name){
    girlName=name;
}
public String getName(){
    return girlName;
}
public void saying(){
    System.out.printf("Your first gf was %s", getName());
}
}
当我谈到这两个部分时,我感到困惑:

gobject.setName(temp);
    gobject.saying();

为什么一个人要经历这么多的麻烦,而他们本可以做到:

package jacob;
import java.util.Scanner;
public class test {
public static void main (String args[]){
    Scanner input = new Scanner(System.in);
    System.out.println("Enter name of first gf here: ");
    String gfname = input.nextLine();
    System.out.println("The name of your first gf is " + gfname + ".");
}
}

请注意,原始代码来自Newboston,不是我的。第二段代码是我创建的。

你的问题是关于面向对象编程的基础知识。您感到困惑的原因是方法saying()和整个程序都是微不足道的。在任何非平凡的程序中,都不可能避免使用方法或对象。由于方法的主体是一行,您可以用简单的println替换它,但是如果主体更复杂,您将很难为多个名称重复它。 例如,我们假设说()的方法是:

此方法仍打印一行,但主体稍微复杂一些。假设您想反转三个名称并打印它们。哪一个更容易设置字段并三次调用方法,还是三次键入整个方法体?如果要反转程序另一部分中的另一个字符串,该怎么办。您可以轻松地重用该方法,而不是在每次需要时键入这段代码。
这只是使用对象的众多好处之一。您可以阅读有关抽象、封装和继承的内容,以了解对象的重要性。这是一个非常广泛的话题,可以用一个简单的答案来回答。最好是读一本关于面向对象编程的书。

尽可能多地阅读关于面向对象编程的书。您展示的示例旨在说明有关类的一些想法。你的问题太广泛了,这里无法回答。
package jacob;
import java.util.Scanner;
public class test {
public static void main (String args[]){
    Scanner input = new Scanner(System.in);
    System.out.println("Enter name of first gf here: ");
    String gfname = input.nextLine();
    System.out.println("The name of your first gf is " + gfname + ".");
}
}
public void saying(){
    String name = getName(); //saves the name in a variable
    StringBuilder reverse = new StringBuilder(name.length()); //Creates a new variable to hold the reversed name
    for(i=name.length()-1;i>=0;i--){ //This loops through the characters in name and makes the reversed name
        reverseapend(name.charAt(i);
    }
    System.out.println("The reverse of your gf name is" + reverse + ".");
}