
Hola gente, tanto tiempo. Me colgué un poco con la corrección de sus proyectos, entre mis actividades cotidianas; sin embargo fiel a mi promesa de ir cubriendo los temas contenidos en el curso que vimos aquéllos 3 intensivos meses, les paso el tema de la clase 6, el de la Programación Orientada a Objetos -POO- que lo podríamos definir como es un paradigma de programación que usa los objetos en sus interacciones, para diseñar aplicaciones y programas informáticos. Está basado en varias técnicas, incluyendo herencia, cohesión, abstracción, polimorfismo, acoplamiento y encapsulamiento. Su uso se popularizó a principios de la década de los años 1990. En la actualidad, existe una gran variedad de lenguajes de programación que soportan la orientación a objetos.
Sin más, ya les alcanzo el tema de clase propiamente dicho y mucha atención, ya que es otro de los temas clave a la hora deponerse a programar.

CLASE 6: PROGRAMACIÓN ORIENTADA A OBJETOS

6.1 OBJETOS STRING
Los objetos String es el modo primario con que Java usa para comunicarse con el usuario. Asimismo sirven para representar letras, números, signos, cadenas de texto.
Cuando necesitemos de crear variables del tipo carácter usaremos el tipo char, por ejemplo:

Y en String, la cadena de caracteres están entre comillas ( “ “ ). Además que String está la primera letra en mayúsculas, por la razón que es un Objeto. Podemos aplicarle métodos sobre un String.
¿Podemos usar comillas dentro de una cadena de caracteres? Así es, Java tiene una serie de caracteres especiales a la hora de ‘manejar’ String para que nos aparezcan en pantalla. Como nos muestra en la tabla siguiente:

Por ejemplo:
System.out.println ("Los "alumnos de la Escuela N°..." estudian Java " );
Esto nos daría como resultado en la consola:
Los "alumnos de la Escuela N°..." estudian Java
Si quisiéramos que el texto estudian Java aparezca en otra línea, haremos:
System.out.println ("Los "alumnos de la Escuela N°..." nestudian Java " );

OPERADOR DE CONCATENACIÓN
Son las que usa Java para unir cadenas de texto o String. El signo +, que su uso es distinto a la hora de sumar. Veamos un ejemplo:

Cuyo resultado en pantalla sería:
Hubo un total de: 143 participantes
Promedio M
Ahora veamos otro operador: +=

Nos daría como resultado:
Curso Java – Android
Lo que hace es ir añadiendo a un valor nuevos valores, pero manteniendo el anterior valor, es decir va acumulándolo. Ahora podemos reemplazar el texto palabrasClave por +=, veamos:

Con esto nos ahorraremos código redundante y el resultado es exactamente el mismo.
METODO equals()
Sirve para comparar 2 String y dar un resultado (True o False). Como podemos ver en pantalla del ejemplo dado:

Entonces en donde está marcado con amarillo, vemos que el método equals busca en un String respuesta y lo compara con el String resultado. Si ambos fueran iguales, nos dará True, caso contrario, False.
Método Length()
Sirve para darnos la cantidad de caracteres que hay en un String. Agregaremos el código debajo del ejemplo anterior, pues este método es bastante sencillo de entender:

Por ende nos dará 8 que es la cantidad de la palabra amarillo.
MÉTODO toUupperCase/toLowerCase()
Sirve para cambiar mayúsculas en minúsculas y viceversa; veamos el ejemplo:

MÉTODO indexOf()
Busca trozos de texto dentro de un String. Devuelve un entero con el índice de inicio de la cadena, si no se encuentra devuelve un -1. Veamos en el ejemplo:

Nos dará como resultado el número 10, pues cuenta la cantidad de los mismos (incluidos los espacios). Por tanto, si cambiamos en el index por diabolo, nos dará (-1), que nos indica que tal texto no existe en la cadena de caracteres.
6.2 ERRORES COMUNES EN LOS TIPO DE DATOS
Puede darse el caso cuando hagamos operaciones variadas en que mezclemos el tipo de datos.
Antes de seguir, quiero poneros un pequeño ejemplo de double, nosotros podemos almacenar en una variable de tipo double la suma de un double y un int, pero si la suma se almacena en un int nos dará un error al compilar, ya que un int no puede almacenar coma flotante (más adelante, veremos cómo se puede solucionar).

Después de tener una variable declarada podemos operar con ella, para cambiar otra variable o para incrementarla. Veamos un ejemplo con números:

