Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
面向Java新手用户的Java getter_Java_Getter Setter - Fatal编程技术网

面向Java新手用户的Java getter

面向Java新手用户的Java getter,java,getter-setter,Java,Getter Setter,getter和setter用于实现面向对象编程的两个基本方面: Abstraction Encapsulation 假设我们有一个Employee类: package com.highmark.productConfig.types; public class Employee { private String firstName; private String middleName; private String lastName; public void getFirstName()

getter和setter用于实现面向对象编程的两个基本方面:

Abstraction
Encapsulation
假设我们有一个Employee类:

package com.highmark.productConfig.types;

public class Employee {

private String firstName;
private String middleName;
private String lastName;

public void getFirstName(){
    return this.firstName;
}
public void setFirstName(String firstName) {
    this.firstName = firstName;
}

public void setMiddleName(String middleName) {
    this.middleName = middleName;
}

// Similarly for lastName

public String getFullName(){
    return this.getFirstName() + this.getMiddleName() + this.getLastName();
}
}
更新:workerclass是否正确使用此用法

public class getNames() {

private String firstName;
private String middleName;
private String lastName;

//Constructor
    public String getNames() {
        Scanner input = new Scanner();
        // output message to insert name part
        String firstName = input.ReadLine();
        String middleName = input.ReadLine();
        String lastName = input.ReadLine();
        Employee emp = new Employee();
        emp.setFirstName(firstName);
        emp.setMiddleName(middleName);
        emp.setLastName(lastName);
    }
}

如果理解上有缺陷,请尝试解释。

是的,有一件事你肯定是正确的getter是setter是一种在面向对象编程语言(如Java)中确保封装原则的方法

当您的类中有一个私有成员时,其作用域将被限制为该特定类本身,但您可能希望提供getter和/或setter,以使该成员可供类之外的类访问

假设你有这样一个成员

private String firstName;
那么这就是你对这个会员的奖励

public String getFullName(){
    return this.getFirstName() + this.getMiddleName() + this.getLastName();
}
但这不是,

public String getFirstName() {
    Scanner user_input = new Scanner(System.in);
    firstName = user_input.next( );         
    return firstName;
}
因为“getter”只是一个术语,用于获取私有成员的值。getter方法的唯一目的就是获取成员的原始值

在后一种方法中,目的是完全不同的。您试图获取第一个名称作为输入,因此从技术上讲,它不能以任何方式称为“getter”


希望这能消除你的疑虑。

@Mohit你能在这里详细说明一下吗。我只是想得到一些概念上的许可。我想我弄错了用法,所以想澄清一下。您的getFirstName是属于Employee类还是其他类?也许@Tomaltach说它不应该属于Employee类。在我的问题中,它确实属于Employee类。是的,这将是正确的用法…尽管使用名为
GetEmployeeInfo()
的方法比创建名为
getNames()
的类更好,因为这会让其他开发人员感到困惑。更好的是,但是该方法可能会返回构造的
Employee
对象。与其创建一个空员工,然后通过setters设置其属性,不如通过构造函数来完成。谢谢您提供的信息。但正如前面的用户所说,我实现了一个工人类。是这样吗?从技术上讲,它仍然不能满足你对getter的定义。是的,我知道你想说什么了。为了显示私有数据值,我们使用getter方法获取(或显示)私有全局值的当前值,而不是使私有数据值可用。不,这不会是一个成功者。我建议你仔细阅读我的答案,以澄清你的困惑。