"¡Hola, amigo!"

"¡Hola, Ellie!"

"Hoy les voy a hablar mucho sobre las clases en Java".

" Explicación No. 1. Comenzaré con una analogía. Todas las cosas en el mundo material consisten en átomos. Hay varios tipos de átomos: hidrógeno, oxígeno, hierro, uranio... Las combinaciones de estos átomos forman diferentes moléculas, sustancias y objetos."

"Estos átomos tienen algunas estructuras internas, como electrones y un núcleo formado por protones y neutrones".

"Sí, sé un poco sobre la estructura de los átomos. ¡Después de todo, soy un robot!"

"El mundo de Java está estructurado de manera similar. Los programas constan de varios tipos de objetos (clases). Las diferentes clases, a su vez, contienen diferentes estructuras internas (variables y métodos)".

"Si observamos un programa como un todo, entonces sus componentes básicos son objetos. Las clases son los tipos de bloques. En otras palabras, diferentes tipos de bloques son objetos de diferentes clases " .

"Creo que lo entiendo".

" Explicación No. 2 . Cuando necesitamos un nuevo tipo de objeto, creamos una nueva clase y definimos la forma en que se comportan sus objetos internos " .

"Eso suena demasiado general. Parece claro, pero no dijiste nada concreto".

"En términos de estructura interna, una clase consta de métodos, que hacen algo, y variables, que son utilizadas por los métodos para almacenar datos " .

"Entonces, ¿sería más simple decir que una clase es un conjunto de métodos?"

"Casi. Para ser más exactos, una clase es un grupo de métodos relacionados y variables compartidas utilizadas por estos métodos para almacenar diferentes valores".

"Ya veo. Para crear una nueva clase, primero debemos escribir estos métodos..."

"Sí. Y también tenemos que decidir qué variables compartirán los diferentes métodos. Extraemos estas variables de los métodos y las colocamos en la clase, es decir, convertimos las variables locales en variables miembro (de instancia)".

"Básicamente, una clase se crea así:

1. El programador decide qué otros objetos necesita.

2. El programador divide estos objetos en diferentes tipos, dependiendo de lo que van a hacer.

3. El programador escribe una clase separada para cada tipo.

4. En una clase, declaran los métodos y variables necesarios.

5. En cada método, escriben comandos para hacer que el método haga lo que ellos quieren que haga.

6. La clase está lista. Ahora puede crear objetos de la clase".

"¡Genial! ¡Qué patrón tan interesante! Tendré que recordar eso".

"Memorízalo. Será útil. La filosofía de programación que exige que un programa se divida en objetos se llama programación orientada a objetos ( OOP )".

"Java es un ejemplo clásico de un lenguaje OOP: en Java, todo es un objeto".

"Estudiar Java consta de dos grandes tareas: aprender a escribir tus propias clases y aprender a usar las clases de otras personas . Hoy comenzaremos con la más simple de estas. Aprenderemos a escribir las clases más simples y, por supuesto, , cómo crear objetos de estas clases. Los objetos también se denominan a menudo 'instancias' de una clase. Son sinónimos; ambas expresiones son correctas".

"Entiendo."

"Para resumir, podríamos decir que una clase es un miniprograma: algunos datos y funciones que usan los datos para hacer algo. Las clases se usan para crear instancias de clases, también conocidas como objetos " .

"Para crear un objeto, escriba ' new class_name()' en el código. Aquí hay algunos ejemplos:"

Ejemplos
Cat cat = new Cat();
Reader reader = new BufferedReader(new InputStreamReader(System.in));
InputStream is = new FileInputStream(path);

"Un objeto tiene dos propiedades interesantes:"

Primero . Cada objeto almacena su propia copia de las variables de instancia. Esto significa que si las variables de instancia x e y se declararon en una clase y se crearon 10 objetos de esa clase, entonces cada objeto tendrá sus propias variables. Cambiar las variables en una objeto no afecta las variables en otro objeto " .

" Segundo . Al crear objetos, puede pasar diferentes argumentos. Estos valores se utilizan para inicializar el objeto. Es un poco como nombrar a un recién nacido. Muchas clases requieren dichos argumentos para crear instancias (objetos) de la clase " .

"Lo tengo. ¿Qué dijiste sobre las variables de instancia?"

"Cada objeto tiene sus propios datos. Estas son las variables de instancia".

codigo Java Salida de pantalla:
Cat cat1 = new Cat();
cat1.name =  "Oscar";

Cat cat2 = new Cat();
cat2.name = "Smudge";

System.out.println(cat1.name);
System.out.println(cat2.name);

mancha de Óscar