导航:首页 > 编程语言 > java接口的陷阱题

java接口的陷阱题

发布时间:2023-03-11 12:39:27

java关于接口的编程题!

关键了解接口的作用,你把下面的Cp改成你要的TestSort就OK乐,Cp是我的类文件名 懒得改了interface Sortble{
public int Compare(Sortble s);
}
class Student implements Sortble{
private int score;
Student(int s){
score=s;
}
public int Compare(Sortble s) {
// TODO Auto-generated method stub
Student ss=null;
if(s instanceof Student){
ss=(Student)s;
}else{
System.out.println("程序出错,意外退出");
System.exit(0);
}
if(this.getScore()>ss.getScore()){
return 1;
}else if(this.getScore()<ss.getScore()){
return -1;
}else{
return 0;
}
}
public String toString(){
return ""+getScore();
}
public void setScore(int score) {
this.score = score;
}
public int getScore() {
return score;
}
}
class Rectangle implements Sortble{
private int length,width;
Rectangle(int length,int width){
this.length=length;
this.width=width;
}
public int area(){
return length*width;
}
public int getLength() {
return length;
}
public void setLength(int length) {
this.length = length;
}
public int getWidth() {
return width;
}
public void setWidth(int width) {
this.width = width;
}
public int Compare(Sortble s) {
Rectangle ss=null;
// TODO Auto-generated method stub
if(s instanceof Rectangle){
ss=(Rectangle)s;
}else{
System.out.println("程序出错,意外退出");
System.exit(0);
}
if(this.area()>ss.area()){
return 1;
}else if(this.area()<ss.area()){
return -1;
}else{
return 0;
}
}
public String toString(){
return ""+area();
}
}
class Sort{
public static void SelectSort(Sortble[] a){
Sortble m=null;
for(int i=0;i<a.length-1;i++){//升序
for(int j=i+1;j<a.length;j++){
if(a[j].Compare(a[i])<0){
m=a[i];
a[i]=a[j];
a[j]=m;
}
}
}
}
}
public class Cp{
Cp(){
Student[] s=new Student[5];
for(int i=0;i<s.length;i++){
s[i]=new Student((int)(Math.random()*100));
}
Sort.SelectSort(s);
System.out.println("下面是按升序输出学生成绩");
for(int i=0;i<s.length;i++){
System.out.println(s[i]);
}
Rectangle[] ss=new Rectangle[5];
for(int i=0;i<ss.length;i++){
ss[i]=new Rectangle((int)(Math.random()*100),(int)(Math.random()*100));
}
Sort.SelectSort(ss);
System.out.println("下面是按升序输出矩形面积");
for(int i=0;i<ss.length;i++){
System.out.println(ss[i]);
}
}
public static void main(String[] arg){
new Cp();
}
}

❷ 有关接口回调的java题,求解。

下面是UnitPrice接口代码

public interface UnitPrice {

public double unitprice();

}

下面是电视机类代码:

public class Television implements UnitPrice {

@Override

public double unitprice() {

return 3500d;

}

}

下面是计算机类代码:

public class Computer implements UnitPrice {

@Override

public double unitprice() {

return 7800d;

}

}

下面是手机类代码:

public class Mobile implements UnitPrice {

@Override

public double unitprice() {

return 2500d;

}

}

下面是公共类代码:

import java.util.Scanner;


public class Common {

static double get(UnitPrice u) {

return u.unitprice();

}

@SuppressWarnings("resource")

public static void main(String[] args) {

System.out.print("请输入电视机的销售个数:");

Scanner scanner = new Scanner(System.in);

int television_num = scanner.nextInt();

System.out.print("请输入计算机的销售个数:");

scanner = new Scanner(System.in);

int computer_num = scanner.nextInt();

System.out.print("请输入手机的销售个数:");

scanner = new Scanner(System.in);

int mobile_num = scanner.nextInt();

double television_price = television_num * (get(new Television()));

System.out.println("电视机的销额是:" + television_price);

double computer_price = computer_num * (get(new Computer()));

System.out.println("计算机的销额是:" + computer_price);

double mobile_price = mobile_num * (get(new Mobile()));

System.out.println("手机的销额是:" + mobile_price);

System.out.println("总销额是:" + (television_price + computer_price + mobile_price));

scanner.close();

}

}

下面是执行后的效果截图:

麻烦您看一下,是否能够满足要求。

❸ java接口问题

楼主你好!

