面向Java新手用户的Java getter
getter和setter用于实现面向对象编程的两个基本方面:面向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()
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方法获取(或显示)私有全局值的当前值,而不是使私有数据值可用。不,这不会是一个成功者。我建议你仔细阅读我的答案,以澄清你的困惑。