实验8 包与接口

实验8 包与接口
8.1实验目的
(1)了解多个目录下,多个类并存且由类同名的情况下对程序运行的影响;
(2)掌握Java程序中包的定义以及使用方法;
(3)掌握接口定义的语法格式、成员变量的定义、成员方法的定义;
(4)掌握接口实现的语法格式;
(5)掌握接口的使用和Java语言中利用接口实现多重继承;
8.2实验内容
(1)编写两个Java程序,在Tree.java中,显示“我是一棵树”,在Bamboo.java中,显示“我是一棵竹子”。(实验需在命令行中进行编译)

package Tree;
public class Living {

void say() {
	System.out.println("我是一棵树");
}

}

图8.1 Tree包下的Livng.java

package Tree;
import Tree.Living;
public class Tree
{
	 public static void main(String[] args)
     {
       Living tree=new Living ();
       tree.say();
      }
}

图8.2 Tree包下的Tree.java
package Bamboo;

public class Living {

void say() {
System.out.println(“我是一棵竹子”);
}

}

图8.3 Bamboo包下的Livng.java

package Bamboo;

import Bamboo.Living;
public class Bamboo
{
	 public static void main(String[] args)
     {
       Living bamboo=new Living ();
       bamboo.say();
      }
}

图8.4 Bamboo包下的Bamboo.java

(2)编写一个Java程序,在程序中定义一个接口Bulid,定义一个类Tree实现接口,在Tree类中实现Bulid的接口。

package shiyan8_2;
public interface Bulid {
double PI=3.14;
public  void area();
public void volume();
public void use();
}

图8.5定义Bulid 接口

package shiyan8_2;
import shiyan8_2.Bulid;
 class  Tree implements Bulid{
	private double r;
	private double h;
	public Tree(double r,double h) {
		this.r=r;
		this.h=h;
	}
	public void area() {
		double s=PI*r*r;
		System.out.println("切面积:"+s);
	}
	public void volume() {
		double v=PI*r*r*h;
		System.out.println("体积:"+v);
	}
	public void user() {
		System.out.println("Tree用于建造房屋");
	}
	@Override
	public void use() {
		// TODO Auto-generated method stub
		
	}
}
public class Test{
	public static void main(String[] args) {
		// TODO Auto-generated method stub
Tree tree=new Tree(2,2);
tree.area();
tree.volume();
tree.user();
	}
}



图8.6在Tree类中实现Bulid接口

(3)定义个类Plant,修改(2)声明Tree类继承Plant类,同时实现的Bulid接口内容不变。

package shiyan8_2;
import shiyan8_2.Bulid;
 class Plant{
	public String name;
	public int age;
	public Plant(String name,int age){
		this.name=name;
		this.age=age;
	}
	public void introduce() {
		System.out.println("我是一颗成长了"+age+"年的"+name);
	}
}
 class Tree extends Plant implements Bulid {
	public double r;
	public double h;
	public Tree(String name ,int age,double r,double h) {
		super(name,age);
		this.r=r;
		this.h=h;
	}
	public void area() {
		double s=PI*r*r;
		System.out.println("切面积:"+s);
	}
	public void volume() {
		double v=PI*r*r*h;
		System.out.println("体积:"+v);
	}
	public void user() {
		System.out.println("Tree用于建造房屋");
	}
	
	public void use() {
		// TODO Auto-generated method stub
		
	}
}
public class Test1{
	public static void main(String[] args) {
		// TODO Auto-generated method stub
Tree tree=new Tree("樱桃树",12,2,2);
tree.area();
tree.volume();
tree.user();
tree.introduce();
	}
}



图8.7 Tree类继承Plant类

8.3实验指导
3.1包1
程序Tree.java
public class Tree
{
public static void main(String[] args)
{
Living tree=new Living ();
tree.say();
}
}
class Living
{
void say()
{
System.out.println(“我是一棵树”);
}
}

Bamboo.java
public class Bamboo
{
public static void main(String[] args)
{
Living bamboo =new Living ();
bamboo.say();
}
}
class Living
{
void say()
{
System.out.println(“我是一棵竹子”);
}
}

将Tree.java和Bamboo.java放与统一文件夹下。
编译Tree.java,运行Tree。
编译Bamboo.java,运行Bamboo。
运行Tree,观察提示结果
3.2包2
程序Living.java
package Tree;
public class Living
{
void say()
{
System.out.println(“我是一棵树”);
}
}
程序Tree.java
import Tree.Living
public class Tree
{
public static void main(String[] args)
{
Living tree=new Living ();
tree.say();
}
}

同样新建Bamboo包作上述修改,注意包在命令行中的编译格式,分别查看Tree.class和Bammbo.class的运行结果。

3.3接口1
Bulid接口:
定义成员变量PI为3.14;
定义成员方法area(切面积);
定义成员方法volume;
定义成员方法use。
Tree类:
在Tree类中实现Bulid接口;
其私有变量为半径和高度;
构造有参的构造方法;
实现area、volume、use方法(use方法可以定义为输出用于建筑房屋,或者用于打造家具等)
新建Test类建立Tree的对象,并输出其面积,体积,以及用途。
3.4 接口2
Plant类:
name和age。
有参构建方法初始化name和age。
实例方法introduce()输出“我是一棵生长了XX年的XX树”。
Tree类:
在3.3的基础上继承Plant类。
Test类:
加上introduce方法的调用。
8.4实验心得
通过本次实验,我了解了多个目录下,多个类并存且由类同名的情况下对程序运行的影响;掌握了Java程序中包的定义以及使用方法;掌握了接口定义的语法格式、成员变量的定义、成员方法的定义;掌握了接口实现的语法格式;掌握了接口的使用和Java语言中利用接口实现多重继承。

包与接口实验报告 实验 包与接口实验目的】 1. 了解Java 中包(package)、接口(interface)的作用。 2. 掌握包、接口设计方法。 【实验要求】 1. 了解Java 系统包的结构。 2. 掌握创建自定义包的方法。 3. 掌握使用系统接口的技术和创建自定义接口的方法。 【实验步骤】 一.了解并使用Java 的系统包 1. API 包、接口、异常处理的作用 包是类和接口的集合。利用包可以把常用的类或功能相似的类放在一个包中。Java 语言提供系统包,其中包含了大量的类,可以在编写Java 程序时直接引用它们。为便于管理和使用它们,将这些类分为了不同的包。包又称类库或API 包,所谓API(Application Program Interface)即应用程序接口。API 包—方面提供丰富的类与方法供大家使用,如画图形、播放声音等,另一方面又负责和系统软硬件打交道,圆满实现用户程序的功能。所有Java API 包都以“java.”开头,以区别用户创建的包。 常见Java系统包及其作用: 1)语言包(java.lang):提供的支持包括字符串处理、多线程处理、异常处理、数学函数处理等,可以用它简单地实现Java程序的运行平台。 2)实用程序包(java.util):提供的支持包括哈希表、堆栈、可变数组、时间和日期等。 输入输出包(java.io):用统一的流模型来实现所有格式的I/O,包括文件系统、网络、输入。 3)网络包(java.net):支持Internet的TCP/IP协议,用于实现Socket编程;提供了与Internet的接口,支持URL连接,WWW的即时访问,并且简化了用户/服务器模型的程序设计。 4)抽象图形用户接口包(javax.swing):实现了不同平台的计算机的图形用户接口部件,包括窗口、菜单、滚动条、对话框等,使得 Java可以移植到不同的平台。 接口解决了Java 不支持多重继承的问题,可以通过实现多个接口达到与多重继承相同的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

向阳而生,无畏寒霜

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值