Object-oriented programming System(OOPs) es un paradigma de programación basado en el concepto de «objetos» que contienen datos y métodos. El propósito principal de la programación orientada a objetos es aumentar la flexibilidad y mantenibilidad de los programas. La programación orientada a objetos reúne datos y su comportamiento(métodos) en una sola ubicación (objeto) hace que sea más fácil entender cómo funciona un programa. Cubriremos todas y cada una de las características de OOPs en detalle para que no tenga dificultades para comprender los conceptos de OOPs.,
¡Uy Conceptos – Tabla de Contenido
- ¿Qué es un Objeto
- ¿Qué es una clase
- Constructor en Java
- Programación Orientada a Objetos Características
- Abstracción
- Encapsulación
- la Herencia
- Polimorfismo
- Clase Abstracta y Métodos
- Interfaces en Java
¿Qué es un Objeto
Objeto: es un paquete de datos y su comportamiento(a menudo conocidas como métodos).
Los objetos tienen dos características: tienen estados y comportamientos.,
ejemplos de estados y comportamientos
Ejemplo 1:
Object: House
State: Address, Color, Area
Behavior: Open door, close door
So if I had to write a class based on states and behaviours of House. Puedo hacerlo así: los Estados SE PUEDEN representar como variables de instancia y los comportamientos como métodos de la clase. Veremos cómo crear clases en la siguiente sección de esta guía.
class House { String address; String color; double are; void openDoor() { //Write code here } void closeDoor() { //Write code here } ... ...}
Nota: Como hemos visto anteriormente, los estados y comportamientos de un objeto, pueden ser representados por variables y métodos en la clase respectivamente.,
características de los objetos:
si le resulta difícil entender la abstracción y la encapsulación, no se preocupe, ya que he cubierto estos temas en detalle con ejemplos en la siguiente sección de esta guía.
- Abstracción
- encapsulación
- Paso de mensaje
abstracción: la abstracción es un proceso en el que se muestran solo datos «relevantes» y se «ocultan» detalles innecesarios de un objeto del usuario.
encapsulación: encapsulación simplemente significa unir el estado del objeto(campos) y el comportamiento(métodos). Si está creando clase, está haciendo encapsulación.,
pasar un mensaje
Un solo objeto por sí mismo puede no ser muy útil. Una aplicación contiene muchos objetos. Un objeto interactúa con otro objeto invocando métodos en ese objeto. También se conoce como Invocación de método. Vea el diagrama a continuación.
Qué es una clase en OOPs Concepts
Una clase puede considerarse como un blueprint con el que puede crear tantos objetos como desee. Por ejemplo, aquí tenemos una clase Website
que tiene dos miembros de datos (también conocidos como campos, variables de instancia y estados de objeto)., Esto es solo un plano, no representa ningún sitio web, sin embargo, utilizando esto podemos crear objetos de Sitio Web (o instancias) que representan los sitios web. Hemos creado dos objetos, mientras creamos objetos proporcionamos propiedades separadas a los objetos usando constructor.
Output:
beginnersbook 5google 18
What is a Constructor
Constructor se parece a un método, pero en realidad no es un método. Su nombre es el mismo que el nombre de la clase y no devuelve ningún valor., Debe haber visto esta instrucción en casi todos los programas que he compartido anteriormente:
MyClass obj = new MyClass();
si observa el lado derecho de esta instrucción, estamos llamando al constructor predeterminado de la clase myClass
para crear un nuevo objeto (o instancia).
también podemos tener parámetros en el constructor, tales constructores se conocen como constructores parametrizados.,
ejemplo de constructor
salida:
Chaitanya 30Steve 56
características de Programación Orientada a objetos
Estas cuatro características son los principales conceptos OOPs que debe aprender para comprender la Programación Orientada a objetos en Java
Abstracción
la abstracción es un proceso en el que se muestran solo datos «relevantes» y se «ocultan» detalles innecesarios de un objeto del usuario., Por ejemplo, cuando inicia sesión en su cuenta bancaria en línea, ingresa su user_id y contraseña y presiona login, lo que sucede cuando presiona login, cómo se envían los datos de entrada al servidor, cómo se verifican, todo se abstrae Del usted. Lea más sobre esto aquí: Abstracción en Java.
encapsulación
encapsulación simplemente significa unir el estado del objeto(campos) y el comportamiento(métodos). Si está creando clase, está haciendo encapsulación.,
Encapsulation example in Java
How to
1) Make the instance variables private so that they cannot be accessed directly from outside the class. Solo puede establecer y obtener valores de estas variables a través de los métodos de la clase.
2) tener los métodos getter y setter en la clase para establecer y obtener los valores de los campos.
Resultado:
No Of Employees: 5613
La clase EncapsulationExample
que está utilizando el Objeto de la clase EmployeeCount
no será capaz de obtener la NoOfEmployees directamente., Tiene que usar los métodos setter y getter de la misma clase para establecer y obtener el valor.
entonces, cuál es el beneficio de la encapsulación en la programación java
bueno, en algún momento, si desea cambiar los detalles de implementación de la clase EmployeeCount, puede hacerlo libremente sin afectar a las clases que lo están usando.
herencia
el proceso por el cual una clase adquiere las propiedades y funcionalidades de otra clase se llama herencia., La herencia proporciona la idea de reutilización del código y cada subclase define solo aquellas características que son únicas para ella, el resto de las características se pueden heredar de la clase padre.
- La Herencia es un proceso de definir una nueva clase basada en una clase existente extendiendo sus miembros y métodos de datos comunes.
- La herencia nos permite reutilizar el código, mejora la reutilización en su aplicación java.
- la clase padre se llama clase base o superclase. La clase hija que extiende la clase base se llama clase derivada o subclase o clase hija.,
Nota: La mayor ventaja de la herencia es que el código en la clase base no necesita ser reescrito en la clase hija.
las variables y métodos de la clase base también se pueden usar en la clase hija.
sintaxis: herencia en Java
para heredar una clase usamos la palabra clave extends. Aquí la clase A es la clase hijo y la Clase B es la clase padre.
class A extends B{}
la Herencia de Ejemplo
En este ejemplo, tenemos una clase padre Teacher
y un niño de la clase MathTeacher
., En la clase MathTeacher
no necesitamos escribir el mismo código que ya está presente en la clase actual. Aquí tenemos el nombre de la universidad, la designación y el método does () que es común para todos los profesores, por lo que la clase MathTeacher no necesita escribir este código, los miembros de datos comunes y los métodos pueden heredarse de la clase Teacher
.,
salida:
BeginnersbookTeacherMathsTeaching
Nota: La herencia multinivel está permitida en Java, pero no la herencia múltiple
tipos de herencia:
herencia única: se refiere a una relación de clase secundaria y principal donde una clase extiende la otra clase.
herencia multinivel: se refiere a una relación de clase hijo y padre donde una clase extiende la clase hijo. Por ejemplo, la clase a extiende la Clase B y la Clase B extiende la clase C.,
herencia jerárquica: se refiere a una relación de clase hijo y padre donde más de una clase extiende la misma clase. Por ejemplo, la Clase B extiende la clase A y la Clase C extiende la clase A.
herencia múltiple: se refiere al concepto de una clase que extiende más de una clase, lo que significa que una clase hija tiene dos clases principales. Java no admite herencia múltiple, lea más al respecto aquí.
La mayoría de los nuevos lenguajes OO como Small Talk, Java, C# no admiten herencia múltiple. La herencia múltiple se admite en C++.,
Polymorphism
Polymorphism es una característica de programación orientada a objetos que nos permite realizar una sola acción de diferentes maneras. Por ejemplo, digamos que tenemos una clase Animal
que tiene un método animalSound()
, aquí no podemos dar implementación a este método ya que no sabemos qué clase Animal extendería Animal
class., Así, podemos hacer que este método abstracto como este:
public abstract class Animal{ ... public abstract void animalSound();}
supongamos Ahora que tenemos dos clases de Animales Dog
y Lion
que se extiende Animal
clase. Podemos proporcionar el detalle de la implementación allí.
public class Lion extends Animal{... @Override public void animalSound(){ System.out.println("Roar"); }}
y
public class Dog extends Animal{... @Override public void animalSound(){ System.out.println("Woof"); }}
Como se puede ver que, aunque teníamos la acción común para todas las subclases animalSound()
pero hay diferentes maneras de hacer la misma acción., Este es un ejemplo perfecto de polimorfismo (característica que nos permite realizar una sola acción de diferentes maneras).
tipos de polimorfismo
1) polimorfismo estático
2) polimorfismo Dinámico
polimorfismo estático:
El polimorfismo que se resuelve durante el tiempo del compilador se conoce como polimorfismo estático. La sobrecarga del método se puede considerar como ejemplo de polimorfismo estático.
sobrecarga de métodos: esto nos permite tener más de un método con el mismo nombre en una clase que difiere en Firma.,
salida:
aa 10
Cuando digo firma de método No estoy hablando de tipo de retorno del método, por ejemplo, si dos métodos tienen el mismo nombre, los mismos parámetros y tienen diferente tipo de retorno, entonces este no es un método válido ejemplo de sobrecarga. Esto arrojará un error de compilación.
polimorfismo Dinámico
también se conoce como Envío de Método dinámico. El polimorfismo dinámico es un proceso en el que una llamada a un método anulado se resuelve en tiempo de ejecución, por eso se llama polimorfismo en tiempo de ejecución.,
ejemplo
salida:
Woof
ya que ambas clases, clase hija y clase padre tienen el mismo método animalSound
. JVM determina cuál de los métodos se llamará en tiempo de ejecución.
Unos más primordial ejemplos:
ES UN & TIENE-UNA de las Relaciones
Un Coche ES UN Vehículo y TIENE-UNA Licencia, a continuación, el código sería este:
public class Vehicle{ }public class Car extends Vehicle{ private License myCarLicense;}
Resumen de la Clase y los métodos de OOPs Conceptos
método Abstracto:
1) Un método que se declara, pero no se define. Solo firma del método sin cuerpo.,
2) declarado usando la palabra clave abstracta
3) Ejemplo:
abstract public void playInstrument();
5) utilizado para poner algún tipo de compulsión en la clase que hereda la clase tiene métodos abstractos. La clase que hereda debe proporcionar la implementación de todos los métodos abstractos de la clase padre else declarar la subclase como abstracta.
6) Estos no pueden ser abstractos
- Constructores
- métodos estáticos
- Métodos privados
- métodos que se declaran «finales»
clase abstracta
Una clase abstracta describe los métodos pero no necesariamente implementa todos los métodos.,
abstract class A{ abstract void myMethod(); void anotherMethod(){ //Does something }}
Nota 1: puede haber algunos escenarios donde es difícil implementar todos los métodos en la clase base. En tales escenarios se puede definir la clase base como una clase abstracta que significa que esta clase base es un tipo especial de clase que no está completa por sí sola.
una clase derivada de la clase base abstracta debe implementar aquellos métodos que no están implementados(significa que son abstractos) en la clase abstracta.
Nota 2: no se puede crear una instancia de clase abstracta, lo que significa que no se puede crear el objeto de clase abstracta., Para usar esta clase, debe crear otra clase que extienda esta clase abstracta que proporcione la implementación de métodos abstractos, luego puede usar el objeto de esa clase hija para llamar a métodos de clase padre no abstractos, así como a métodos implementados(aquellos que eran abstractos en la clase padre pero implementados en la clase hija).
Nota 3: si un hijo no implementa todos los métodos abstractos de la clase padre(la clase abstracta), entonces la clase hija debe ser declarada abstracta.,
ejemplo de clase y métodos abstractos
Aquí tenemos una clase abstracta Animal que tiene un método abstracto animalSound(), ya que el sonido animal difiere de un animal a otro, no tiene sentido dar la implementación a este método ya que cada clase hija debe anular este método para dar sus propios detalles de implementación. Por eso lo hicimos abstracto.
Ahora cada animal debe tener un sonido, al hacer este método abstracto hicimos obligatorio para la clase hijo dar detalles de implementación a este método. De esta manera nos aseguramos de que cada animal tenga un sonido.,
salida:
Woof
Interfaces en Java
una interfaz es un blueprint de una clase, que se puede declarar mediante la palabra clave de interfaz. Las Interfaces solo pueden contener constantes y métodos abstractos (métodos con solo firmas sin cuerpo).Al igual que las clases abstractas, las Interfaces no pueden ser instanciadas, solo pueden ser implementadas por clases o extendidas por otras interfaces. La interfaz es una forma común de lograr la abstracción completa en Java.,
Nota:
- Java no admite herencia múltiple, sin embargo, una clase puede implementar más de una interfaz
- La interfaz es similar a una clase abstracta, pero solo contiene métodos abstractos.,
- Las Interfaces se crean usando la palabra clave de interfaz en lugar de la clase de palabra clave
- usamos
implements
palabra clave mientras Implementamos una interfaz(similar a extender una clase con la palabra clave extiende)
interfaz: sintaxis
class ClassName extends Superclass implements Interface1, Interface2, ....
ejemplo de interfaz:
nota:
- todos los métodos en una interfaz son implícitamente públicos y abstractos. Usar la palabra clave
abstract
antes de cada método es opcional. - Una interfaz puede contener variables finales.,
- Una clase puede extender solo otra clase, pero puede implementar cualquier número de interfaces.
- Cuando una clase implementa una interfaz tiene que dar la definición de todos los métodos abstractos de interfaz, de lo contrario puede ser declarada como clase abstracta
- Una referencia de interfaz puede apuntar a objetos de sus clases implementadoras.
generalización y especialización:
para implementar el concepto de herencia en un OOPs, primero hay que identificar las similitudes entre las diferentes clases para llegar a la clase base.,
este proceso de identificar las similitudes entre diferentes clases se denomina generalización. La generalización es el proceso de extraer características compartidas de dos o más clases, y combinarlas en una superclase generalizada. Las características compartidas pueden ser atributos o métodos.
en contraste con la generalización, la especialización significa crear nuevas subclases a partir de una clase existente. Si resulta que ciertos atributos o métodos solo se aplican a algunos de los objetos de la clase, se puede crear una subclase.,
especificadores de acceso
bueno, debe haber visto la palabra clave pública, privada en los ejemplos que he compartido anteriormente. Se llaman especificadores de acceso, ya que deciden el alcance de un miembro de datos, método o clase.
Hay cuatro tipos de especificadores de acceso en java:
público: accesible a todos. Otros objetos también pueden acceder a esta variable o función miembro.privado: no accesible por otros objetos. Solo se puede acceder a los miembros privados mediante los métodos de la misma clase. Objeto accesible solo en la clase en la que se declaran.,
protected: el ámbito de una variable protegida está dentro de la clase que la declara y en la clase que hereda de la clase (el ámbito es clase y subclase).
predeterminado: el ámbito es el nivel del paquete. No necesitamos mencionar explícitamente el valor predeterminado, ya que cuando no mencionamos ningún especificador de acceso se considera predeterminado.,
lo que aprenderemos en los siguientes tutoriales sobre conceptos OOPs
aunque hemos cubierto casi todos los conceptos OOPs aquí, pero lo que hemos aprendido en esta guía es en breve, estos temas son amplios y hay mucho margen para aprender estos temas en detalle con la ayuda de ejemplos. Es por eso que he cubierto todos y cada uno de los temas en detalle junto con ejemplos y diagramas en los siguientes tutoriales.
¿Cómo puedes leer los siguientes tutoriales de manera secuencial? Hay un par de maneras de hacerlo – 1) enlaces Tutorial se proporcionan en la barra lateral izquierda, ir a través de ellos en la secuencia dada.,
2) Vaya a la página principal del tutorial de java que tiene todos los enlaces a los tutoriales de manera secuencial.
Si encuentra alguna dificultad para entender estos conceptos OOPs, deje un comentario a continuación y me pondré en contacto con usted tan pronto como sea posible.