有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java字符串未显示,打印“null”

我今天刚开始学习Java,请原谅我的业余错误。问题是,它没有显示每个人最喜欢的颜色,而是显示“null”,我在Pawn中有编码经验,所以我猜我要么没有正确创建字符串,要么就是没有以某种方式填充它

谢谢

我尝试过这些代码,但得到的是“null”,而不是每个人最喜欢的颜色

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);
   }
}
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.printEmployee();
      empOne.empFavoriteColor("Green");

      empTwo.empAge(21);
      empTwo.empDesignation("Software Engineer");
      empTwo.empSalary(500);
      empTwo.printEmployee();
      empTwo.empFavoriteColor("Blue");

      empThree.empAge(16);
      empThree.empDesignation("Software Developer" );
      empThree.empSalary(250);
      empThree.printEmployee();
      empThree.empFavoriteColor("Orange");
   }
}


共 (2) 个答案

  1. # 1 楼答案

    您在empFavoriteColor()之前调用printEmployee(),因此打印时字符串为空

  2. # 2 楼答案

    您需要在empFavoriteColor()之前调用printEmployee();,如下所示:

    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();
       }
    }