大佬教程收集整理的这篇文章主要介绍了用户输入和使用另一个类的方法,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
仍在学习Java,有点白痴,我为麻烦道歉。我有一个问题,关于将来自 main.class 的用户输入与带有 getter 和 setter 的employee.class 一起使用,并将它们返回给 main.class。这是将employee.class 中的方法与用户输入一起使用的正确方法吗?可以给我指出正确的方向吗。
这是需要默认值为 true 的 employee.class。
public class employee() {
private String ID = "100";
private Boolean manager = true;
public employee(String ID,String name,int numOfYears) {
this.ID = ID;
this.name = name;
this.numOfYears = numOfYears;
}
public employee(String ID,int numOfYears,double
monthlySalary,Boolean manager) {
this.ID = ID;
this.name = name;
this.numOfYears = numOfYears;
this.monthlySalary = monthlySalary;
this.manager = manager;
}
public String getID() {
return ID;
}
public voID setID(String ID) {
this.ID = ID;
}
public Boolean getManager() {
return manager;
}
public voID setManager(Boolean manager) {
if (manager == truE) {
System.out.println("Yes");
this.manager = manager;
} else {
System.out.println("No");
this.manager = manager;
}
}
}
这是 Main.class
import java.util.ScAnner;
public class Main {
public static voID main(String[] args) {
ScAnner input = new ScAnner(system.in);
System.out.println("Enter employee ID:");
int i = input.nexTint();
String ID = Integer.toString(i);
System.out.println("In management? True/false");
Boolean manager = input.nextBoolean();
employee empID = new employee(ID);
empID.setID(ID);
employee empManager = new employee();
empManager.setManager();
}
}
输入用户值的正确方法是
employee empManager = new employee(manager);
empManager.setManager();
我不确定我是否可以问,但我觉得我可能有更多错误,如果只是朝着正确的方向轻推就可以了。
这不是正确的方法。
正确的方法是定义一个合适的构造函数:
public employee(String id,Boolean ismanager)
{
this.id = id;
this.ismanager = ismanager;
}
然后这样称呼它:
employee employee = new employee(id,ismanager);
简要提示:对于布尔值,将它们命名为“isXYZ”是一个好习惯——这就是我更改名称的原因。此外,if(var == truE)
可以写成 if(var)
- true 是隐式的。
正确的答案是没有“正确”的答案。这是一个 100% 的哲学问题,有许多“正确”的答案。也就是说,有些事情大多数开发者都会同意,您需要考虑哪些“正确”答案是正确的适合您。
应该通过构造函数传递哪些参数?构造函数应用于在构造时强制执行 requIRED 值。例如,name
和 id
我们同意应该是必填字段。但是,@H_275_7@managerName 呢?可能由于某种原因(即职位空缺)在招聘时尚未分配经理。
既然有setter方法就可以了,不如就用吧。提供 setter 方法并在创建对象后使用这种方法设置值并没有错。作为一般规则,我们为所有字段包含 getter/setter 方法。但是,我认为最好确定哪些字段(如果有)是常量,并仅为变量字段提供 setter(显然)。
为了论证起见,我们假设一个人不应该改变他或她的名字。在那种情况下,我会像这样设计我的 employee
类:
public class employee {
private final String name; // required (constant)
private final String id; // required (constant)
private String phoneNo; // optional
private String managerName; // "optional"
private Boolean ismanager; // required (variablE)
public employee (String name,String id) {
this.name = name;
this.id = id;
}
public void setPhoneNo(String phoneNo) { this.phoneNo = phoneNo; }
public void setManagerName(String managerName) { this.managerName = managerName; }
}
另外,请考虑默认值。在 Java 中,原始数据类型的默认值如下:数字原始数据的默认值为 0。布尔原始数据默认为 false
,字符原始数据默认为 Unicode 字符值 NULL
(\u0000)。这意味着,除非您需要覆盖默认值,否则设置该值可能是可选的(即使该值是必需的)。那是什么意思?在您的示例中,您有一个布尔标志来指示员工是否在管理层。知道大多数员工不会从事管理工作,上面示例的构造函数应该足够了。对于被聘为经理的人,您可以提供三参数构造函数以将“true”传递给此布尔字段,或者简单地使用现有构造函数构建员工对象,然后使用 setter 方法将此标志设置为 true。
employee hector = new employee("Hector","100");
hector.setManager(true);
以上都可以接受
employee hector = new employee ("Hector","100",truE);
拥有这个三参数构造函数并不会使对两个参数一的需求无效。两个都保留就好。但是,如果必须这样做,请使用伸缩模式...
public employee (String name,String id,Boolean ismanager) {
this(name,id); // calling the two-arg constructor
this.ismanager = ismanager;
}
以上是大佬教程为你收集整理的用户输入和使用另一个类的方法全部内容,希望文章能够帮你解决用户输入和使用另一个类的方法所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。