对于三角形操作规定

public class PassAugument {
	String str1;
	StringBuffer str2;
	PassAugument(String str1,StringBuffer str2){
		this.str1=str1;
		this.str2=str2;
	}
	
	
	void stringAppend(String a) {
		this.str1=this.str1+a;
		System.out.println("调用void stringAppend(String a)后前tring输出为:"+this.str1);
	}
	String stringAppendRet(String a) {
		this.str1=this.str1+a;
		System.out.println("调用String stringAppendRet(String a)前string输出为:"+this.str1);
		return this.str1; 
	 }
	void stringBfAppedn(StringBuffer a) {
		this.str2=this.str2.append(a);
		System.out.println("调用void stringBfAppedn(StringBuffer a)前stringbuffer输出为"+this.str2);
		
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//验证String类
		String string=new String("We are ");
		String strr=new String("family");
		string.stringAppend(strr);
		System.out.println("调用void stringAppend(String a)后string输出为:"+string);
		
		string.stringAppendRet("friends");
		System.out.println("调用String stringAppendRet(String a)前string输出为:"+this.str1);
		
		
		
		
		//验证StringBuffer类
		StringBuffer stringbuffer=new StringBuffer("We are ");
		string.stringBfAppedn("lovers");
		System.out.println("调用void stringBfAppedn(StringBuffer a)后stringbuffer输出为:"+stringbuffer);
		
	}

}

以上代码存在很多问题,请找一找错误并且,修改一下吧。

  1. string.stringAppend(strr); 这行代码中,string 是 String 类型的对象,而 stringAppend 方法是 PassAugument 类的方法,不是 String 类的方法。因此,你不能在 String 类型的对象上直接调用 stringAppend 方法。

  2. 同理,string.stringAppendRet("friends"); 也不正确,因为 stringAppendRet 也不是 String 类的方法。

  3. 在 string.stringBfAppedn("lovers"); 中,你同样试图在 String 类型的对象上调用 PassAugument 类的方法,这也是不正确的。

  4. 在 main 方法中,你并没有创建 PassAugument 类的实例,因此即使 stringAppendstringAppendRet 和 stringBfAppedn 是 PassAugument 类的方法,你也无法直接调用它们,除非你先创建 PassAugument 的一个实例。

  5. 在 stringBfAppedn 方法中,System.out.println 打印的字符串中的文字 "调用void stringBfAppedn(StringBuffer a)前stringbuffer输出为" 是不准确的。应该是 "调用void stringBfAppedn(StringBuffer a)后stringbuffer输出为",因为你是在方法执行后打印输出。

  6. stringBfAppedn 方法中,this.str2=this.str2.append(a); 这行代码是多余的,因为 StringBuffer 的 append 方法会修改原对象并返回该对象。你只需要 this.str2.append(a); 就可以了。

  7. 在 stringAppendRet 方法中,System.out.println 打印的字符串 "调用String stringAppendRet(String a)前string输出为:" 是不准确的。应该是 "调用String stringAppendRet(String a)后string输出为:",因为你是在方法执行后打印输出。

要修复这些问题,你需要先创建 PassAugument 类的实例,然后使用该实例来调用方法。同时,你需要确保调用方法的对象类型是正确的。此外,还需要修正打印语句中的文本错误。

面是修改后的 main 方法的一个例子:

public static void main(String[] args) {  
    // 创建PassAugument类的实例  
    PassAugument passAugument = new PassAugument("Initial", new StringBuffer("Buffer"));  
  
    // 验证String类,但这里你不能直接修改String对象,需要使用PassAugument的方法  
    String string = new String("We are ");  
    String strr = new String("family");  
    // 这里不能直接调用stringAppend,因为string是String类型,不是PassAugument类型  
    // 你需要这样做(如果必要的话):  
    // passAugument.stringAppend(passAugument.str1, strr);  
    // 然后打印passAugument.str1  
  
    // 验证StringBuffer类  
    StringBuffer stringbuffer = new StringBuffer("We are ");  
    // 调用PassAugument的stringBfAppedn方法  
    passAugument.stringBfAppedn(stringbuffer.append("lovers"));  
    System.out.println("调用void stringBfAppedn(StringBuffer a)后stringbuffer输出为:" + passAugument.str2);  
}

因为 stringAppend 和 stringAppendRet 是设计来修改 PassAugument 对象的 str1 属性的,不能直接在 String 类型的 string 上调用它们。如果需要修改 str1,应该先调用 passAugument 的实例上的这些方法。

另外,这段代码的设计有点混淆,因为它试图将 PassAugument 类的方法与 String 和 StringBuffer 类的使用混合在一起。在实际编程中,通常你会对 String 和 StringBuffer 对象直接调用它们的方法,而不是通过另一个类来间接操作它们。如果 PassAugument 类的目的是封装字符串操作,那么它应该接收和操作它自己的字符串和字符串缓冲区实例,而不是外部提供的实例。

最后修改后的代码:

package third;

public class PassAugument {
	String str1;
	StringBuffer str2;
	PassAugument(String str1,StringBuffer str2){
		this.str1=str1;
		this.str2=str2;
	}
	
	
	void stringAppend(String a) {
		this.str1=this.str1+a;
		System.out.println("调用void stringAppend(String a)时string输出为:"+this.str1);
	}
	String stringAppendRet(String a) {
		this.str1=this.str1+a;
		System.out.println("调用String stringAppendRet(String a)时string输出为:"+this.str1);
		return this.str1; 
	 }
	void stringBfAppedn(StringBuffer a) {
		this.str2=this.str2.append(a);
		System.out.println("调用void stringBfAppedn(StringBuffer a)时stringbuffer输出为"+this.str2);
		
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		//验证String类
		String string=new String("We are ");
		StringBuffer stringbuffer=new StringBuffer("He loves ");
		PassAugument passaugument=new PassAugument(string,stringbuffer);
		
			
		
		String strr=new String("family");
		passaugument.stringAppend(strr);
		System.out.println("调用void stringAppend(String a)后string输出为:"+string);
		
		passaugument.stringAppendRet("friends");
		System.out.println("调用String stringAppendRet(String a)前string输出为:"+string);
		

		//验证StringBuffer类
		StringBuffer stringbufferr=new StringBuffer("flowers");
		passaugument.stringBfAppedn(stringbufferr);
		System.out.println("调用void stringBfAppedn(StringBuffer a)后stringbuffer输出为:"+stringbuffer);
		
	}

}

have a good day bye?(^\/^)?

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值