实验3-4 面向对象
【实验目的】
1、 了解instanceof关键字的作用。
2、 了解JDK中用于程序开发的各种实用类,以及查看各种类包的方法;
3、 学会使用Java的API文档;
4、 熟练掌握Object类中的两个重要的方法的使用:equals()方法和toString()方法。
5、 理解抽象类的作用,熟练掌握使用抽象类;
【实验内容】
1、编译并运行TestInstanceof1.java程序,根据运行结果分析instance关键字的作用。 //TestInstanceof1.java
/**
* instanceof运算符用法
* 运算符是双目运算符,左面的操作元是一个对象,右面是一个类;
* 当左面的对象是右面的类创建的对象时,该运算符运算的结果是true,否则是false.
*
* 说明:
*(1)一个类的实例包括本身的实例,以及所有直接或间接子类的实例
*(2)instanceof左边操作元显式声明的类型与右边操作元必须是同种类或有继承关系,即位于继承树的同一个分支上,否则会编译出错
*/
class Person {
}
class Student extends Person {
}
class Postgraduate extends Student {
}
class Animal {
}
public class TestInstanceof1 {
public static void main(String[] args) {
instanceofTest(new Student());
}
/**
* 这个程序的输出结果是:p是类Student的实例
* Person类所在的继承树是:Object<--Person<--Student<--Postgraduate。
* 这个例子中还加入一个Animal类,它不是在Person类的继承树中,所以不能作为instanceof的右操作数。
*/
public static void instanceofTest(Person p) {
// if(p instanceof Animal){ // p 和 Animal类型不一样,彼此之间没有继承关系,编译会出错
// System.out.println("p是类Animal的实例");
// }
//下面代码的除了第一行都会输出
if (p instanceof Postgraduate) System.out.println("p是类Postgraduate的实例");
if (p instanceof Person) System.out.println("p是类Person的实例");
if (p instanceof Student) System.out.println("p是类Student的实例");
if (p instanceof Object) System.out.println("p是类Object的实例");
//判断p的类型
if (p instanceof Postgraduate) {
System.out.println("\np是类Postgraduate的实例");
}
else if (p instanceof Student) {
System.out.println("\np是类Student的实例");
}
else if (p instanceof Person) {
System.out.println("\np是类Person的实例");
}
else if (p instanceof Object) {
System.out.println("\np是类Object的实例");
}
}
}
2、完成以下题目要求:定义一个抽象类Shape,包含一个静态成员变量PI,一个抽象的方法area(),用于计算图形面积;再定义一个由Shape类派生的Circle类,有新增的3个成员变量:x(横坐标)、y(纵坐标)、r(半径)java的tostring方法,包含的方法有:构造方法、重写的area()方法、3个修改成员变量的方法、判断两个圆对象是否相同的equals()方法(只要圆心和半径相同,那么这两个圆对象就相等)、显示圆对象具体描述信息的toString()方法(圆的圆心和半径的信息)。//TestAbstract2.java
注:如果有需要可以增加类所需的方法。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论