对此代码进行简单而深入的解释

时间:2015-07-14 00:26:21

标签: java

我只是编程和Java的初学者。由于我对Java的经验很少,所以我希望对此代码进行简单而深入的解释。此代码使用两个类和许多方法。

Class Apples:

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();



}
}

Class Grapes:

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();

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());

为什么一旦他们做完就会遇到这么多麻烦:

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 + ".");
}
}

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

1 个答案:

答案 0 :(得分:1)

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

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 + ".");
}

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