JAVA语言程序设计两道练习题。谢谢!

1、创建Person接口(即“人”),它有setData()和getData()方法对“人”属性name、sex和birthday赋值和获得这些属性组成的字符串信息。创建类Student实现Person接口,并对自己的“学生”属性的成员变量sID、speciality设置值和获得它们值所组成的字符串信息。
2、编写程序,求柱体的体积:
(1)、为柱体的底面设计一个接口Geometry,包含计算面积的方法getArea();
(2)、为柱体设计类pillar,要求:
a)有两个成员变量,底面和高度。底面是任何可以计算面积的几何形状。
b)实现构造方法,对成员变量赋值。
c)包含成员方法,计算柱体pillar的体积。
(3)、编写测试类圆形类、矩形类实现Geometry接口,编写测试类Test,分别用圆形、矩形作为柱体的底面,并计算其体积。

第一题有问题:1、创建Person接口(即“人”),它有setData()和getData()方法对“人”属性name、sex和birthday赋值和获得这些属性组成的字符串信息。
问题是:你说要创建一个人(接口),然后里面有方法对人的属性进行赋值?这怎么可能呢,接口是没有成员变量(属性)的,怎么能赋值?接口里只能有常量。

第二题可以答一下:
package pillar;
public class Pillar { private Geometry buttom;
private double height;
public Pillar() {
// TODO Auto-generated constructor stub
}
public Pillar(Geometry button,double height){
this.buttom = button;
this.height = height;
}
public double getVolume(){
return this.buttom.getArea()*height;
}
public Geometry getButtom() {
return buttom;
}
public void setButtom(Geometry buttom) {
this.buttom = buttom;
}
public double getHeight() {
return height;
}
public void setHeight(double height) {
this.height = height;
}

}
------------------------------------------------类分割线---------------------------------------------------------
package pillar;
public interface Geometry { double getArea();
}
------------------------------------------------类分割线---------------------------------------------------------
package pillar;
public class Circle implements Geometry { private double r;
public Circle() {
// TODO Auto-generated constructor stub
}

public Circle(double r) {
this.r = r;
}

public double getArea() { return Math.PI*r*r;
}
public double getR() {
return r;
}
public void setR(double r) {
this.r = r;
}

}
------------------------------------------------类分割线---------------------------------------------------------
package pillar;
public class Rectangle implements Geometry { private double width;
private double height;

public Rectangle() {
// TODO Auto-generated constructor stub
}

public Rectangle(double width, double height) {
this.width = width;
this.height = height;
}

public double getArea() { return this.width*this.height;
}
public double getWidth() {
return width;
}
public void setWidth(double width) {
this.width = width;
}
public double getHeight() {
return height;
}
public void setHeight(double height) {
this.height = height;
}

}
------------------------------------------------类分割线---------------------------------------------------------
package pillar;
public class TestPillar {
/** * @param args
*/
public static void main(String[] args) {
Circle c = new Circle(5);
Rectangle r = new Rectangle(3,4);
Pillar p1 = new Pillar(c,6);
Pillar p2 = new Pillar(r,6);
System.out.println("圆的体积:"+p1.getVolume()+"\t矩形的体积:"+p2.getVolume());
}

}
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-04-16

第一题

Person接口

import java.util.Date;
public interface Person {
public void setData(String sID, String speciality, String name, String sex, Date birthday);
public String getData();

}

Student实现类

import java.util.Date;
public class Student implements Person {
private String sID;
private String speciality;
private String name;
private String sex;
private Date birthday;

@Override
public void setData(String sID, String speciality, String name, String sex,
Date birthday) {
this.sID = sID;
this.speciality = speciality;
this.name = name;
this.sex = sex;
this.birthday = birthday;
}
@Override
public String getData() {
return "Student [sID=" + sID + ", speciality=" + speciality + ", name="
+ name + ", sex=" + sex + ", birthday=" + birthday + "]";
}

}

本回答被提问者和网友采纳
第2个回答  2013-04-16
java书上都有的