Como vemos declaramos varias variables y usamos una de ellas (inicializada a 0) para almacenar la suma de todas las anteriores. Si una de las variables a,b o c hubiera sido un long, nos indicaría un error (se podría solucionar, lo veremos más adelante).
También tenemos otra forma de declarar variables, si todas ellas son del mismo tipo se pueden declarar en una línea, inicializándonos o no.

6.2 USO DE CONDICIONALES
Daremos a nuestros programas la capacidad de tomar decisiones, lo cual constituye la base del uso de computadoras. Para lograr este cometido, necesitamos de condicionales (if – else – switch) que posee un tipo de declaración que espera que “algo” suceda y si se cumple esto, ejecutará una acción, en caso contrario hará “otra” o en su defecto nada.
Entonces necesitamos de palabras clave (keywords), como las que mostramos en el párrafo anterior, así como de case o break.

DECLARACIONES if
Una declaración if compara si una declaración es verdadera o falsa y lleva a cabo la acción sólo si la condición es verdadera. Por ejemplo:

Por ende obtendremos una respuesta. Si el valor no cumpliera la condición, simplemente no dará ningún resultado.
Observemos que la sintaxis es un tanto especial, como nos muestra en el marcado en amarillo.
Ahora utilizaremos el operador de comparación ( ==)

Cuando se cumpla la condición, arrojará un resultado, sino, nada.
AND / OR (&& / ||)
Son operadores que permiten concatenar más de una condición. Los operadores son:


Operador de Desigualdad (!=)
Se compara y resuelve sólo si se cumple que los valores sean distintos. Ejemplo:
Acá y en los ejemplos anteriores se pueden omitir las llaves, no tanto en el siguiente ejemplo:

Acá sí es necesario encerrar entre llaves a los respectivos bloques if, como muestra en los bloques marcados con colores distintos de los códigos de arriba.
Condicional if else
En este tipo de condicional, hará que el programa realice una acción si cumple la condición, en caso contrario que realice otra acción; por ejemplo:

En este caso como no cumple la primera condición sólo nos arroja el siguiente resultado:
Formas parte del B
Condicional Else if
Este tipo de condicional nos abre un abanico de posibilidades cada vez que abrimos uno. Como podemos observar en el ejemplo siguiente:

Condicional Switch
Cuando nos encontramos con múltiples posibilidades de condiciones y respuestas, nos es muy útil este condicional. Esto logra que evitemos tantos if o else if y facilitarnos las cosas.
Lo que haremos es reconvertir la codificación del ejercicio anterior para verificar cuán cierto es utilizar la comodidad del operador switch.
char grupo = 'A';
switch (grupo) {
case 'A':
System.out.println ("Formas parte del Grupo A" );
break;
case 'B':
System.out.println ("Formas parte del Grupo B" );
break;
case 'C':
System.out.println ("Formas parte del Grupo C" );
break;
default:
System.out.println ("Estás fuera de cualquier grupo" );
}
Podemos ver lo simple que resulta usar este operador condicional. Y los resultados son exactamente los mismos que el ejemplo anterior.
Operador Condicional Ternario (?)
Por último tenemos a este “resumidor” de códigos y de verdad fabuloso a la hora de reducir cantidad de código al parecer redundante. Tiene la contrapartida que es un poco más difícil de entenderlo al estar comprimido. Veremos, utilizaremos el ejemplo del operador If Else para ver como lo convertimos al ternario:
int puntuacion = 5;
char grupo = 'C';
String mensaje;
mensaje = (puntuacion >=7) ? "Aprobado" + ", tu nota final es: " + puntuacion
: "Reprobado" + ", tu nota final es: " + puntuacion;
System.out.println (mensaje);


EJERCICIOS
1.- Por medio del método de importación de Scanner, haga que se ingrese un sueldo. La computadora decidirá cuando el sueldo supere los 3000, esta persona pagará impuestos.
2.- Dados 2 números, que la computadora decida e imprima al mayor de ellos.
3.- Realizar un programa que lea por teclado dos números, si el primero es mayor al segundo informar su suma y diferencia, en caso contrario informar el producto y la división del primero respecto al segundo.
4.- Se ingresan tres notas de un alumno, si el promedio es mayor o igual a siete mostrar un mensaje "Promocionado".
5.- Se ingresa por teclado un número positivo de uno o dos dígitos (1..99) mostrar un mensaje indicando si el número tiene uno o dos dígitos.
(Tener en cuenta que condición debe cumplirse para tener dos dígitos, un número entero)
6.- Confeccionar un programa que pida por teclado tres notas de un alumno, calcule el promedio e imprima alguno de estos mensajes:
Si el promedio es >=7 mostrar "Promocionado".
Si el promedio es >=4 y <7 mostrar "Regular".
Si el promedio es <4 mostrar "Reprobado".

