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();

();

}