2.27java学习内容:接口

这篇博客介绍了如何使用Java接口进行教师数组的年龄排序,并展示了利用接口实现哥德巴赫猜想的代码示例。通过创建Comparable接口和工具类,实现了数组元素的比较和排序功能,同时接口MathTools被用来辅助检查哥德巴赫猜想,即每个大于2的偶数都可以表示为两个质数之和。
摘要由CSDN通过智能技术生成

作业 给一组教师数列排序(按年龄)
源代码:
测试类代码:
public class TestCallBack {

public static void main(String[] args) {
	Teacher[] t = new Teacher[]{new Teacher("mike",20),new Teacher("annie",19),new Teacher("jack",21)};
	
	Tools.tool(t);
	
	for(int i=0;i<t.length;i++){
		System.out.println(t[i].age+"\t"+t[i].name);
	}
	
}

}

class Teacher implements Comparable{
String name;
int age;

public Teacher(String name, int age) {
	super();
	this.name = name;
	this.age = age;
}

@Override
public int compareTo(Teacher o) {
	if(this.age>o.age){
		return 1;
	}else if(this.age<o.age){
		return -1;
	}
	return 0;
}

}

接口代码:

public class Interface {
interface Comparable{

	//比较老师的年龄,this与传入的teacher比较
	//this大输出整数 互换位置   传入的teacher大 输出负数 相等 输出0
	
	public abstract int compare(Teacher teacher);

}

}

工具代码:

public class Tools {
public static void tool(Teacher[] t1){
for(int i=0;i<t1.length-1;i++){
Comparable currentT1=(Comparable)t1[i];

		int a=currentT1.compareTo(t1[i+1]);
		if(a>0){
			Teacher temp=t1[1];
			t1[1]=t1[0];
			t1[0]=temp;
		}
	}
}

}

运行效果图:
在这里插入图片描述

附加: 哥德巴赫猜想 用接口知识实现:
源代码:

测试类
package day19.t2;

import day19.t2.Interface.MathTools;

public class TestCallBack1 {

public static void main(String[] args) {
	
	Tools.check(64,new Mythink());
	
	
}

}
class Mythink implements MathTools{

@Override
public boolean isPrime(int n) {
	for(int i =2;i<n;i++){
		if(n%i==0){
			return false;
		}
	}
	return true;
}

}
接口:

package day19.t2;

public class Interface {
interface MathTools{

	// 输入一个整数n 判断n是否为质数
	public abstract boolean isPrime(int n);
	

}

}
工具类:

package day19.t2;

import day19.t2.Interface.MathTools;

public class Tools {
public static void check(int num,MathTools tool){
for(int i =2;i<num/2;i++){
int b=num-i;
if(tool.isPrime(i) && tool.isPrime(b)){
System.out.println(num+"="+i+"+"+b);
}
}
}
}
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值