按您的要求已经完成了初步设计,就等你接收了。

我所用的技术的“java设计模式当中的策略模式”,它的核心点就是封装算法。你可以通过自己的编写新的交通工具在不修改原代码的情况下按要求对新类进行编码。

注意:一.你要编写的交通工具类必须实现Vehicel这个abstract

如:publicclassShipextendsVehicel、、、、

二.因为不同的交通工具算法不同,所以这步我采用的接口对算法进行抽象定义,并在实际行为类实现的时候实现此借口单独编写自己的算法。

如:

三.记住我的包名:com.qs.strategy。

四.在最后我用了个简单工程模式用来实列化style参数,把你要填加的类,添加到if判断里面就OK了。

代码欣赏:

packagecom.qs.strategy;

publicabstractclassVehicle{

;

publicVehicle(){}

();

publicvoidcomputeTime(){

computeTime.computeTime();

}

(){

returncomputeTime;

}

publicvoidsetComputeTime(IComputeTimecomputeTime){

this.computeTime=computeTime;

}

}

packagecom.qs.strategy;

publicclassCarextendsVehicle{

@Override

publicvoidprepareCompute(){

//TODOAuto-generatedmethodstub

System.out.println("交通工具运行1000公里所需的时间:");

System.out.println("==========================");

}

}

packagecom.qs.strategy;

{

@Override

publicvoidprepareCompute(){

//TODOAuto-generatedmethodstub

System.out.println("交通工具运行1000公里所需的时间:");

System.out.println("==========================");

}

}

packagecom.qs.strategy;

publicinterfaceIComputeTime{

voidcomputeTime();

}

packagecom.qs.strategy;

{

privateinta;

privateintb;

privateintc;

publicPlaneWithComputeTime(){}

publicPlaneWithComputeTime(inta,intb,intc){

this.a=a;

this.b=b;

this.c=c;

}

publicvoidcomputeTime(){

//TODOAuto-generatedmethodstub

System.out.println("javaComputeTimePlane"+""+a+""+b+""+c);

System.out.println("computeresultis"+(a+b)+c);

}

}

packagecom.qs.strategy;

{

privateinta;

privateintb;

privateintc;

publicCarWithComputeTime(){}

publicCarWithComputeTime(inta,intb,intc){

this.a=a;

this.b=b;

this.c=c;

}

publicvoidcomputeTime(){

//TODOAuto-generatedmethodstub

System.out.println("javaComputeTimeCar"+""+a+""+b+""+c);

System.out.println("computeresultis"+(a*b)/c);

}

}

packagecom.qs.strategy;

{

publicSimpleVehicleFactory(){

}

publicVehicleinstance(Stringstyle){

Vehiclevehicle=null;

if(style.toLowerCase().equals("car")){

vehicle=newCar();

}elseif(style.toLowerCase().equals("plane")){

vehicle=newPlane();

}

if(vehicle==null)

System.out.println("请与管理员联系你输入的交通工具还未开通!!!");

returnvehicle;

}

}

最后是测试类:

packagecom.qs.strategy;

publicclassTestVehicle{

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

//TODOAuto-generatedmethodstub

SimpleVehicleFactoryfactory=newSimpleVehicleFactory();

if(factory.instance("CaRs")!=null){

Vehiclevehicle=factory.instance("CaRs");

vehicle.prepareCompute();

vehicle.setComputeTime(newCarWithComputeTime(40,50,60));

vehicle.computeTime();

}

}

}

阅读全文

与java接口的陷阱题相关的资料

热点内容
2014年web服务器测试工具 浏览:192
win7镜像文件怎么用 浏览:983
多数据can怎么发送 浏览:997
什么是夏威夷果种植技术app 浏览:160
上海学习编程哪个地方好 浏览:958
股票软件与交易编程软件哪个好 浏览:216
linux如何查看一个文件的位置 浏览:911
c头文件无法打开源文件stdafx 浏览:750
苹果x的桌面上可以建文件夹 浏览:368
ug8532位破解版安装教程 浏览:490
电脑网络如何重新驱动 浏览:125
win10连接服务器命令 浏览:228
卢克raid活动20升级卷 浏览:969
机票预订什么网站好 浏览:690
读写xml配置文件 浏览:153
java爬虫解析html 浏览:861
约瑟夫集合java 浏览:275
我的ie8网站显示不居中 浏览:423
win10图片原地址在哪显示 浏览:201
怎么样把app添加到小组件 浏览:148

友情链接