import java.util.*; public class Range implements Iterable { int lo, hi; public Range(int lo, int hi) { this.lo = lo; this.hi = hi; } public Iterator<Integer> iterator() { return new Iterator<>() { int i = lo; public boolean hasNext() { return i < hi; } public Integer next() { return i++; } }; } public static void main(String[] args) { for(var n : new Range(10,15)) System.out.println(n); Range r = new Range(10,15); Iterator<Integer> iter = r.iterator(); while(iter.hasNext()) { System.out.println(iter.next()); } } }