Java课程上机实验1_Phone
题目要求:
实现一个表示电话号码(要求带有区号和号码,如010-68911205)的Phone
类,其中某个构造函数的参数应为表示电话号码的字符串。要求实现相应的set
和get 函数来分别设置及获取电话号码中的区号(area,如010)和号码(number,
如68911205),重写Object.toString( )函数打印出整个电话号码。(提示:可使用
String.indexOf( )和String.substring( )等函数)
设计思路:
在Phone类中,使用两个String对象分别存储号码与区号,在构造方法中,将格式为 区号-号码 的电话号码分割为两段,使用Object.indexOf()方法获取"-"的位置,然后用Object.substring()方法分别得到"-"位置前后的字符串,存入号码和区号中。
区号和号码均有各自的 get 和 set 方法。
重写Object.toString()方法,使其返回新的按照 区号-号码 格式的字符串的引用,以获得整个电话号码字符串的引用。
在main方法中,创建一个Phone类的引用 newPhone , 使用System.out.println() 打印使用 newPhone的get方法得到的区号和号码,然后使用set方法修改它们,再次打印。然后对新创建的Phone类直接打印,以测试重写的Object.toString()方法是否能打印出整个电话号码。
程序输出:
010
12345678
000
999
123-567
实现代码:
package homework; public class Phonenum { public static void main( String[] args ){ Phone newPhone = new Phone( "010-12345678" ); System.out.println( newPhone.getArea() ); System.out.println( newPhone.getNumber() ); newPhone.setArea("000"); newPhone.setNumber("999"); System.out.println( newPhone.getArea() ); System.out.println( newPhone.getNumber() ); System.out.println( new Phone( "123-567" ) ); } } class Phone{ private String number; private String area; public Phone( String destNum ){ int breakPoint = destNum.indexOf("-"); area = destNum.substring( 0 , breakPoint ); number = destNum.substring( breakPoint + 1, destNum.length() ); } public String getNumber() { return number; } public void setNumber(String number) { this.number = number; } public String getArea() { return area; } public void setArea(String area) { this.area = area; } public String toString( ){ return this.area + "-" + this.number; } }