SOLUCIONES:
1)
import java.util.Scanner;
public class UNO {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int sueldo;
sueldo=3000;
System.out.print("Ingrese el sueldo del empleado: " );
sueldo = sc.nextInt();
if(sueldo>3000)
System.out.println("Deberá pagar IMPUESTOS " );
else
System.out.println("SU SUELDO ES: " + sueldo);
}
}
2)
import java.util.Scanner;
public class DOS {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n1, n2;
System.out.print("Introduzca primer número: " );
n1 = sc.nextInt();
System.out.print("Introduzca segundo número distinto al primero: " );
n2 = sc.nextInt();
if(n1 > n2)
System.out.println("El mayor es: " + n1);
else
System.out.println("el mayor es: " + n2);
}
}
Variante para 3 números (un poco más complicado):
Scanner sc = new Scanner(System.in);
int n1, n2, n3;
System.out.print("Introduzca primer número: " );
n1 = sc.nextInt();
System.out.print("Introduzca segundo número, distinto del primero: " );
n2 = sc.nextInt();
System.out.print("Introduzca tercer número, distinto del primero y el segundo: " );
n3 = sc.nextInt();
if(n1 > n2)
if(n1>n3)
System.out.println("El mayor es: " + n1);
else
System.out.println("el mayor es: " + n3);
else if(n2>n3)
System.out.println("el mayor es: " + n2);
else
System.out.println("el mayor es: " + n3);
Otra forma más elegante sería:
import java.util.*;
import java.math.*;
public class tres_B {
public static void main(String[] args) {
int num1, num2, num3;
Scanner teclado = new Scanner(System.in);
System.out.println("Ingresa un numero" );
num1 = teclado.nextInt();
System.out.println("Ingresa otro numero" );
num2 = teclado.nextInt();
System.out.println("Ingresa otro número" );
num3 = teclado.nextInt();
System.out.println("El mayor numero es: " +Math.max(Math.max(num1,num2),Math.max(num2,num3)));
}
}
3)
import java.util.Scanner;
public class tres {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n1, n2;
int suma, dif, prod, div;
System.out.print("Introduzca primer número: " );
n1 = sc.nextInt();
System.out.print("Introduzca segundo número: " );
n2 = sc.nextInt();
suma = n1+n2;
dif = n1-n2;
prod= n2*n1;
div= n2/n1;
if(n1 > n2)
System.out.println("El mayor es: " + n1 + " Y la suma es: " + suma + " Su diferencia es: " + dif);
else if(n2>n1){
System.out.println("el mayor es: " + n2 + " Y el producto es: " + prod + " Su división es: " + div);}
Else
System.out.println("Uno de los números es igual a otro." );
}
}
4)
import java.util.*;
public class cuatro {
public static void main(String[] args) {
Scanner teclado=new Scanner(System.in);
int nota1,nota2,nota3;
System.out.print("Ingrese primer nota:" );
nota1=teclado.nextInt();
System.out.print("Ingrese segunda nota:" );
nota2=teclado.nextInt();
System.out.print("Ingrese tercer nota:" );
nota3=teclado.nextInt();
int promedio;
promedio=(nota1 + nota2 + nota3) / 3;
if (promedio>=7) {
System.out.print("Promocionado" );}
}
}
5)
import java.util.*;
public class cinco {
public static void main(String[] args) {
Scanner teclado=new Scanner(System.in);
int num;
System.out.print("Ingrese un valor entero de 1 o 2 dígitos:" );
num=teclado.nextInt();
if (num<10) {
System.out.print("Tiene un dígito" );
} else {
System.out.print("Tiene dos dígitos" );
}
}
}
6)
import java.util.*;
public class seis {
public static void main(String[] args) {
Scanner teclado=new Scanner(System.in);
int nota1,nota2,nota3;
System.out.print("Ingrese primer nota:" );
nota1=teclado.nextInt();
System.out.print("Ingrese segunda nota:" );
nota2=teclado.nextInt();
System.out.print("Ingrese tercer nota:" );
nota3=teclado.nextInt();
int promedio=(nota1 + nota2 + nota3) / 3;
if (promedio>=7) {
System.out.print("Promocionado" );
} else {
if (promedio>=4) {
System.out.print("Regular" );
} else {
System.out.print("Reprobado" );
}
}
}
}
Bueno, hasta acá sería la clase 6. Insisto, la mejor manera de entender los temas que vamos poniendo es ejercitar, y mientras más ejercicios vean, más van a solidificar sus conocimientos.
