package com.qf.day19.t0.test;
public class TestGoldBach2 {
public static void main(String[] args) {
//(4).程序员A,调用工具方法,isPrime()-->需要传递实例对象,背后实质传递的是实现类对象中的实例方法,实例方法背后的实质是方法的逻辑代码
checkGoldBach(100 , new EngineerAsIsPrime());//(isPrime())-->(for(int i = 2; i < n; i++){if(n%i==0){return false;}}return true;)
}
//(2)验证哥德巴赫猜想(工具)
public static void checkGoldBach(int num, MathTool tool) {//MathTool接口引用
//1.将大于6的偶数进行拆分
for(int i = 2; i < num/2; i++) {//num-i(10-2拆成2和8)是指定的偶数拆出来的另一个数
if(tool.isPrime(i) && tool.isPrime(num - i)) {//tool.isPrime调用接口(接口的使用)
System.out.println(i + "\t" + (num - i));
}
}
}
}
//(1)约定:指定标准(隔离)
interface MathTool{
public abstract boolean isPrime(int n);
}
//(3)程序员A,写个实现类
class EngineerAsIsPrime implements MathTool{//实例对象
@Override
public boolean isPrime(int n) {//实例方法
for(int i = 2; i < n; i++) {
if(n % i == 0) {
return false;
}
}
return true;
}
}