2024年1月6日发(作者:)
习题1
具有照像功的设备:
手机Phone,数码照像机Camera,平板电脑Tablet pc
请遵循 照像功能
Photographable
实现其Public void takePhoto()方法
提示
分别是设计3种设备的类,分别实现其照像功能的接口
package ;
public class Camera extends Photographable implements TakePhoto {
public Camera( String name ){
super( name );
n( "---有参---" +name );
}
public Camera(){
}
public void takePhoto(){
n( getName() + ":像素很高" );
}
@Override
public void takePhotoint() {
// TODO Auto-generated method stub
n( getName() + "有夜间模式,微距离模式等" );
}
}
package ;
public class Phone extends Photographable implements TakePhoto {
public Phone( String name ){
super( name );
n( "---有参---" +name );
}
public Phone(){
}
public void takePhoto(){
n( getName() + ":像素低" );
}
@Override
public void takePhotoint() {
// TODO Auto-generated method stub
n( getName() + "有傻瓜照相功能,还能打电话" );
}
}
package ;
public class TabletPC extends Photographable implements TakePhoto{
public TabletPC( String name ){
super( name );
n( "---有参---" +name );
}
public TabletPC(){
}
public void takePhoto(){
n( getName() + ":像素还行" );
}
@Override
public void takePhotoint() {
// TODO Auto-generated method stub
n( getName() + "屏幕大,看得爽,还能玩高清游戏" );
}
}
package ;
public abstract class Photographable {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
= name;
}
public Photographable( String name ){
= name;
}
public Photographable(){
}
public abstract void takePhoto();
}
package ;
public abstract interface TakePhoto {
public void takePhotoint();
}
package ;
import ;
import ;
import raphable;
import PC;
public class TestPhoto {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Photographable pho = new Phone( "洛基亚" );
oto();
if( pho instanceof Phone ){
Phone p1 = (Phone)pho;
otoint();
}
n( "***********************" );
Phone ph = new Phone( "小米" );
oto();
otoint();
Camera ca = new Camera( "索尼数码" );
oto();
otoint();
TabletPC ta = new TabletPC( "ipad" );
oto();
otoint();
}
}
习题2
打印机:
打印机有多种类型,比如:黑白打印机、彩色打印机等
学校可能配备其中任意一款打印机,负责打印人、或者书的详细信息
系统要具备良好的可扩展性与可维护性
package ;
public interface BlackAndWhitePrinter {
public abstract void BAWPrint();
}
package ;
public interface ColourPrinter {
public abstract void colourPrint();
}
package ;
public class BookInformation implements ColourPrinter {
@Override
public void colourPrint() {
// TODO Auto-generated method stub
n( "我要打印一本彩色漫画书,需要彩色打印机" );
}
}
package ;
public class PersonnelInformation implements BlackAndWhitePrinter {
@Override
public void BAWPrint() {
// TODO Auto-generated method stub
n( "我要打印人事信息,需要用黑白打印机" );
}
}
package ;
public class TestPrinter {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
ColourPrinter cp = new BookInformation();
Print();
BlackAndWhitePrinter bwp = new PersonnelInformation();
nt();
}
}
习题3
在几何图形中,按图形的几何维数分为平面图和立体图,所有的平面图都能计算周长和面积,所有的立体图都能计算表面积和体积.
定义Shape2D和Shape3D接口,
分别描述平面图和立体图的特征和行为,在Shape2D中定义计算周长和面积的方法,Shape3D继承Shape2D接口,新增计算体积的方法,定义Circle圆类和Sphere球类,分别实现Shape2D和Shape3D接口。
package ;
public interface Shape2D {
double pi = 3.14;
public abstract double perimeter( double r );
public abstract double area( double r );
}
package ;
public interface Shape3D extends Shape2D {
public abstract double volume( double r );
}
package ;
public class Circle implements Shape2D {
private double r;
public double getR() {
return r;
}
@Override
public double area( double r ) {
// TODO Auto-generated method stub
return pi*r*r;
}
@Override
public double perimeter( double r ) {
// TODO Auto-generated method stub
return 2*pi*r;
}
}
package ;
public class Sphere implements Shape3D {
private double r;
public double getR() {
return r;
}
}
@Override
public double volume( double r ) {
// TODO Auto-generated method stub
return 4.0/3.0*pi*r*r*r;
}
@Override
public double area(double r) {
// TODO Auto-generated method stub
return 4*pi*r*r;
}
@Override
public double perimeter(double r) {
// TODO Auto-generated method stub
return 2*pi*r;
}
package ;
import r;
public class TestShape {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner( );
n( "求圆的面积和周长请输入1 求球的面积、体积和周长请输入2" );
int i = t();
if( i == 1 ){
n( "请输入圆的半径:" );
double r = uble();
Shape2D s2 = new Circle();
n( "圆的面积为:" + (r) + "平方米" );
n( "圆的周长为:" + ter(r) + "米" );
}
if( i == 2 ){
n( "请输入球的半径:" );
double r = uble();
Shape3D s2 = new Sphere();
n( "球的面积为:" + (r) + "平方米" );
n( "球的体积为:" + (r) + "立方米
" );
n( "球的最大截面周长为:" + ter(r)
+ "米" );
}
}
}
习题4
定义一个手机接口(定义5个方法:打电话、发短信、蓝牙、照相、gps功能),再定义诺基亚类、三星类(注意:每种手机分为三个档次,高端机,中端机,低端机;高端机有所有5个功能,中端机没有GPS功能,低端机只有打电话和发短信功能)。在实现一个测试类,要求在测试类定义一个方法show出手机的所有功能:注,传入的手机有可能是任何手机
package ;
public interface MobilePhone {
public abstract void phone();
public abstract void message();
public abstract void blueteeth();
public abstract void photo();
public abstract void gps();
}
package ;
public class Nokia implements MobilePhone {
private String name;
public String getName() {
return name;
}
public Nokia( String name ){
= name;
n( name + "的功能有:" );
}
public Nokia(){
}
@Override
public void blueteeth() {
// TODO Auto-generated method stub
n( "蓝牙功能" );
}
@Override
public void gps() {
// TODO Auto-generated method stub
n( "gps功能" );
}
@Override
public void message() {
// TODO Auto-generated method stub
n( "发短信功能" );
}
@Override
public void phone() {
// TODO Auto-generated method stub
n( "打电话功能" );
}
@Override
public void photo() {
// TODO Auto-generated method stub
n( "照相功能" );
}
}
package ;
public class NokiaHigh extends Nokia {
public NokiaHigh( String name ){
super( name );
}
public NokiaHigh(){
}
public void blueteeth() {
n( "蓝牙功能" );
}
public void gps() {
n( "gps功能" );
}
public void message() {
n( "发短信功能" );
}
public void phone() {
n( "打电话功能" );
}
public void photo() {
n( "照相功能" );
}
}
package ;
public class NokiaMiddle extends Nokia {
public NokiaMiddle( String name ){
super( name );
}
public NokiaMiddle(){
}
public void blueteeth() {
n( "蓝牙功能" );
}
public void gps() {
}
public void message() {
n( "发短信功能" );
}
public void phone() {
n( "打电话功能" );
}
public void photo() {
n( "照相功能" );
}
}
package ;
public class NokiaLow extends Nokia {
public NokiaLow( String name ){
super( name );
}
public NokiaLow(){
}
public void blueteeth() {
}
public void gps() {
}
public void message() {
n( "发短信功能" );
}
public void phone() {
n( "打电话功能" );
}
public void photo() {
}
}
package ;
import r;
public class TestMobilePhone {
Scanner sc = new Scanner( );
public void show() {
n( "请输入手机型号的代码(Nokia N97--1,Nokia
3050--2,Nokia 1050--3):" );
int w = 1;
while( w == 1 ){
int a = t();
if( a == 1 ){
Nokia no1 = new NokiaHigh( "Nokia N97" );
eth();
();
e();
();
();
w = 0;
}else if( a == 2 ){
Nokia no2 = new NokiaMiddle( "Nokia 3050" );
eth();
();
e();
();
();
w = 0;
}else if( a == 3 ){
Nokia no3 = new NokiaLow( "Nokia 1050" );
}
}
}
eth();
();
e();
();
();
w = 0;
}else{
n( "对不起!没这型号!请重新输入:" );
w = 1;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
TestMobilePhone tmp = new TestMobilePhone();
();
}
发布评论