printf,说,getName setName

时间:2011-07-27 21:57:40

标签: java methods printf instance

我刚看了一个名为“很多方法和实例”的youtube教程。他做了一个程序,你在其中输入了一些东西,然后它说“你的第一个gf是 _ ”。但这太复杂了。首先是主要课程:

import java.util.Scanner;

public class MethodsInstances2 {
    public static void main(String args[]) {
        Scanner input = new Scanner(System.in);
        MethodsInstances object = new MethodsInstances();
        System.out.println("Enter name of first gf here: ");
        String temp = input.nextLine();
        object.setName(temp);
        object.saying();
    }
}

接下来是它创建对象的类:

public class MethodsInstances {
    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());
    }
}

看起来太复杂了,标题是我不理解的所有东西,考虑到我还是Java的新手。这是我输入的内容,速度提高了4倍:

import java.util.Scanner;
public class programtest {
    public static void main(String args[]){
        Scanner test = new Scanner(System.in);
        String name;
        System.out.println("Enter the name of your first girfriend: ");
        name = test.next();
        System.out.println("Your first girlfriend was " + name);
    }
}

有人可以告诉我做啧啧所说的事情,以及标题词是什么意思吗?

非常感谢,Dan

4 个答案:

答案 0 :(得分:4)

本教程被命名为“许多方法和实例”,我的POV非常简单地展示了如何创建一个类,实例化它并调用它的方法。它本来被称为“得到一些控制台输入并吐出来”,如果它是为了尽可能最简单的方式做事。

视频教程的重点是不要创建过于复杂的程序,而是演示如何调用对象上的方法。< / p>

你有一个名为MethodInstances的类(不是一个很好的例子名称,btw),你实例化它,然后调用它上面的方法来保存状态(gf名称)并将其取回并显示它。 (我建议重构一下这个例子,让它变得更有意义。因为这会导致混淆。)

试试这个:

import java.util.Scanner;

public class ObjectInstanceMethodExample {
    public static void main(String args[]) {
        Scanner input = new Scanner(System.in);
        FirstGirlfriend firstGF = new FirstGirlfriend();
        System.out.println("Enter name of first gf here: ");
        String temp = input.nextLine();
        firstGF.setName(temp);
        firstGF.sayFirstGirlfriendName();
    }
}

class FirstGirlfriend {
    private String girlName;
    public void setName (String name){
        girlName=name;
    }
    public String getName (){
        return girlName;
    }
    public void sayFirstGirlfriendName(){
        System.out.printf("Your first gf was %s", getName());
    }
}

您通过避免创建单独的类并使用局部变量来缩短过程。它有效,但更容易,但这不是教程试图教的内容。

我建议在进入OOP之前找到更简单的初学者示例,或者......拥抱OOP并运行它。

顺便说一句,通过始终以最简单的方式做事,你不会成为一名程序员。最简单的只是在近期内最简单。任何不那么琐碎的项目,即使有点复杂,也会以最简单的方式迅速变得站不住脚。

答案 1 :(得分:1)

它看起来像是一个在类中演示 getter setter 方法的教程,即数据隐藏。您使用 setter方法向对象添加内容,然后使用 getter方法检索它。

是的,这太复杂了。但是这种技术对于更大,更真实的问题非常有用。

答案 2 :(得分:1)

对于您的代码使用的初学者 test.next(); 代替原件 input.nextLine();

printf是程序员已知的最古老的功能之一,大约30岁!

它使用众所周知的通用格式参数来“美化”你的文本输出并将不同的类型插入到字符串中。

答案 3 :(得分:0)

第二个类只包含一个名为“girlName”的字符串。由于此字段具有私有访问权限,因此无法从其自己的类外部访问(请参阅数据隐藏)。

因此,您可以使用所谓的getter和setter方法,可以从外部访问 - 设置String值或接收它。

你写的不是:

MethodsInstances.girlName = "myGirlsName";
MethodsInstances.setName("myGirlName");