Muchas veces toca crear código que se va a utilizar en varias partes, por ejemplo, supongamos que tenemos un programa que debe contar el número de veces que un caracter se repite dentro de un 3 strings que insertes consecutivamente y sumar los totales, una solución con un ejemplo en Java podría ser esta:
public static void main(String[] args) {
System.out.println("Inserta una letra para buscar, si insertas más de una se tomará la primera");
Scanner scanner = new Scanner(System.in);
char charToSearch = scanner.next().charAt(0);
System.out.println("Inserta el primer String");
String myString = scanner.next();
int firstTotal = 0;
for (int i = 0 ; i < myString.length() ; i++) {
char currentChar = myString.charAt(i);
if (currentChar == charToSearch) {
firstTotal++;
}
}
System.out.println("Inserta el segundo String");
myString = scanner.next();
int secondTotal = 0;
for (int i = 0 ; i < myString.length() ; i++) {
char currentChar = myString.charAt(i);
if (currentChar == charToSearch) {
secondTotal++;
}
}
System.out.println("Inserta el tercer String");
myString = scanner.next();
int thirdTotal = 0;
for (int i = 0 ; i < myString.length() ; i++) {
char currentChar = myString.charAt(i);
if (currentChar == charToSearch) {
thirdTotal++;
}
}
int total = firstTotal + secondTotal + thirdTotal;
System.out.println(total);
}
Como ves es mucho código repetido, imagina que hay un error dentro del for, lo tendrías que corregir 3 veces, además de que si en algún punto necesitas que en vez de evaluar 3 strings sean 4 tendrás que agregar todavía más código.
Hay un convenio en programación llamado DRY, «Don’t Repeat Yourself » o «No te repitas», básicamente se refiere a que si ves código repetido, metas ese código en un método en vez de ponerlo aquí y allá.

Una vez aplicado el consejoDRY, el ejemplo de arriba quedaría como:
public class Main {
public static void main(String[] args) {
System.out.println("Inserta una letra para buscar, si insertas más de una se tomará la primera");
Scanner scanner = new Scanner(System.in);
char charToSearch = scanner.next().charAt(0);
System.out.println("Inserta el primer String");
int firstTotal = getTotalCharsInString(scanner, charToSearch);
System.out.println("Inserta el segundo String");
int secondTotal = getTotalCharsInString(scanner, charToSearch);
System.out.println("Inserta el tercer String");
int thirdTotal = getTotalCharsInString(scanner, charToSearch);
int total = firstTotal + secondTotal + thirdTotal;
System.out.println(total);
}
private static int getTotalCharsInString(Scanner scanner, char charToSearch) {
String myString = scanner.next();
int total = 0;
for (int i = 0; i < myString.length(); i++) {
char currentChar = myString.charAt(i);
if (currentChar == charToSearch) {
total++;
}
}
return total;
}
}
Como puedes ver ahora el código se redujo y todo se hace en el método getTotalCharsInString, al cual le pasamos el scanner y el caracter a buscar, si tenemos que editar el código solo editaríamos getTotalCharsInString una vez en vez de las 3.
Esto ya es un extra, pero si quieres que tu código funcione para una cantidad n de strings, puedes usar un while, así:
public class Main {
public static void main(String[] args) {
System.out.println("Inserta una letra para buscar, si insertas más de una se tomará la primera");
Scanner scanner = new Scanner(System.in);
char charToSearch = scanner.next().charAt(0);
System.out.println("¿En cuantos Strings vas a buscar?");
int n = scanner.nextInt();
int i = 0;
int total = 0;
while (i < n) {
// Esto es para que aparezca Inserta el string 1, porque i comienza en 0
int stringIndexToDisplay = i + 1;
System.out.println("Inserta el String " + stringIndexToDisplay);
total += getTotalCharsInString(scanner, charToSearch);
i++;
}
System.out.println(total);
}
private static int getTotalCharsInString(Scanner scanner, char charToSearch) {
String myString = scanner.next();
int total = 0;
for (int i = 0; i < myString.length(); i++) {
char currentChar = myString.charAt(i);
if (currentChar == charToSearch) {
total++;
}
}
return total;
}
}