小甲鱼徒弟 发表于 2017-6-15 04:01:50

老师帮看下代码,编译执行都没问题

本帖最后由 小甲鱼徒弟 于 2017-6-15 04:06 编辑

编译没报错执行也能打印,唯一的问题是雇员职位(job)返回值为空(null),本人新手查不出问题在哪请老师帮忙看看,很简单的代码很多都是重复就没写备注,应该能看懂



class Emp{
        private int empno ;
        private String ename ;
        private String job ;
        private double sal ;
        private double comm ;
        public Emp(){}
        public Emp(int eno, String ena, String j, double s, double c){
                setEmpno(eno);
                setEname(ena);
                setJob(job);
                setSal(s);
                setComm(c);
        }
        public String getlnfo(){
                return "雇员编号: "+ empno +"\n" +
                           "雇员姓名: "+ ename +"\n" +
                           "雇员职位: "+ job +"\n" +
                           "基本工资: "+ sal +"\n" +
                           "佣   金: "+ comm ;
        }
        public void setEmpno(int eno){
                empno = eno ;
        }
        public void setEname(String ena){
                ename = ena ;
        }
        public void setJob(String j){
                job = j ;
        }
        public void setSal(double s){
                sal = s ;
        }
        public void setComm(double c){
                comm = c ;
        }
        public intgetEmpno(){
                return empno ;
        }
        public String getEname(){
                return ename ;
        }
        public String getJob(){
                return job ;
        }
        public double getSal(){
                return sal ;
        }
        public double getComm(){
                return comm ;
        }
       
}
public class TestDemo{
        public static void main(String args[]){
                Emp emp = new Emp(7399 ,"李媛媛" , "CEO",8341.0 , 0.02);
                        System.out.println(emp.getlnfo());
                }
               
        }

Love_Linux_ 发表于 2017-6-15 10:49:22

Emp类里的构造方法参数名写错了。 参数名是j, 而setJob(job)
public Emp(int eno, String ena, String job, double s, double c){
                setEmpno(eno);
                setEname(ena);
                setJob(job);
                setSal(s);
                setComm(c);
      }
      public String getlnfo(){
                return "雇员编号: "+ empno +"\n" +
                           "雇员姓名: "+ ename +"\n" +
                           "雇员职位: "+ job +"\n" +
                           "基本工资: "+ sal +"\n" +
                           "佣   金: "+ comm ;
      }

deadofpeople 发表于 2017-6-19 16:19:30

public Emp(int eno, String ena, String j, double s, double c){
                setEmpno(eno);
                setEname(ena);
                setJob(job);
                setSal(s);
                setComm(c);
      }

随心而活 发表于 2017-6-20 08:59:15

public Emp(int eno, String ena, String j, double s, double c) {
                setEmpno(eno);
                setEname(ena);
                setJob(j);
                setSal(s);
                setComm(c);
        }

寻找思考的意义 发表于 2017-10-19 10:17:05

       public Emp(int eno, String ena, String j, double s, double c){
                setEmpno(eno);
                setEname(ena);
                setJob(job);
                setSal(s);
                setComm(c);
      }中的set(job)方法里面的job为空,导致出现为空的情况,把j改为job即可,另外遇到这种数据方面的错误,可以打断点进行调试哦
页: [1]
查看完整版本: 老师帮看下代码,编译执行都没问题