Tämä on koodi, jolla lasketaan luonnollisten, kolmio -ja tetraedrilukujen summia. Ohjelmassa käytetään olio-ohjelmoinnin tekniikoita, kuten olion attribuutit, konstruktori (jos ei ole konstruktoria luotaan aina automaattisesti oletuskonstruktori), kapselointi sekä get-lauseet.
import java.util.*;
class Summat {
 //Luodaan muuttujat yksityisiksi, jotta niitä ei voi suoraan muokata päohjelman kautta.
 private int luvut[];
 private int kolmiot[];
 private int tetrat[];
 private int summat[];
 private int maara;
 private int summa;
 private int luvutSumma;
 private int kolmiotSumma;
 private int tetratSumma;
 private int luku;
 private int kolmio;
 private int tetra;
 private ArrayList<Integer> luvutLista;
 private ArrayList<Integer> kolmiotLista;
private ArrayList<Integer> tetratLista;
 public Summat(int maara){
 //Alustetaan muuttujat ja taulukot, että niitä voidaan käyttää.
  luvut = new int[maara];
  kolmiot = new int[maara];
  tetrat = new int[maara];
  summat = new int[maara];
  this.maara = maara;
  luvutSumma = 0;
  kolmiotSumma = 0;
  tetratSumma = 0;
  luvutLista = new ArrayList<>();
  kolmiotLista = new ArrayList<>();
  tetratLista = new ArrayList<>();
 }
 public void LaskeLuvut(){
 //Lasketaan tässä metodissa erikseen luvut taulukoihin ja summat.
  luvut[0] = 1;
  kolmiot[0] += luvut[0];
  tetrat[0] += kolmiot[0];
  luvutSumma += luvut[0];
   kolmiotSumma += kolmiot[0];
   tetratSumma += tetrat[0];
  //Edelliseen alkioon lisätään nykyinen luku.
  for (int i = 1; i < maara; i++){
   luvut[i] = i+1;
   kolmiot[i] += kolmiot[i-1]+luvut[i];
   tetrat[i] += tetrat[i-1]+kolmiot[i];
   luvutSumma += luvut[i];
   kolmiotSumma += kolmiot[i];
   tetratSumma += tetrat[i];
  }
 }
 public void LaskeSumma(boolean onkoLuku, boolean onkoKolmio, boolean onkoTetra){
 //Lasketaan jokaisen alkon summa lukujonoista.
 //Käyttäjä voi itse päättää, mitkä lukujonot otetaan huomioon laskemisessa.
 //Lukujonoja on kolmea erilaista.
  for (int i = 0; i < maara; i++){
   summa = 0;
   if (onkoLuku){
    summa += luvut[i];
   }
   if (onkoKolmio){
    summa += kolmiot[i];
   }
   if (onkoTetra){
    summa += tetrat[i];
   }
   summat[i] = summa; //Tämä voidaan myöhemmin palauttaa pääohjelmalle.
  }
 }
 public int AnnaOsanSumma(int valinta){
 //Lasketaaan tietyn lukujonon kaikkien määritettyjen alkioiden summa.
  switch (valinta){
   case 1:
    return luvutSumma;
   case 2:
    return kolmiotSumma;
   case 3:
    return tetratSumma;
  }
 return 0;
 }
 public int[] AnnaSumma(){
  return summat;
 }
 public void LisaaLuku(){
 //Lisätään ArrayListiin uudet luvut.
   luku++;
   kolmio += luku;
   tetra += kolmio;
   luvutLista.add(luku);
   kolmiotLista.add(kolmio);
   tetratLista.add(tetra);
 }
 public int AnnaLuku(int valinta, int indeksi){
 //Palautetaan käyttäjälle annettu lukujonon indeksi.
  switch (valinta){
   case 1:
    return luvutLista.get(indeksi);
   case 2:
      return kolmiotLista.get(indeksi);
   case 3:
      return tetratLista.get(indeksi);
  }
  return 0;
 }
}public class TetraedrienSumma {
 public static void main(String[] args){
 //Tämän pääohjelman kautta voidaan laskea lukujonoja Summat-luokan kautta
  Summat s = new Summat(10);
  Summat s2 = new Summat(8);
  Summat s3 = new Summat(5);
  s.LaskeLuvut();
  s.LaskeSumma(false,true,true);
  for (Integer i : s.AnnaSumma()){
   System.out.println(i);
  }
  System.out.println("");
  System.out.println(s.AnnaOsanSumma(2));
  System.out.println("");
  s2.LaskeLuvut();
  s2.LaskeSumma(true,false,true);
  for (Integer i : s2.AnnaSumma()){
   System.out.println(i);
  }
  System.out.println("");
  System.out.println(s2.AnnaOsanSumma(2));
  System.out.println("");
  //Lopuksi käytetään ArrayListiä.
  for (int i = 0; i < 10; i++){
   s3.LisaaLuku();
  }
  System.out.println("");
   for (int i = 0; i < 10; i+=2){
   System.out.println(s3.AnnaLuku(3,i));
  }
 }
}Aihe on jo aika vanha, joten et voi enää vastata siihen.