如何在一个类中调用java.util包中StringBuffer类的toString方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在一个类中调用java.util包中StringBuffer类的toString方法相关的知识,希望对你有一定的参考价值。

我是初学者 最近做练习 写一个Account类并要在这个类中添加StringBuffer类的toString方法 请问该如何实现 PS 老师就是这么要求 也没具体说添加这个方法有什么目的 难道要写成抽象方法。。。

需要把该包引进来就可以使用了
toString()方法就是把对象转换成String类型,转换的算法根据类型和实际需要而定。
比如一个Integer对象的toString方法就是把这个对象表示的整数转化成字符串,133就成了"133"。
也有根据实际需要来定toString方法的,比如一个Person类:
class Person
String firstName;
String familyName;
...

你可以写一个toString方法,它可以把Person的对象转换成familyName字符串,或者转换成firstName + familyName的字符串。
比如Person类
public class Person
private String name = null;
private int age = 0;
public Person(String name, int age)
this.name = name;
this.age = age;


public String toString()
return name;


--------------
public class Test
public static void main(String[] args)
Person p = new Person("Jack", 20);
System.out.println(p);// 这时会输出"Jack".

参考技术A public class Account
private StringBuffer sb = new StringBuffer(); public void add(String a)
sb.append(a);

public String toString()

return sb.toString();
public static void main(String[] args) Account test = new Account();
test.add("xxxx");
test.add("yyyyy");
System.out.println(test.toString());

参考技术B import java.util.*;public class Account public static void main(String[] args)
StringBuffer sb = new StringBuffer();
sb.append("str1").append("str2");
System.out.println(sb.toString());

参考技术C import java.util.*;public class test public static void main(String[] args)
StringBuffer buffer=new StringBuffer("str");
System.out.println(buffer.toString());

如何在同一个包中隐藏类方法

【中文标题】如何在同一个包中隐藏类方法【英文标题】:How to hide a class method within the same package 【发布时间】:2020-06-20 10:54:48 【问题描述】:

所以我有一个名为 ABC 的包,其中包含 A 类、B 类和 C 类。现在我的主类在包之外,并调用了一个名为 show() 的 A 类方法,这是一个公共静态方法。基本上,A 类就像包 ABC 的网关。现在我有 C 类扩展 B 类,并且我在 B 类中有一个名为 execute() 的抽象方法,该方法在 C 类中被覆盖。现在 execute() 的访问修饰符受到保护。现在我无法从我想要的 main 访问 execute() 但我仍然可以从 Class A 访问它,因为它在同一个包中。如何将execute隐藏在同一个包中,即如何在A类中隐藏execute(),但仍然可以在C类中访问它?

【问题讨论】:

你可以将 B 和 C 向下推一个包级别,比如 ABC.BC 【参考方案1】:

你可以在A类中隐藏execute()的唯一方法是在C类中设置private。但是由于execute()是B类中的抽象方法,这种组合是非法的(private + abstract)。即使您将其设置为受保护,您也无法覆盖它并将其设置为 B 类中的 private,如下例所示:

abstract class B 

 protected abstract void execute(); 

和:

class C

 @Override
 private void execute()  // not working

因为在重写方法时分配较弱的访问权限是非法的。

【讨论】:

【参考方案2】:

不幸的是Java没有相应的可见性修饰符,protected是package-private的超集。

【讨论】:

以上是关于如何在一个类中调用java.util包中StringBuffer类的toString方法的主要内容,如果未能解决你的问题,请参考以下文章

RE validation in Java EE(java.util.regex.Pattern)

String.format()方法使用说明

java.util.concurrent.locks包中的ReentrantLock之非公平策略解析

如何在同一个包中隐藏类方法

JAVA SE——包继承多态抽象类接口 ( 巨细!总结 )

Java如何向容器中添加一组元素详解(附源码)