Probablemente haya escuchado el término objeto en un contexto de programación antes. Pero, ¿qué significa realmente? Comencemos por mirar algunos objetos del mundo real,como bolígrafos, libros, teléfonos inteligentes, computadoras, etc.
Cada objeto viene en diferentes formas y formas, pero puede clasificar diferentes versiones del mismo objeto en una categoría o grupo. Es por eso que puedes ir a una tienda de muebles y reconocer diferentes artículos como «sillas», incluso si se ven muy diferentes entre sí.
Reconoce todos estos objetos diferentes como parte del mismo grupo o tipo. Usted nota similitudes entre diferentes objetos, recopila la información y crea una representación mental para una categoría determinada de objetos.
Por ejemplo, hay diferentes tipos de libros, pero todos ellos tienden a tener un título, un autor, una portada, páginas, etc. En otras palabras, todos los libros individuales tienen atributos similares que le permiten clasificarlos en su mente como parte de la categoría «libro».»
Esta lista mental de los atributos que acabamos de describir para un libro actúa como una especie de modelo para ese objeto. En programación, se llama clase. Al crear una clase, puede crear cualquier nombre personalizado, por lo que se llaman tipo con nombre. Como verás, también te permiten agrupar muchos detalles, por lo que también pueden denominarse tipos complejos. Por otro lado, los tipos simples con los que ya está familiarizado, como int
o double
, tienen nombres predefinidos por el lenguaje de programación y no se pueden modificar.
¿Cómo se nos ocurren los nombres de las clases?
Similar a las variables de nomenclatura, los nombres de las clases deben ser descriptivos y deletreados (recuerde, evite las abreviaturas!). Una diferencia clave es que, en lugar de usar camelCase estándar, la primera letra también debe ser mayúscula como MarvelousCreature
y no marvelousCreature
.
Diseñar clases
Para ver cómo diseñar una clase, continuemos con el ejemplo del libro. A continuación, hemos identificado una muestra de información que podría describir cualquier libro:
-
título
-
autor
-
número de páginas
-
editorial
Esos son atributos de cualquier libro en la vida real. En el contexto de las clases, esos atributos se denominan campos en Java. Los campos de una clase son simplemente un nombre elegante para algo con lo que ya está familiarizado: ¡variables!
Ahora, tienes la teoría, ¡así que pongamos esto por escrito!
Para declarar una clase en Java, use una palabra clave class
seguida de un nombre personalizado. Después de eso, termina con llaves ({}
) que abarcarán todo el contenido. Esto incluye la lista completa de propiedades:
class Book {// functionality of the class}
Ahora agreguemos campos como se definió anteriormente:
class Book { String title; String author; int numberOfPages; String publisher="OC";}
Observe cómo los tres primeros no tienen valores, pero el último sí? Si usted es un editor que quiere catalogar sus libros, entonces sabe que el valor del editor siempre será el mismo, sin importar qué libro produzca. Sin embargo, los títulos, autores y números de página del libro cambiarán dependiendo del libro en particular.
Si vuelves al ejemplo original de una librería en línea, sin embargo, la clase se vería más como esto:
class Book { String title; String author; int numberOfPages; String publisher;}
Dado que tendrás libros de muchas editoriales diferentes, no puedes poner un valor predeterminado para todas ellas. Así que, aquí, defina el campo y ponga un valor más tarde!
Utilizando clases
Tienes un nuevo tipo – Book
sorted – ¡resuelto! ¿Qué puedes hacer con él? Después de todo, las clases son más abstractas o conceptuales. Los campos de clase son como una plantilla en una librería en línea: no importa qué libro busques, aparecerá la misma información (título, autor, número de páginas, etc.).).
Pero cuando estás buscando, no solo escribes «libro», ¿verdad? Que no es útil! Necesitas un ejemplo específico de un libro, digamos, Alicia en el país de las Maravillas. Estás buscando un objeto real que puedas hojear y leer. Es lo mismo en la programación de computadoras.
Para trabajar con una clase, necesita crear un objeto concreto de esa clase. En otras palabras, necesitas un objeto específico, como un libro en particular (Alicia en el país de las Maravillas). ¡Ese libro específico se llama una instancia de una clase! Como su nombre lo indica, el proceso se llama instanciar o inicializar un objeto. Para ello, se crea una variable de la clase.
En Java, cada campo del objeto creado debe tener un valor. Esos valores se pueden proporcionar de varias maneras. Vio uno en el ejemplo de editor: establecer un valor en la definición de clase.
Otra forma es proporcionar un valor en la instrucción que crea la clase. Veamos cómo hacerlo. Aquí está el código para crear un libro con los valores proporcionados en el momento en que se crea el objeto:
Como puede ver, hay algunos elementos diferentes. Primero, haga una declaración regular de una variable, con su nombre myBook
y su tipo Book
. ¿Recuerdas cómo dijimos que una clase es un tipo complejo con nombre? Bien, aquí está la prueba! En lugar de int
double
o string
, nuestro tipo es la clase en la que he llegado con!
Ahora, aquí viene la parte genial. La variable se inicializa con la expresión de creación de objetos new Book("Coding is art","Becky James",425);
. Esta expresión se compone de la palabra clave new
, seguida de nuevo del nombre de la clase (Book
), y algunos paréntesis ()
con valores dentro. Como se puede ver, el paréntesis contienen un valor especificado para cada uno de los campos originales: title
author
y numberOfPages
. Nos hemos asegurado de separar cada uno con una coma. Finalmente, termine con un punto y coma ;
. ¡Con eso, has creado una instancia del Libro de clases! Working
Trabajar con atributos (campos)
¡Uf! Eso era mucho vocabulario y conceptos. Antes de continuar, recapitulemos con un diagrama rápido:
¿Es mejor? Solo recuerde:
-
Use una clase como plantilla para sus objetos futuros. En una clase, defina el nombre y el tipo de algunas variables. En Java, estos se llaman atributos en general, y campos específicamente.
-
Para usar el plan genial que hiciste, tienes que crear un objeto usando el proceso de instanciación. Esto significa declarar una variable con su clase como tipo, y luego usar la expresión de creación de objetos que vio arriba.
-
Cuando crea una instancia de un objeto, crea valores para cada uno de los campos que ya ha definido en su clase.
-
Un objeto se denomina una instancia de una clase.
¡Ya estás listo! Tienes tu objeto de libro, pero digamos que cambias de opinión sobre el valor de tus variables. ¿Cómo accede a los campos asociados con su nuevo objeto brillante?
Una forma común de acceder a los campos en muchos lenguajes de programación es usando lo que se llama notación de puntos. Significa que debe escribir el nombre de una instancia u objeto seguido de un nombre de atributo de interés, separado por un punto: instanceVariableName.attributeName
.
myBook.title = "Coding is Art";myBook.author = "Becky James";myBook.numberOfPages = myBook.numberOfPages + 10;
¡Ahora puede configurar cambiar el valor de los campos dentro de su objeto! Imagina que has agregado diez páginas porque olvidaste agregar el índice del libro. Puede escribir el nuevo número directamente o agregar diez páginas al valor existente, como en la tercera línea. Esto es bastante útil cuando se hacen pequeños cambios. 🙂
pruébelo usted mismo
https://api.next.tech/api/v1/publishable_key/2A9CAA3419124E3E8C3F5AFCE5306292?content_id=2871d3da-5053-4373-a813-46b6fcf8118c
Resumen
En este capítulo, usted ha aprendido los fundamentos de objetos:
-
Una clase es un modelo de un objeto.
-
Una variable de una clase se denomina instancia de una clase u objeto.
-
Una clase le permite crear tipos complejos agrupando sus atributos mediante la definición de campos.
-
Para crear un objeto, debe declarar una variable de una clase e instanciarla.
-
La notación de puntos proporciona acceso a los campos.