老师,我这个成员属性怎么不能用呢?

来源:2-7 方法重写后的碎碎念

热爱编程学习

2022-02-27 21:09:46

package com.imooc.work;

public class test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		System.out.print("父类信息测试:");
		Work w1=new Work("慕课公司");
		System.out.println(w1.work());
		System.out.print("测试工作类信息测试:");
		TestWork w2=new TestWork(99,12);
		System.out.println(w2.work());
		System.out.print("研发工作类信息测试:");
		DevelopmentWork w3=new DevelopmentWork(99,12);
		System.out.println(w3.work());
	}

}

package com.imooc.work;

public class DevelopmentWork extends Work{
	 // 属性:有效编码行数、目前没有解决的Bug个数
		private int Number;
		private int bugno;
		public String name ;
	//编写构造方法,并调用父类相关赋值方法,完成属性赋值
		public DevelopmentWork() {
			
		}
		public DevelopmentWork(int Number,int bugno) {
			this.setbugno(bugno);
			this.setNumber(Number);;
		}
	// 公有的get***/set***方法完成属性封装
		public void setNumber(int Number) {
			this.Number=Number;
		}
		public int getNumber() {
			return Number;
		}
		public void setbugno(int bugno) {
			this.bugno=bugno;
		}
		public int getbugno() {
			return bugno;
		}
		
	// 重写运行方法,描述内容为:**的日报是:今天编写了**行代码,目前仍然有**个bug没有解决。其中**的数据由属性提供
	public String work() {
		String str=this.name+"的日报是:今天编写了"+this.getNumber()+"行代码,目前仍然有"+this.getbugno()+"个bug没有解决。其中**的数据由属性提供";
		return str;
	
	}

}

package com.imooc.work;

public class TestWork extends Work{
	 //属性:编写的测试用例个数、发现的Bug数量
	private int bugno;
	private int Number;
	public String name;
    // 编写构造方法,并调用父类相关赋值方法,完成属性赋值
	public TestWork() {
		
	}
	public TestWork(int bugno,int Number) {
		this.setbugno(bugno);
		this.setNumber(Number);
		//this.setname(name);
	}
    // 公有的get***/set***方法完成属性封装
	public void setbugno(int bugno) {
		this.bugno=bugno;
		
	}
	public int getbugno() {
		return bugno;
	}
	public void setNumber(int Number) {
		this.Number=Number;
	}
	public int getNumber() {
		return Number;
	}
	public void setname(String name) {
	    	this.name=name;
	    }
	    
	public String getname() {
	    	return name;
	    }
	// 重写运行方法,描述内容为:**的日报是:今天编写了**个测试用例,发现了**bug。其中**的数据由属性提供
	public String work() {
        String str=this.getname()+"的日报是:今天编写了"+this.getNumber()+"个测试用例,发现了"+this.getbugno()+"bug。其中"+this.getbugno()+"的数据由属性提供;";
	return str;
	}
}

package com.imooc.work;

public class Work {
	 // 属性:工作ming
    public String name ;

	// 无参构造方法
    public Work() {}
	// 带参构造方法,完成工作类型的赋值
    public Work(String name) {
    	this.setname(name);
    }
   // 公有的get***/set***方法完成属性封装
    public void setname(String name) {
    	this.name=name;
    }
    
    public String getname() {
    	return name;
    }
    
	// 方法:工作描述,描述内容为:开心工作
    public String work() {
    	String str="开心工作";
    	return str;
    }
}


写回答

2回答

好帮手慕小蓝

2022-02-28

同学你好,同学代码中,w2和w3两个对象的name属性没有进行赋值,所以会出现null的现象。

同学可以提供带有name属性的构造方法来给name属性赋值,或者使用对象调用set方法为name赋值。

祝学习愉快~


0

王小east

2022-02-27

1、对象w2和w3的name都没有赋值;

2、代码第33行多写了一个分号;

3、变量名和方法名的命名规则可以再复习下。


目前只能看到这么多。

0

0 学习 · 9886 问题

查看课程