// La sintaxis de una clase es muy sencilla 'class' public class Alumno { // Propiedades String nombre; // Funciones void saludo() { System.out.println("Hola " + nombre); } }
public class Coche { String marca; int velocidad=0; void acelerar() { System.out.println("brum brum"); // Lo interesante de las clases es que sus funciones // Pueden acceder y modificar las propiedades velocidad+=10; } void frenar() { System.out.println("Ñññic"); velocidad-=10; } }
package com.trifulcas.oop; public class Cuadrado { // Cada objeto cuadrado tendrá su lado double lado; // Todas las funciones devuelven el valor en función // de la propiedad de la clase, no como un parámetro double area() { return lado*lado; } double perimetro() { return lado*4; } double diagonal() { return Math.sqrt(lado*lado*2); } }
public class Introduccion { public static void main(String[] args) { // String es la plantilla y cadena es un objeto // Cada cadena es una instancia de la clase String String cadena="Hola que tal"; String otracadena="Hola que tal"; String yotracadena="Hola que tal"; // Como cada objeto es instancia de la clase String // Todos comparten las mismas propiedades y funciones System.out.println(cadena.length()); System.out.println(otracadena.length()); System.out.println(yotracadena.length()); // Yo tengo la clase Alumno // La clase alumno es una plantilla para crear alumnos // La palabra clave new es la que me crea el objeto Alumno ana = new Alumno(); ana.nombre="Ana Pi"; ana.saludo(); Alumno eva=new Alumno(); eva.nombre="Eva Pérez"; eva.saludo(); // juan está declarado pero no he creado ningún objeto // Es como si no existiera. No puedo poner juan.nombre="sss" Alumno juan; Coche seat=new Coche(); seat.marca="Seat Panda"; seat.acelerar(); seat.acelerar(); System.out.println(seat.velocidad); seat.frenar(); System.out.println(seat.velocidad); // Otro coche nuevo Coche citroen=new Coche(); citroen.marca="Citroen"; for(int i=0;i<10;i++) { citroen.acelerar(); } System.out.println(citroen.velocidad); // Esto no tiene sentido: // Coche.marca="Seat"; // Las propiedades se ponen en los objetos, no en la clase // Porque la clase es la plantilla // Nosotros no usamos el plano de una casa para colgar un cuadro // Cada objeto que creamos de la clase cuadrado // Encapsula las funciones que nos dan información de su propia // clase. No tenemos que pasar esos valores como parámetro Cuadrado c1 = new Cuadrado(); c1.lado = 2; System.out.println(c1.area()); System.out.println(c1.perimetro()); System.out.println(c1.diagonal()); System.out.println(cadena.toUpperCase()); // Yo puedo crear un ArrayList con la clase Cuadrado // Igual que lo hacía de string o de cualquier otra cosa ArrayList<Cuadrado> lista =new ArrayList<>(); for(int i=1;i<=10;i++) { // Creo un objeto Cuadrado c=new Cuadrado(); c.lado=i; // Añado a la lista lista.add(c); } // Recorrer esa lista for(Cuadrado c:lista) { // Imprimir el área System.out.println(c.area()); } Cuadrado a=new Cuadrado(); Cuadrado b=new Cuadrado(); a.lado=1; b.lado=1; System.out.println(a==b); // false porque no son el mismo objeto } }