JAVA语言程序设计两道练习题。谢谢!
第一题有问题:1、创建Person接口(即“人”),它有setData()和getData()方法对“人”属性name、sex和birthday赋值和获得这些属性组成的字符串信息。问题是:你说要创建一个人(接口),然后里面有方法对人的属性进行赋值?这怎么可能呢,接口是没有成员变量(属性)的,怎么能赋值?接口里只能有常量。...

JAVA程序设计课程作业,请高手帮忙啊
1.ABD 自动装箱拆箱,byte的范围不能超过255 2.BCD false关键字必须小写,且Java不支持0转false,C\/C++中支持 3.ACD abstract抽象必须被继承,不能被实例化,final类不能被继承 4.ACD +在字符串操作中用作连接符,三元运算符A? B:C若表达式A为真,则返回B的值,若A为假,返回C的值 5.AC ...

JAVA语言程序设计练习题
2.3、Java中的数据类型分为基础类型和引用类型,比如String就是引用类型,String s = "hello"; 那么这个s就是引用变量。类的成员变量就是类的属性,是可以使用引用变量的。2.4、静态变量也叫类变量,这种变量前加了static修饰符。可以直接用类名调用,也可以用对象调用,而且所有对象的同一个类变量...

...Java语言程序设计基础篇》第六版的练习题和编程题答案,谢谢了._百度...
2. Some measures___to protect wildlife resources.A. are taking B. are taken C. are being taken D. being taken 解此题时首先要注意到词组take measures to do sth.,由于题干中把宾语measures提前,应该使用被动语态;句子的意思是“正在采取一些措施去保护野生资源”。在表达现在进行时的被动...

JAVA语言程序设计题目,求高人解答
有main方法的就是主类,错误1:String[] args的String大写,并且中间有空格 保存在MyJavaClass 名字的文件里 错误2:System.out.println("程序结束。");只能写在main方法里 3-2.标识符只能由字母或数字和_和$构成,不能以数字开头,只能以字母或_或$开头,并且不能是关键字 1 2 5对 3错:...

《Java语言程序设计基础篇》机械工程出版社 课后习题答案 是(美)Y.Da...
《Java语言程序设计基础篇》机械工程出版社 课后习题答案 是(美)Y.Daniel Liang 著第8版课后习题答案部首页 问题 全部问题 经济金融 企业管理 法律法规 社会民生 科学教育 健康生活 体育运动 文化艺术 电子数码 电脑网络 娱乐休闲 行政地区 心理分析 医疗卫生 精选 知道专栏 知道日报 ...

求大量JAVA习题!!!急!!!(不是编程题)
《Java程序设计》练习题一、判断题1、 Java语言采用面向对象的思想编程,具有跨平台、分布式、多线程等优点。 ( )2、 一个Java源程序可有多个类,但只仅有一个public类,而且程序名与public类名相同。 ( )3、方法中的形参可以和方法所属类的属性同名。 ( )4、接口无构造器,不能有实例,也不能定义常量。 ( )...

JAVA程序设计复习题目
{ } 方法重载跟返回值无关B. int fun(int a, float b) { } float fun(int x, float y) { } 方法重载跟返回值无关,跟参数类型和参数个数有关D. float fun1(int a, float b) { } float fun2(int a, float b) { } 方法重载就是方法名相同我说的也未必都对 ...

几道JAVA语言程序设计题
1-5:正确,把两个看做是类,“清华大学”包含了“大学”的全部成员,“大学”能接受的信息,“清华大学”一样能接受到。1-6:过程:面向对象的分析、面向对象的设计、面向对象的实现;5个层次:对象-类层、静态属性层、服务层、结构层 、主题层;引入了:界面管理、任务管理、数据管理。PS:其实...

JAVA语言程序设计题请高手回答
public static boolean equal(Complex c1, Complex c2){\/\/比较两个复数是否相等 return c1.getReal() == c2.getReal() && c1.getImagin() == c2.getImagin();} \/\/a + bi + f = (a+f) + bi public static Complex addFloat(Complex c1, float fValue){\/\/复数加一浮点数 c1.set...

相似回答