2016级java语言实验3指导(面向对象程序设计(继承、封装、多态)) 下载本文

内容发布更新时间 : 2024/11/14 23:58:21星期一 下面是文章的全部内容请认真阅读。

y=b; } public int getX(){ return x;} //获得X的坐标 public int getY(){ return y;} // 获得Y的坐标 public String toString(){ return \ } }

/*子类圆的定义*/

class Circle extends Point { //圆类继承父类点类 protected double radius ;//定义圆的半径

public Circle(){ setRadius(0);}// 定义子类的构造函数,隐含调用了父类的构造函数 public Circle(double r,int a,int b){ super(a,b);// (2) setRadius(r); } public void setRadius(double r){ radius = (r>=0.0?r:0.0); // (3) } public double getRadius(){ // 获得圆半径 return radius; }

public double area(){ // (4) return Math.PI*radius*radius; } public String toString(){//圆的半径。以及圆心坐标转换成字符串输出 return \ } }

public class InheritanceTest{ public static void main(String args[]){ Point pointRef,p;//声明两点对象 Circle circleRef,c;//声明两圆对象 String output;//定义一个字符串变量 p=new Point(30,50);//给点对象赋值 c=new Circle (2.7,120,89);//给圆对象赋值

//把点对象和圆对象转换成字符串后给字符串output赋值

output=\

pointRef=c; output=output+\

circleRef=(Circle)pointRef;

output=output+\

DecimalFormat precision2=new DecimalFormat(\ output+= \

//将圆定义成点对象输出

if( p instanceof Circle ){ // (5) circleRef=(Circle) p; output+=\

}else output+=\

//利用对话框输出相关信息

JOptionPane.showMessageDialog(null,output,

\

//退出

System.exit(0); }

}

语句的功能注释:

(1) 方法成员,设置变量x、y (2) 调用父类的构造函数 (3) 设置半径 (4) 求取面积 2. 接口的定义与应用 接口声明的形式如下所示: interface 接口名字

{ …… //常量定义和方法定义 }

接口使用的关键字是implements,形式如下所示: class A implements Printable , Addable 其中类A中使用接口Printable 和 Addable

接口的特点:

1.类体中必须实现接口中定义的所有方法; 2. 接口中的方法和常量必须是public的。

3.实现方法时,方法头必须一致(返回值类型,名字,参数); 4.父类被继承时,接口同时被继承; 5.接口也可被继承,关键字为extends; 6.接口一般表示功能,而类一般表示属性。

例子3-3本实例实现了一个字符栈。程序思路是:首先定义一个字符栈的接口CharStackInterface,定义了栈的空间容量,规定栈所包含的方法,然后定义栈类CharStack,该类实现了字符栈的接口,最后编写测试类StackDemo进行测试。请根据编程思路实现字符栈的接口CharStackInterface,并调试程序正确运行,写出程序执行结果。

------------------------------------------------------------------------------------------------------------------------------ interface CharStackinterface{ //需要实现的字符栈接口 }

class CharStack implements CharStackinterface{ char data[]; int top; CharStack(){ data=new char[maxsize]; } public void initStack(){ top=-1; } public boolean push(char x){ if(!full()){ data[++top]=x; return true; } else{ return false; } } public char pop(){

if(!empty()){ top--; return data[top+1]; } else{ return '\\0'; } } public boolean empty(){ return top==-1; } public boolean full(){ return top==maxsize-1; } }

public class StcckDemo { public static void main(String args[]){ CharStack s=new CharStack(); s.initStack(); s.push('A'); s.push('B'); System.out.println(s.pop()); System.out.println(s.pop()); }

}

字符栈的接口CharStackInterface: 程序的执行结果: