Java 字符串未显示,打印“空”
我今天刚开始学习Java,请原谅我的业余错误。问题是,它没有显示每个人最喜欢的颜色,而是显示“null”,我在Pawn中有编码经验,所以我猜我要么没有正确创建字符串,要么就是没有填充字符串 谢谢 我尝试过这些代码,但得到的是“null”而不是每个人最喜欢的颜色Java 字符串未显示,打印“空”,java,Java,我今天刚开始学习Java,请原谅我的业余错误。问题是,它没有显示每个人最喜欢的颜色,而是显示“null”,我在Pawn中有编码经验,所以我猜我要么没有正确创建字符串,要么就是没有填充字符串 谢谢 我尝试过这些代码,但得到的是“null”而不是每个人最喜欢的颜色 import java.io.*; public class Employee { String name; int age; String designation; String favoriteColor;
import java.io.*;
public class Employee {
String name;
int age;
String designation;
String favoriteColor;
double salary;
// This is the constructor of the class Employee
public Employee(String name) {
this.name = name;
}
// Assign the age of the Employee to the variable age.
public void empAge(int empAge) {
age = empAge;
}
/* Assign the designation to the variable designation.*/
public void empDesignation(String empDesig) {
designation = empDesig;
}
/* Assign the salary to the variable salary.*/
public void empSalary(double empSalary) {
salary = empSalary;
}
public void empFavoriteColor(String empColor) {
favoriteColor = empColor;
}
/* Print the Employee details */
public void printEmployee() {
System.out.println("Name:"+ name );
System.out.println("Age:" + age );
System.out.println("Designation:" + designation );
System.out.println("Salary:" + salary);
System.out.println("Favorite color:" + favoriteColor);
}
}
…您在empFavoriteColor之前调用printEmployee,因此打印时字符串为空。您需要调用printEmployee;在empFavoriteColor之前,如下所示:
import java.io.*;
public class EmployeeTest {
public static void main(String args[]) {
/* Create two objects using constructor */
Employee empOne = new Employee("James Smith");
Employee empTwo = new Employee("Mary Anne");
Employee empThree = new Employee("Alex Johnson");
// Invoking methods for each object created
empOne.empAge(26);
empOne.empDesignation("Senior Software Engineer");
empOne.empSalary(1000);
empOne.empFavoriteColor("Green");
empOne.printEmployee();
empTwo.empAge(21);
empTwo.empDesignation("Software Engineer");
empTwo.empSalary(500);
empTwo.empFavoriteColor("Blue");
empTwo.printEmployee();
empThree.empAge(16);
empThree.empDesignation("Software Developer" );
empThree.empSalary(250);
empThree.empFavoriteColor("Orange");
empThree.printEmployee();
}
}
在调用打印内容的方法后,您将设置每一个的颜色。在设置之前,颜色将为null。一些代码样式问题:empAge->setAge等。与其使用这些设置函数,不如在构造函数中初始化字段。这些字段应该是私有的,您应该为它们提供getter和setter。@khelwood谢谢。dyukha感谢您的更正,我是一个完全的新手,所以我不知道您刚才说了什么,但当我更好地理解Java后,我会回到您的评论中。@DoniSmith您可以接受您找到的最佳答案。Getter/Setter:关于构造函数:您可以并且可能应该以与name相同的方式初始化其他字段。
import java.io.*;
public class EmployeeTest {
public static void main(String args[]) {
/* Create two objects using constructor */
Employee empOne = new Employee("James Smith");
Employee empTwo = new Employee("Mary Anne");
Employee empThree = new Employee("Alex Johnson");
// Invoking methods for each object created
empOne.empAge(26);
empOne.empDesignation("Senior Software Engineer");
empOne.empSalary(1000);
empOne.empFavoriteColor("Green");
empOne.printEmployee();
empTwo.empAge(21);
empTwo.empDesignation("Software Engineer");
empTwo.empSalary(500);
empTwo.empFavoriteColor("Blue");
empTwo.printEmployee();
empThree.empAge(16);
empThree.empDesignation("Software Developer" );
empThree.empSalary(250);
empThree.empFavoriteColor("Orange");
empThree.printEmployee();
}
}