Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Nuestro tutorial básico de programación Java está diseñado para estudiantes y profesionales en
activo. Java es un lenguaje de programación de computadoras de uso general, seguro, concurrente,
basado en clases y orientado a objetos . Es una tecnología robusta ampliamente utilizada.
Que es Java
Java es un lenguaje de programación y una plataforma . Java es un lenguaje de programación de
alto nivel, robusto, orientado a objetos y seguro.
Ejemplo de Java
Echemos un vistazo rápido al ejemplo de programación de Java. Una descripción detallada del ejemplo
de Hello Java está disponible en la página siguiente.
1. class Simple {
2. public static void main (String args []) {
3. System.out.println ( "Hola Java" );
4. }
5. }
Pruébelo ahora
Solicitud
Según Sun, 3 mil millones de dispositivos ejecutan Java. Hay muchos dispositivos en los que se utiliza
actualmente Java. Algunos de ellos son los siguientes:
4. Móvil
5. Sistema Integrado
6. Tarjeta electrónica
7. Robótica
8. Juegos, etc.
1) Aplicación independiente
2) Aplicación web
Una aplicación que se ejecuta en el lado del servidor y crea una página dinámica se llama aplicación
web. Actualmente, las tecnologías Servlet , JSP , Struts , Spring , Hibernate , JSF , etc. se utilizan para
crear aplicaciones web en Java.
3) Aplicación empresarial
Una aplicación que se distribuye por naturaleza, como aplicaciones bancarias, etc., se denomina
aplicación empresarial. Tiene las ventajas de la seguridad de alto nivel, el equilibrio de carga y la
agrupación en clústeres. En Java, EJB se utiliza para crear aplicaciones empresariales.
4) Aplicación móvil
Una aplicación creada para dispositivos móviles se denomina aplicación móvil. Actualmente, Android y
Java ME se utilizan para crear aplicaciones móviles.
Es una plataforma de programación Java. Incluye API de programación Java como java.lang, java.io,
java.net, java.util, java.sql, java.math, etc. Incluye temas centrales como OOP, String , Regex,
Exception, Inner classes, Multithreading, Flujo de E / S, Redes, AWT, Swing, Reflexión, Colección, etc.
Es una plataforma empresarial que se utiliza principalmente para desarrollar aplicaciones web y
empresariales. Está construido sobre la plataforma Java SE. Incluye temas como Servlet, JSP, Web
Services, EJB, JPA , etc.
4) JavaFX
Se utiliza para desarrollar aplicaciones de Internet enriquecidas. Utiliza una API de interfaz de usuario
liviana.
Requisito previo
Para aprender Java, debe tener los conocimientos básicos del lenguaje de programación C / C ++.
Audiencia
Nuestro tutorial de programación Java está diseñado para ayudar a principiantes y profesionales.
Problema
Te aseguramos que no encontrarás ningún problema en este tutorial de Java. Sin embargo, si hay algún
error, publique el problema en el formulario de contacto.
Historia de Java
1. Historia de Java
Los principios para crear programación Java fueron "Simple, Robusto, Portátil, Independiente de la
Plataforma, Seguro, Alto Rendimiento, Multiproceso, Arquitectura Neutral, Orientado a Objetos,
Interpretado y Dinámico". Java fue desarrollado por James Gosling, conocido como el padre de Java, en
1995. James Gosling y los miembros de su equipo comenzaron el proyecto a principios de los años 90.
Actualmente, Java se utiliza en programación de Internet, dispositivos móviles, juegos, soluciones de
comercio electrónico, etc. Se dan puntos importantes que describen la historia de Java.
6) En 1995, Oak pasó a llamarse "Java" porque ya era una marca comercial de Oak Technologies.
Según James Gosling, "Java fue una de las mejores opciones junto con Silk ". Dado que Java era tan
único, la mayoría de los miembros del equipo prefirieron Java que otros nombres.
8) Java es una isla de Indonesia donde se produjo el primer café (llamado café Java). Es una especie de
grano de café expreso. El nombre de Java fue elegido por James Gosling mientras tomaba un café cerca
de su oficina.
10) Desarrollado inicialmente por James Gosling en Sun Microsystems (que ahora es una subsidiaria de
Oracle Corporation) y lanzado en 1995.
11) En 1995, la revista Time calificó a Java como uno de los diez mejores productos de 1995 .
12) JDK 1.0 lanzado en (23 de enero de 1996). Después del primer lanzamiento de Java, se agregaron
muchas características adicionales al lenguaje. Ahora Java se está utilizando en aplicaciones de Windows,
aplicaciones web, aplicaciones empresariales, aplicaciones móviles, tarjetas, etc. Cada nueva versión
agrega las nuevas características de Java.
Historia de Java
1. Historia de Java
Los principios para crear programación Java fueron "Simple, Robusto, Portátil, Independiente de la
Plataforma, Seguro, Alto Rendimiento, Multiproceso, Arquitectura Neutral, Orientado a Objetos,
Interpretado y Dinámico". Java fue desarrollado por James Gosling, conocido como el padre de Java, en
1995. James Gosling y los miembros de su equipo comenzaron el proyecto a principios de los años 90.
6) En 1995, Oak pasó a llamarse "Java" porque ya era una marca comercial de Oak Technologies.
Según James Gosling, "Java fue una de las mejores opciones junto con Silk ". Dado que Java era tan
único, la mayoría de los miembros del equipo prefirieron Java que otros nombres.
8) Java es una isla de Indonesia donde se produjo el primer café (llamado café Java). Es una especie de
grano de café expreso. El nombre de Java fue elegido por James Gosling mientras tomaba un café cerca
de su oficina.
10) Desarrollado inicialmente por James Gosling en Sun Microsystems (que ahora es una subsidiaria de
Oracle Corporation) y lanzado en 1995.
11) En 1995, la revista Time calificó a Java como uno de los diez mejores productos de 1995 .
12) JDK 1.0 lanzado en (23 de enero de 1996). Después del primer lanzamiento de Java, se agregaron
muchas características adicionales al lenguaje. Ahora Java se está utilizando en aplicaciones de Windows,
aplicaciones web, aplicaciones empresariales, aplicaciones móviles, tarjetas, etc. Cada nueva versión
agrega las nuevas características de Java.
C ++ frente a Java
Existen muchas diferencias y similitudes entre el lenguaje de programación C ++ y Java . A continuación
se proporciona una lista de las principales diferencias entre C ++ y Java:
Índice de C ++ Java
comparación
Palabra clave C ++ admite palabras clave virtuales Java no tiene una palabra clave virtu
virtual para que podamos decidir si anular o anular todos los métodos no estático
no una función. predeterminada. En otras palabras,
estáticos son virtuales por defecto.
Árbol de herencia C ++ siempre crea un nuevo árbol de Java usa un solo árbol de herencia s
herencia. todas las clases son hijo de la clase
java. La clase de objeto es la raíz de
de herencia en java.
Hardware C ++ está más cerca del hardware. Java no es tan interactivo con el har
Nota
o Java no admite argumentos predeterminados como C ++.
o Java no admite archivos de encabezado como C ++. Java usa la palabra clave import para incluir
diferentes clases y métodos.
Ejemplo de C ++
Archivo: main.cpp
1. #include <iostream>
2. usando el espacio de nombres std;
3. int main () {
4. cout << "Hola Programación C ++" ;
5. return 0;
6. }
Ejemplo de Java
Archivo: Simple.java
1. class Simple {
2. public static void main (String args []) {
3. System.out.println ( "Hola Java" );
4. }
5. }
Para crear un programa java simple, necesita crear una clase que contenga el método principal. Primero
entendamos el requisito.
1. class Simple {
2. public static void main (String args []) {
3. System.out.println ( "Hola Java" );
4. }
5. }
Pruébelo ahora
Flujo de compilación:
Cuando compilamos un programa Java usando la herramienta javac, el compilador java convierte el
código fuente en código de bytes.
o System.out.println () se usa para imprimir declaraciones. Aquí, System es una clase, out es el
objeto de la clase PrintStream, println () es el método de la clase PrintStream. Aprenderemos
sobre el funcionamiento interno de la declaración System.out.println más adelante.
Para escribir el programa simple, debe abrir el bloc de notas en el menú de inicio -> Todos los
programas -> Accesorios -> Bloc de notas y escribir un programa simple como se muestra a
continuación:
Como se muestra en el diagrama anterior, escriba el programa simple de Java en el bloc de notas y guárd
Simple.java. Para compilar y ejecutar este programa, debe abrir el símbolo del sistema en el menú de in
los programas -> Accesorios -> símbolo del sistema .
Para compilar y ejecutar el programa anterior, vaya primero a su directorio actual; mi directorio actual es
aqui:
2) La notación de subíndice en la matriz de Java se puede usar después del tipo, antes de la
variable o después de la variable.
Veamos los diferentes códigos para escribir el método principal.
Veamos el código simple de usar var-args en el método principal. Aprenderemos sobre var-args más
adelante en el capítulo Nuevas características de Java.
1. clase A {
2. static public void main (String ... args) {
3. System.out.println ( "hola java4" );
4. }
5. };
En la página anterior, hemos aprendido sobre el primer programa, cómo compilar y ejecutar el primer
programa java. Aquí, vamos a aprender qué sucede al compilar y ejecutar el programa java. Además,
veremos alguna pregunta basada en el primer programa.
Verificador de Bytecode: comprueba los fragmentos de código en busca de código ilegal que pueda viol
acceso a los objetos.
Es necesario establecer la ruta para usar herramientas como javac, java, etc.
Si está guardando el archivo fuente de Java dentro del directorio JDK / bin, no es necesario establecer la
ruta porque todas las herramientas estarán disponibles en el directorio actual.
Sin embargo, si tiene su archivo Java fuera de la carpeta JDK / bin, es necesario establecer la ruta de
JDK.
1. Temporal
2. Permanente
Por ejemplo:
establecer ruta = C: \ Archivos de programa \ Java \ jdk1.6.0_23 \ bin
o Vaya a las propiedades de MyComputer -> pestaña avanzada -> variables de entorno -> nueva
pestaña de la variable de usuario -> escriba la ruta en el nombre de la variable -> escriba la ruta
de la carpeta bin en el valor de la variable -> ok -> ok -> ok
Por ejemplo:
1) Vaya a las propiedades de MyComputer
2) Haga clic en la pestaña avanzada
3) Haga clic en las variables de entorno
4) Haga clic en la nueva pestaña de variables de usuario
5) Escriba la ruta en el nombre de la variable
6) Copie la ruta de la carpeta bin
7) Pegar la ruta de la carpeta bin en el valor de la variable
8) Haga clic en el botón Aceptar
9) Haga clic en el botón Aceptar
Ahora tu camino permanente está establecido. Ahora puede ejecutar cualquier programa de Java desde
cualquier unidad.
Debemos comprender las diferencias entre JDK, JRE y JVM antes de continuar con Java . Vea la breve
descripción general de JVM aquí.
Si desea obtener un conocimiento detallado de Java Virtual Machine, pase a la página siguiente. En
primer lugar, veamos las diferencias entre JDK, JRE y JVM.
JVM
JVM (Java Virtual Machine) es una máquina abstracta. Se llama máquina virtual porque no existe
físicamente. Es una especificación que proporciona un entorno de ejecución en el que se puede ejecutar
el código de bytes de Java. También puede ejecutar aquellos programas que están escritos en otros
lenguajes y compilados en código de bytes de Java.
Las JVM están disponibles para muchas plataformas de hardware y software. JVM, JRE y JDK dependen
de la plataforma porque la configuración de cada sistema operativo es diferente entre sí. Sin embargo,
Java es independiente de la plataforma. Hay tres nociones de
JVM: especificación , implementación e instancia .
o Código de cargas
o Verifica el código
o Ejecuta código
Más detalles.
JRE
JRE es un acrónimo de Java Runtime Environment. También está escrito como Java RTE. Java Runtime
Environment es un conjunto de herramientas de software que se utilizan para desarrollar aplicaciones
Java. Se utiliza para proporcionar el entorno de ejecución. Es la implementación de JVM. Existe
físicamente. Contiene un conjunto de bibliotecas + otros archivos que JVM usa en tiempo de ejecución.
La implementación de JVM también es lanzada activamente por otras compañías además de Sun Micro
Systems.
JDK
JDK es un acrónimo de Java Development Kit. El Java Development Kit (JDK) es un entorno de desarrollo
de software que se utiliza para desarrollar aplicaciones y subprogramas Java . Existe
físicamente. Contiene herramientas de desarrollo JRE +.
JDK es una implementación de cualquiera de las siguientes Plataformas Java lanzadas por Oracle
Corporation:
El JDK contiene una máquina virtual Java privada (JVM) y algunos otros recursos como un intérprete /
cargador (java), un compilador (javac), un archivador (jar), un generador de documentación (Javadoc),
etc. para completar el desarrollo de una aplicación Java.
Arquitectur
a JVM (máquina virtual Java)
1. máquina virtual de Java
JVM (Java Virtual Machine) es una máquina abstracta. Es una especificación que proporciona un entorno
de ejecución en el que se puede ejecutar el código de bytes de Java.
Las JVM están disponibles para muchas plataformas de hardware y software (es decir, la JVM depende de
la plataforma).
Que es JVM
Es:
Que hace
La JVM realiza la siguiente operación:
o Código de cargas
o Verifica el código
o Ejecuta código
o Proporciona un entorno de ejecución
o Área de memoria
o Registro establecido
Arquitectura JVM
Entendamos la arquitectura interna de JVM. Contiene cargador de clases, área de memoria, motor de
ejecución, etc.
1) cargador de clases
Classloader es un subsistema de JVM que se utiliza para cargar archivos de clases. Siempre que
ejecutamos el programa java, el cargador de clases lo carga primero. Hay tres cargadores de clases
integrados en Java.
1. Bootstrap ClassLoader : este es el primer cargador de clases que es la superclase del cargador
de clases de extensión. Carga el archivo rt.jar que contiene todos los archivos de clase de Java
Standard Edition como clases de paquetes java.lang, clases de paquetes java.net, clases de
paquetes java.util, clases de paquetes java.io, clases de paquetes java.sql, etc.
3. Cargador de clases de sistema / aplicación : este es el cargador de clases hijo del cargador de
clases de extensión. Carga los archivos de clase desde classpath. De forma predeterminada,
classpath se establece en el directorio actual. Puede cambiar la ruta de clases utilizando el
modificador "-cp" o "-classpath". También se conoce como cargador de clases de aplicaciones.
Producción:
sun.misc.Launcher$AppClassLoader@4e0e2f2a
nulo
Estos son los cargadores de clases internos proporcionados por Java. Si desea crear su propio cargador
de clases, debe ampliar la clase ClassLoader.
4) Apilar
Java Stack almacena marcos. Contiene variables locales y resultados parciales, y juega un papel en la
invocación y devolución de métodos.
Cada hilo tiene una pila JVM privada, creada al mismo tiempo que el hilo.
Se crea un nuevo marco cada vez que se invoca un método. Una trama se destruye cuando se completa
la invocación de su método.
7) Motor de ejecución
Contiene:
1. Un procesador virtual
3. Compilador Just-In-Time (JIT): se utiliza para mejorar el rendimiento. JIT compila partes del
código de bytes que tienen una funcionalidad similar al mismo tiempo y, por lo tanto, reduce la
cantidad de tiempo necesario para la compilación. Aquí, el término "compilador" se refiere a un
traductor del conjunto de instrucciones de una máquina virtual Java (JVM) al conjunto de
instrucciones de una CPU específica.
Variables de Java
Una variable es un contenedor que contiene el valor mientras se ejecuta el programa Java . A una
variable se le asigna un tipo de datos.
Variable es el nombre de la ubicación de la memoria. Hay tres tipos de variables en Java: local, instancia
y estática.
o variable local
o Instancia variable
o variable estática
1) Variable local
Una variable declarada dentro del cuerpo del método se llama variable local. Puede usar esta variable
solo dentro de ese método y los otros métodos de la clase ni siquiera son conscientes de que la variable
existe.
2) Variable de instancia
Una variable declarada dentro de la clase pero fuera del cuerpo del método, se llama variable de
instancia. No se declara estático .
Se llama variable de instancia porque su valor es específico de la instancia y no se comparte entre las
instancias.
3) Variable estática
Una variable que se declara como estática se llama variable estática. No puede ser local. Puede crear
una única copia de la variable estática y compartirla entre todas las instancias de la clase. La asignación
de memoria para la variable estática ocurre solo una vez cuando la clase se carga en la memoria.
Producción:
20
Producción:
10
10.0
Producción:
10,5
10
Producción:
130
-126
Producción:
20
1. Tipos de datos primitivos: los tipos de datos primitivos incluyen boolean, char, byte, short, int,
long, float y double.
Java es un lenguaje de programación de tipo estático. Es decir, todas las variables deben declararse antes
de su uso. Es por eso que necesitamos declarar el tipo y el nombre de la variable.
Hay 8 tipos de tipos de datos primitivos:
byte 0 1 byte
corto 0 2 bytes
En t 0 4 bytes
largo 0L 8 bytes
flotador 0.0f 4 bytes
El tipo de datos booleano especifica un bit de información, pero su "tamaño" no se puede definir con
precisión.
El tipo de datos de bytes se utiliza para ahorrar memoria en matrices grandes donde el ahorro de
memoria es más necesario. Ahorra espacio porque un byte es 4 veces más pequeño que un número
entero. También se puede utilizar en lugar del tipo de datos "int".
El tipo de datos corto también se puede utilizar para ahorrar memoria al igual que el tipo de datos de
bytes. Un tipo de datos corto es 2 veces más pequeño que un número entero.
El tipo de datos int generalmente se usa como un tipo de datos predeterminado para valores integrales a
menos que no haya ningún problema con la memoria.
Ejemplo: float f1 = 234.5f
Ejemplo: doble d1 = 12,3
Sistema Unicode
Unicode es una codificación de caracteres estándar internacional universal que es capaz de representar la
lenguajes escritos del mundo.
o ASCII (Código estándar americano para el intercambio de información) para los Estados Unidos.
o KOI-8 para ruso.
o GB18030 y BIG-5 para chino, etc.
Problema
Esto provocó dos problemas:
1. Un valor de código particular corresponde a letras diferentes en los distintos estándares de idiomas
2. Las codificaciones para idiomas con juegos de caracteres grandes tienen longitud variable. Algunos
comunes se codifican como bytes individuales, otros requieren dos o más bytes.
Solución
Para resolver estos problemas, se desarrolló un nuevo estándar de lenguaje, es decir, el sistema Unicode.
En unicode, el carácter tiene 2 bytes, por lo que Java también usa 2 bytes para los caracteres.
Operadores en Java
Operador en Java es un símbolo que se utiliza para realizar operaciones. Por ejemplo: +, -, *, / etc.
o Operador Unario,
o Operador aritmético,
o Operador de turno,
o Operador relacional,
o Operador lógico,
o Operador ternario y
o Operador de asignación.
Aritmética multiplicativo * / %
aditivo + -
igualdad == !=
OR lógico ||
Ternario ternario ? :
Producción:
10
12
12
10
Producción:
22
21
Producción:
-11
9
falso
cierto
Producción:
15
5
50
2
0
Producción:
21
Producción:
40
80
80
240
Operador de desplazamiento a la derecha de Java
El operador de desplazamiento a la derecha de Java >> se utiliza para mover el valor de los operandos
de la izquierda a la derecha el número de bits especificado por el operando de la derecha.
Producción:
2
5
2
Output:
5
5
-5
1073741819
The bitwise & operator always checks both conditions whether first condition is true or false.
1. class OperatorExample{
2. public static void main(String args[]){
3. int a=10;
4. int b=5;
5. int c=20;
6. System.out.println(a<b&&a<c);//false && true = false
7. System.out.println(a<b&a<c);//false & true = false
8. }}
Output:
false
false
Output:
false
10
false
11
The bitwise | operator always checks both conditions whether first condition is true or false.
1. class OperatorExample{
2. public static void main(String args[]){
3. int a=10;
4. int b=5;
5. int c=20;
6. System.out.println(a>b||a<c);//true || true = true
7. System.out.println(a>b|a<c);//true | true = true
8. //|| vs |
9. System.out.println(a>b||a++<c);//true || true = true
10.System.out.println(a);//10 because second condition is not checked
11.System.out.println(a>b|a++<c);//true | true = true
12.System.out.println(a);//11 because second condition is checked
13.}}
Output:
true
true
true
10
true
11
Producción:
Otro ejemplo:
1. class OperatorExample {
2. public static void main (String args []) {
3. int a = 10 ;
4. int b = 5 ;
5. int min = (a <b)? a: b;
6. System.out.println (min);
7. }}
Producción:
Producción:
14
dieciséis
Producción:
13
9
18
9
Producción:
1. class OperatorExample {
2. public static void main (String args []) {
3. corto a = 10 ;
4. corto b = 10 ;
5. a = ( corto ) (a + b); // 20 que es int ahora convertido a corto
6. System.out.println (a);
7. }}
Producción:
20
1. resumen : la palabra clave abstracta de Java se utiliza para declarar la clase abstracta. La clase
abstracta puede proporcionar la implementación de la interfaz. Puede tener métodos abstractos y
no abstractos.
2. booleano: la palabra clave booleana de Java se utiliza para declarar una variable como un tipo
booleano. Solo puede contener valores verdaderos y falsos.
3. break : la palabra clave break de Java se utiliza para romper el bucle o cambiar la
declaración. Rompe el flujo actual del programa en una condición especificada.
4. byte : la palabra clave de byte de Java se utiliza para declarar una variable que puede contener
valores de datos de 8 bits.
5. case : la palabra clave case de Java se utiliza con las sentencias switch para marcar bloques de
texto.
6. catch : La palabra clave catch de Java se utiliza para detectar las excepciones generadas por las
declaraciones try. Debe usarse solo después del bloque try.
7. char : la palabra clave char de Java se utiliza para declarar una variable que puede contener
caracteres Unicode de 16 bits sin firmar
8. clase : la palabra clave de clase de Java se utiliza para declarar una clase.
9. continue : la palabra clave continue de Java se utiliza para continuar el ciclo. Continúa el flujo
actual del programa y omite el código restante en la condición especificada.
12.double : la palabra clave double de Java se utiliza para declarar una variable que puede contener
números de coma flotante de 64 bits.
13.else : La palabra clave else de Java se utiliza para indicar las ramas alternativas en una
declaración if.
14.enum : la palabra clave enum de Java se utiliza para definir un conjunto fijo de constantes. Los
constructores de enumeración son siempre privados o predeterminados.
15.extiende : la palabra clave de extensión de Java se utiliza para indicar que una clase se deriva de
otra clase o interfaz.
16.final : la palabra clave final de Java se utiliza para indicar que una variable tiene un valor
constante. Se aplica con una variable. Se utiliza para restringir al usuario.
17.finalmente : La palabra clave finalmente de Java indica un bloque de código en una estructura
try-catch. Este bloque siempre se ejecuta tanto si se gestiona la excepción como si no.
18.float : la palabra clave float de Java se utiliza para declarar una variable que puede contener un
número de coma flotante de 32 bits.
19.for : La palabra clave for de Java se utiliza para iniciar un bucle for. Se utiliza para ejecutar un
conjunto de instrucciones / funciones repetidamente cuando algunas condiciones se cumplen. Si el
número de iteraciones es fijo, se recomienda utilizar for loop.
21.implements : la palabra clave Java implements se utiliza para implementar una interfaz.
22.importar : la palabra clave de importación de Java hace que las clases y las interfaces estén
disponibles y accesibles para el código fuente actual.
23.instanceof : la palabra clave instanceof de Java se utiliza para probar si el objeto es una
instancia de la clase especificada o si implementa una interfaz.
24.int : La palabra clave int de Java se utiliza para declarar una variable que puede contener un
entero de 32 bits con signo.
25.interfaz : la palabra clave de interfaz de Java se utiliza para declarar una interfaz. Solo puede
tener métodos abstractos.
26.long : la palabra clave long de Java se utiliza para declarar una variable que puede contener un
entero de 64 bits.
27.nativo: la palabra clave nativa de Java se usa para especificar que un método se implementa en
código nativo usando JNI (Interfaz nativa de Java).
28.nuevo : la palabra clave nueva de Java se utiliza para crear nuevos objetos.
29.nulo : la palabra clave nula de Java se utiliza para indicar que una referencia no se refiere a
nada. Elimina el valor basura.
30.paquete : la palabra clave de paquete de Java se utiliza para declarar un paquete de Java que
incluye las clases.
31.privado : la palabra clave privada de Java es un modificador de acceso. Se utiliza para indicar
que se puede acceder a un método o variable solo en la clase en la que está declarado.
34.return : la palabra clave return de Java se usa para regresar de un método cuando se completa
su ejecución.
35.short : la palabra clave short de Java se utiliza para declarar una variable que puede contener un
entero de 16 bits.
36.static : la palabra clave estática de Java se utiliza para indicar que una variable o método es un
método de clase. La palabra clave estática en Java se utiliza principalmente para la gestión de
memoria.
37.Strictfp : Se utiliza Java Strictfp para restringir los cálculos de punto flotante para garantizar la
portabilidad.
38.super : la palabra clave super de Java es una variable de referencia que se utiliza para hacer
referencia al objeto de la clase principal. Se puede utilizar para invocar el método de clase padre
inmediato.
39.switch : la palabra clave switch de Java contiene una declaración switch que ejecuta código en
función del valor de prueba. La declaración de cambio prueba la igualdad de una variable con
varios valores.
40.sincronizado : la palabra clave sincronizada de Java se utiliza para especificar las secciones o
métodos críticos en código multiproceso.
41.esto : Java esta palabra clave se puede utilizar para hacer referencia al objeto actual en un
método o constructor.
42.throw : la palabra clave throw de Java se utiliza para lanzar explícitamente una excepción. La
palabra clave throw se usa principalmente para lanzar excepciones personalizadas. Le sigue una
instancia.
43.throws : la palabra clave throws de Java se utiliza para declarar una excepción. La excepción
marcada se puede propagar con lanzamientos.
45.try : La palabra clave try de Java se utiliza para iniciar un bloque de código que se probará en
busca de excepciones. El bloque try debe ir seguido de catch o finalmente bloquear.
46.void: la palabra clave void de Java se utiliza para especificar que un método no tiene un valor de
retorno.
47.volatile : la palabra clave volátil de Java se utiliza para indicar que una variable puede cambiar
de forma asincrónica.
48.while : La palabra clave while de Java se utiliza para iniciar un ciclo while. Este ciclo itera una
parte del programa varias veces. Si el número de iteraciones no es fijo, se recomienda utilizar
while loop.
Declaración If-else de Java
La sentencia if de Java se utiliza para probar la condición. Comprueba
la condición booleana : verdadero o falso . Hay varios tipos de instrucciones if en Java.
o si declaración
o declaración if-else
o escalera if-else-if
o declaración if anidada
Declaración if de Java
La sentencia if de Java prueba la condición. Ejecuta el bloque if si la condición es verdadera.
Sintaxis:
1. if (condición) {
2. // código a ejecutar
3. }
Ejemplo:
1. // Programa Java para demostrar el uso de la instrucción if.
2. public class IfExample {
3. public static void main (String [] args) {
4. // definir una variable de 'edad'
5. int edad = 20 ;
6. // comprobando la edad
7. if (edad> 18 ) {
8. System.out.print ( "La edad es mayor de 18" );
9. }
10.}
11.}
Pruébelo ahora
Producción:
La edad es mayor de 18
Sintaxis:
1. if (condición) {
2. // codifica si la condición es verdadera
3. } más {
4. // codifica si la condición es falsa
5. }
Ejemplo:
Producción:
número impar
1. public class LeapYearExample {
2. public static void main (String [] args) {
3. int año = 2020 ;
4. if (((año% 4 == 0 ) && (año% 100 ! = 0 )) || (año% 400 == 0 )) {
5. System.out.println ( "AÑO bisiesto" );
6. }
7. else {
8. System.out.println ( "AÑO COMÚN" );
9. }
10.}
11.}
Producción:
AÑO BISIESTO
Ejemplo:
1. public class IfElseTernaryExample {
2. public static void main (String [] args) {
3. int número = 13 ;
4. // Usando un operador ternario
5. Salida de cadena = (número% 2 == 0 )? "número par" : "número impar" ;
6. System.out.println (salida);
7. }
8. }
Producción:
número impar
Sintaxis:
1. if (condition1) {
2. // código a ejecutar si condition1 es verdadera
3. } más si (condición2) {
4. // código a ejecutar si condition2 es verdadera
5. }
6. else if (condition3) {
7. // código que se ejecutará si condition3 es verdadera
8. }
9. ...
10.else {
11.// código a ejecutar si todas las condiciones son falsas
12.}
Ejemplo:
Producción:
Grado C
1. public class PositiveNegativeExample {
2. public static void main (String [] args) {
3. int número = - 13 ;
4. si (número> 0 ) {
5. System.out.println ( "POSITIVO" );
6. } más si (número < 0 ) {
7. System.out.println ( "NEGATIVO" );
8. } más {
9. System.out.println ( "CERO" );
10. }
11.}
12.}
Producción:
NEGATIVO
Declaración if anidada de Java
La instrucción if anidada representa el bloque if dentro de otro bloque if . Aquí, la condición del bloque if
interno se ejecuta solo cuando la condición del bloque if externo es verdadera.
Sintaxis:
1. if (condición) {
2. // código a ejecutar
3. if (condición) {
4. // código a ejecutar
5. }
6. }
Ejemplo:
1. // Programa Java para demostrar el uso de la instrucción If anidada.
2. public class JavaNestedIfExample {
3. public static void main (String [] args) {
4. // Creando dos variables para edad y peso
5. int edad = 20 ;
6. int peso = 80 ;
7. // aplicando condición sobre la edad y el peso
8. if (edad> = 18 ) {
9. if (peso> 50 ) {
10. System.out.println ( "Eres elegible para donar sangre" );
11. }
12. }
13.}}
Pruébelo ahora
Producción:
Ejemplo 2:
Producción:
En otras palabras, la instrucción switch prueba la igualdad de una variable con varios valores.
o El valor de caso debe ser solo del tipo de expresión de cambio. El valor del caso debe ser literal o
constante . No permite variables .
o Los valores de caso deben ser únicos . En caso de un valor duplicado, genera un error en tiempo
de compilación.
o La expresión de cambio de Java debe ser byte, short, int, long (con su tipo Wrapper), enums y
string .
Sintaxis:
1. cambiar (expresión) {
2. valor de caso1:
3. // código a ejecutar;
4. romper ; //Opcional
5. valor de caso 2 :
6. // código a ejecutar;
7. romper ; //Opcional
8. ......
9.
10.por defecto :
11. código que se ejecutará si no coinciden todos los casos;
12.}
Ejemplo:
Producción:
20
Producción:
7 - julio
1. clase pública SwitchVowelExample {
2. public static void main (String [] args) {
3. char ch = 'O' ;
4. interruptor (ch)
5. {
6. caso 'a' :
7. System.out.println ( "Vocal" );
8. romper ;
9. caso 'e' :
10. System.out.println ( "Vocal" );
11. romper ;
12. caso 'i' :
13. System.out.println ( "Vocal" );
14. romper ;
15. caso 'o' :
16. System.out.println ( "Vocal" );
17. romper ;
18. caso 'u' :
19. System.out.println ( "Vocal" );
20. romper ;
21. caso 'A' :
22. System.out.println ( "Vocal" );
23. romper ;
24. caso 'E' :
25. System.out.println ( "Vocal" );
26. romper ;
27. caso 'I' :
28. System.out.println ( "Vocal" );
29. romper ;
30. caso 'O' :
31. System.out.println ( "Vocal" );
32. romper ;
33. caso 'U' :
34. System.out.println ( "Vocal" );
35. romper ;
36. por defecto :
37. System.out.println ( "Consonante" );
38. }
39.}
40.}
Producción:
Vocal
Ejemplo:
Producción:
20
30
Ni en 10, 20 o 30
Ejemplo:
Producción:
Tu nivel es: 3
Producción:
Ejemplo:
Producción:
domingo
lunes
Twesday
miércoles
jueves
viernes
sábado
Ejemplo:
Producción:
Bucles en Java
En los lenguajes de programación, los bucles se utilizan para ejecutar un conjunto de instrucciones /
funciones repetidamente cuando algunas condiciones se vuelven verdaderas. Hay tres tipos de bucles en
Java.
o en bucle
Introducción El bucle for de Java es una El bucle while de Java es una El bucle do while
declaración de flujo de declaración de flujo de control declaración de fl
control que itera una parte que ejecuta una parte de los que ejecuta una
de los programas varias programas repetidamente programas al me
veces. sobre la base de una condición ejecución poster
booleana dada. la condición boo
1. Inicialización : Es la condición inicial que se ejecuta una vez cuando se inicia el ciclo. Aquí,
podemos inicializar la variable, o podemos usar una variable ya inicializada. Es una condición
opcional.
2. Condición : es la segunda condición que se ejecuta cada vez para probar la condición del
bucle. Continúa la ejecución hasta que la condición es falsa. Debe devolver un valor booleano
verdadero o falso. Es una condición opcional.
3. Declaración : La declaración del bucle se ejecuta cada vez hasta que la segunda condición sea
falsa.
Sintaxis:
Diagrama de flujo:
Ejemplo:
Producción:
1
2
3
4
5
6
7
8
9
10
Ejemplo:
1. public class NestedForExample {
2. public static void main (String [] args) {
3. // bucle de i
4. para ( int i = 1 ; i <= 3 ; i ++) {
5. // bucle de j
6. para ( int j = 1 ; j <= 3 ; j ++) {
7. System.out.println (i + "" + j);
8. } // final de i
9. } // final de j
10.}
11.}
Producción:
1 1
1 2
1 3
2 1
2 2
2 3
3 1
3 2
3 3
Ejemplo de pirámide 1:
Producción:
*
* *
* * *
* * * *
* * * * *
Ejemplo de pirámide 2:
1. public class PyramidExample2 {
2. public static void main (String [] args) {
3. int term = 6 ;
4. para ( int i = 1 ; i <= término; i ++) {
5. para ( int j = término; j> = i; j -) {
6. System.out.print ( "*" );
7. }
8. System.out.println (); //nueva línea
9. }
10.}
11.}
Producción:
* * * * * *
* * * * *
* * * *
* * *
* *
*
Funciona en base a elementos, no a índices. Devuelve los elementos uno por uno en la variable definida.
Sintaxis:
Ejemplo:
Producción:
12
23
44
56
78
Por lo general, las palabras clave de ruptura y continuación interrumpen / continúan solo el bucle for
más interno.
Sintaxis:
1. Nombre de etiqueta:
2. para (inicialización; condición; incr / decr) {
3. // código a ejecutar
4. }
Ejemplo:
Producción:
1 1
1 2
1 3
2 1
Si usa break bb; , solo romperá el bucle interno, que es el comportamiento predeterminado de cualquier
bucle.
1. public class LaadedForExample2 {
2. public static void main (String [] args) {
3. Automóvil club británico:
4. para ( int i = 1 ; i <= 3 ; i ++) {
5. cama y desayuno:
6. para ( int j = 1 ; j <= 3 ; j ++) {
7. si (i == 2 && j == 2 ) {
8. romper bb;
9. }
10. System.out.println (i + "" + j);
11. }
12. }
13.}
14.}
Producción:
1 1
1 2
1 3
2 1
3 1
3 2
3 3
Sintaxis:
1. para (;;) {
2. // código a ejecutar
3. }
Ejemplo:
Producción:
bucle infinitivo
bucle infinitivo
bucle infinitivo
bucle infinitivo
bucle infinitivo
Ctrl + C
Sintaxis:
1. while (condición) {
2. // código a ejecutar
3. }
Ejemplo:
1. clase pública WhileExample {
2. public static void main (String [] args) {
3. int i = 1 ;
4. mientras que (i <= 10 ) {
5. System.out.println (i);
6. i ++;
7. }
8. }
9. }
Pruébelo ahora
Producción:
1
2
3
4
5
6
7
8
9
10
Sintaxis:
1. while ( verdadero ) {
2. // código a ejecutar
3. }
Ejemplo:
1. clase pública WhileExample2 {
2. public static void main (String [] args) {
3. while ( verdadero ) {
4. System.out.println ( "bucle infinitivo while" );
5. }
6. }
7. }
Producción:
El bucle do-while de Java se ejecuta al menos una vez porque la condición se comprueba después del
cuerpo del bucle.
Sintaxis:
1. hacer {
2. // código a ejecutar
3. } while (condición);
Ejemplo:
1. public class DoWhileExample {
2. public static void main (String [] args) {
3. int i = 1 ;
4. hacer {
5. System.out.println (i);
6. i ++;
7. } mientras (i <= 10 );
8. }
9. }
Pruébelo ahora
Producción:
1
2
3
4
5
6
7
8
9
10
Sintaxis:
1. hacer {
2. // código a ejecutar
3. } while ( verdadero );
Ejemplo:
1. public class DoWhileExample2 {
2. public static void main (String [] args) {
3. hacer {
4. System.out.println ( "infinitivo do while loop" );
5. } while ( verdadero );
6. }
7. }
Producción:
Podemos usar la declaración de interrupción de Java en todo tipo de bucles, como el bucle for , el bucle
while y el bucle do-while .
Sintaxis:
1. declaración de salto;
2. romper ;
Declaración de ruptura de Java con bucle
Ejemplo:
Producción:
1
2
3
4
Ejemplo:
1. // Programa Java para ilustrar el uso de la sentencia break
2. // dentro de un bucle interno
3. public class BreakExample2 {
4. public static void main (String [] args) {
5. // bucle exterior
6. para ( int i = 1 ; i <= 3 ; i ++) {
7. // bucle interior
8. para ( int j = 1 ; j <= 3 ; j ++) {
9. si (i == 2 && j == 2 ) {
10. // usando la sentencia break dentro del bucle interno
11. romper ;
12. }
13. System.out.println (i + "" + j);
14. }
15. }
16.}
17.}
Producción:
1 1
1 2
1 3
2 1
3 1
3 2
3 3
Ejemplo:
Output:
1 1
1 2
1 3
2 1
1. //Java Program to demonstrate the use of break statement
2. //inside the while loop.
3. public class BreakWhileExample {
4. public static void main(String[] args) {
5. //while loop
6. int i = 1 ;
7. mientras que (i <= 10 ) {
8. si (i == 5 ) {
9. // usando una declaración de ruptura
10. i ++;
11. romper ; // romperá el bucle
12. }
13. System.out.println (i);
14. i ++;
15. }
16.}
17.}
Producción:
1
2
3
4
Producción:
1
2
3
4
La instrucción continue de Java se utiliza para continuar el ciclo. Continúa el flujo actual del programa y
omite el código restante en la condición especificada. En el caso de un bucle interno, continúa el bucle
interno únicamente.
Podemos usar la instrucción continue de Java en todos los tipos de bucles, como el bucle for, el bucle
while y el bucle do-while.
Sintaxis:
1. declaración de salto;
2. continuar ;
Producción:
1
2
3
4
6
7
8
9
10
Como puede ver en el resultado anterior, 5 no está impreso en la consola. Es porque el bucle continúa
cuando llega a 5.
Ejemplo:
Producción:
1 1
1 2
1 3
2 1
2 3
3 1
3 2
3 3
Ejemplo:
Producción:
1 1
1 2
1 3
2 1
3 1
3 2
3 3
Producción:
1
2
3
4
6
7
8
9
10
Producción:
1
2
3
4
6
7
8
9
10
Comentarios de Java
Los comentarios de Java son las declaraciones que el compilador y el intérprete no ejecutan. Los
comentarios se pueden utilizar para proporcionar información o explicación sobre la variable , el método
o la clase. o cualquier declaración. También se puede utilizar para ocultar el código del programa.
3. Comentario de documentación
1) Comentario de una sola línea de Java
El comentario de una sola línea se utiliza para comentar solo una línea.
Sintaxis:
Ejemplo:
1. public class CommentExample1 {
2. public static void main (String [] args) {
3. int i = 10 ; // Aquí, i es una variable
4. System.out.println (i);
5. }
6. }
Producción:
10
Sintaxis:
1. / *
2. Esto
3. es
4. multilínea
5. comentario
6. * /
Ejemplo:
1. public class CommentExample2 {
2. public static void main (String [] args) {
3. / * Declaremos y
4. Imprimir variable en java. * /
5. int i = 10 ;
6. System.out.println (i);
7. }
8. }
Producción:
10
Sintaxis:
1. / **
2. Esto
3. es
4. documentación
5. comentario
6. * /
Ejemplo:
1. / ** La clase Calculadora proporciona métodos para sumar y restar 2 números dados. * /
2. Calculadora de clase pública {
3. / ** El método add () devuelve la suma de números dados. * /
4. public static int add ( int a, int b) { return a + b;}
5. / ** El método sub () devuelve la resta de números dados. * /
6. public static int sub ( int a, int b) { return ab;}
7. }
javadoc Calculator.java
1. class FibonacciExample1 {
2. public static void main (String args [])
3. {
4. int n1 = 0 , n2 = 1 , n3, i, count = 10 ;
5. System.out.print (n1 + "" + n2); // imprimiendo 0 y 1
6.
7. for (i = 2 ; i <count; ++ i) // el bucle comienza desde 2 porque 0 y 1 ya están impresos
8. {
9. n3 = n1 + n2;
10. System.out.print ( "" + n3);
11. n1 = n2;
12. n2 = n3;
13. }
14.
15.}}
Pruébelo ahora
Producción:
0 1 1 2 3 5 8 13 21 34
1. class FibonacciExample2 {
2. static int n1 = 0, n2 = 1, n3 = 0;
3. static void printFibonacci ( int count) {
4. si (cuenta> 0) {
5. n3 = n1 + n2;
6. n1 = n2;
7. n2 = n3;
8. System.out.print ( "" + n3);
9. printFibonacci (cuenta-1);
10. }
11. }
12. public static void main (String args []) {
13. int count = 10;
14. System.out.print (n1 + "" + n2); // imprimiendo 0 y 1
15. printFibonacci (cuenta-2); // n-2 porque ya se han impreso 2 números
16. }
17.}
Pruébelo ahora
Producción:
0 1 1 2 3 5 8 13 21 34
https://www.javatpoint.com/java-programs
https://www.javatpoint.com/java-programs#java-basic-programs
En esta página, aprenderemos sobre los conceptos básicos de los POO. La programación orientada a
objetos es un paradigma que proporciona muchos conceptos, como herencia , enlace de
datos , polimorfismo , etc.
Simula se considera el primer lenguaje de programación orientado a objetos. El paradigma de
programación en el que todo se representa como un objeto se conoce como un lenguaje de
programación verdaderamente orientado a objetos.
Los lenguajes orientados a objetos más populares son Java , C # , PHP , Python , C ++ , etc.
El objetivo principal de la programación orientada a objetos es implementar entidades del mundo real,
por ejemplo, objetos, clases, abstracción, herencia, polimorfismo, etc.
o Objeto
o Clase
o Herencia
o Polimorfismo
o Abstracción
o Encapsulamiento
Aparte de estos conceptos, hay algunos otros términos que se utilizan en el diseño orientado a objetos:
o Acoplamiento
o Cohesión
o Asociación
o Agregación
o Composición
Objeto
Cualquier entidad que tenga estado y comportamiento se conoce como objeto. Por ejemplo, una silla,
bolígrafo, mesa, teclado, bicicleta, etc. Puede ser físico o lógico.
Un objeto se puede definir como una instancia de una clase. Un objeto contiene una dirección y ocupa
algo de espacio en la memoria. Los objetos pueden comunicarse sin conocer los detalles de los datos o el
código de los demás. Lo único necesario es el tipo de mensaje aceptado y el tipo de respuesta que
devuelven los objetos.
Ejemplo: un perro es un objeto porque tiene estados como color, nombre, raza, etc., así como
comportamientos como menear la cola, ladrar, comer, etc.
Clase
La colección de objetos se llama clase. Es una entidad lógica.
Una clase también se puede definir como un plano a partir del cual puede crear un objeto individual. La
clase no consume espacio.
Herencia
Cuando un objeto adquiere todas las propiedades y comportamientos de un objeto padre , se conoce
como herencia. Proporciona reutilización de código. Se utiliza para lograr polimorfismo en tiempo de
ejecución.
Polimorfismo
Si una tarea se realiza de diferentes maneras , se conoce como polimorfismo. Por ejemplo: para
convencer al cliente de otra manera, para dibujar algo, por ejemplo, forma, triángulo, rectángulo, etc.
Otro ejemplo puede ser hablar algo; por ejemplo, un gato habla maullido, un perro ladra guau, etc.
Abstracción
Ocultar detalles internos y mostrar funcionalidad se conoce como abstracción. Por ejemplo, una llamada
telefónica, no conocemos el procesamiento interno.
Encapsulamiento
La vinculación (o envoltura) de código y datos en una sola unidad se conoce como encapsulación . Por
ejemplo, una cápsula, se envuelve con diferentes medicamentos.
Una clase Java es el ejemplo de encapsulación. Java bean es la clase completamente encapsulada
porque todos los miembros de datos son privados aquí.
Acoplamiento
El acoplamiento se refiere al conocimiento, la información o la dependencia de otra clase. Surge cuando
las clases se conocen unas a otras. Si una clase tiene la información detallada de otra clase, existe un
fuerte acoplamiento. En Java, usamos modificadores privados, protegidos y públicos para mostrar el
nivel de visibilidad de una clase, método y campo. Puede utilizar interfaces para el acoplamiento más
débil porque no hay una implementación concreta.
Cohesión
La cohesión se refiere al nivel de un componente que realiza una única tarea bien definida. Una sola
tarea bien definida se realiza mediante un método altamente cohesivo. El método débilmente cohesivo
dividirá la tarea en partes separadas. El paquete java.io es un paquete altamente cohesivo porque tiene
clases e interfaz relacionadas con E / S. Sin embargo, el paquete java.util es un paquete débilmente
cohesivo porque tiene clases e interfaces no relacionadas.
Asociación
La asociación representa la relación entre los objetos. Aquí, un objeto se puede asociar con un objeto o
con muchos objetos. Puede haber cuatro tipos de asociación entre los objetos:
o Uno a muchos
o Muchos a uno, y
o Muchos a muchos
Entendamos la relación con ejemplos en tiempo real. Por ejemplo, un país puede tener un primer
ministro (uno a uno) y un primer ministro puede tener muchos ministros (uno a muchos). Además,
muchos diputados pueden tener un primer ministro (muchos a uno) y muchos ministros pueden tener
muchos departamentos (muchos a muchos).
Agregación
La agregación es una forma de lograr Asociación. La agregación representa la relación en la que un
objeto contiene otros objetos como parte de su estado. Representa la débil relación entre
objetos. También se denomina relación tiene-a en Java. Como, la herencia representa la relación es-
a . Es otra forma de reutilizar objetos.
Composición
La composición también es una forma de lograr Asociación. La composición representa la relación en la
que un objeto contiene otros objetos como parte de su estado. Existe una fuerte relación entre el objeto
contenedor y el objeto dependiente. Es el estado en el que los objetos que los contienen no tienen una
existencia independiente. Si elimina el objeto principal, todos los objetos secundarios se eliminarán
automáticamente.
Ventaja de los POO sobre el lenguaje de programación orientado
a procedimientos
1) Los POO facilitan el desarrollo y el mantenimiento, mientras que, en un lenguaje de programación
orientado a procedimientos, no es fácil de administrar si el código crece a medida que aumenta el
tamaño del proyecto.
2) Los POO proporcionan ocultación de datos, mientras que, en un lenguaje de programación orientado a
procedimientos, se puede acceder a los datos globales desde cualquier lugar.
3) Los OOP brindan la capacidad de simular eventos del mundo real de manera mucho más
efectiva. Podemos proporcionar la solución de un problema verbal real si usamos el lenguaje de
programación orientado a objetos.
Todas las clases, interfaces, paquetes, métodos y campos del lenguaje de programación Java se dan de
acuerdo con la convención de nomenclatura de Java. Si no sigue estas convenciones, puede generar
confusión o código erróneo.
Las siguientes son las reglas clave que debe seguir cada identificador:
o El nombre no debe comenzar con caracteres especiales como & (ampersand), $ (dólar), _ (guión
bajo).
Clase
o Debe comenzar con la letra mayúscula.
o Ejemplo: -
1. empleado de clase pública
2. {
3. //fragmento de código
4. }
Interfaz
o Debe comenzar con la letra mayúscula.
o Ejemplo: -
1. interfaz imprimible
2. {
3. //fragmento de código
4. }
Método
o Debe comenzar con una letra minúscula.
o Debe ser un verbo como main (), print (), println ().
o Si el nombre contiene varias palabras, comience con una letra minúscula seguida de una letra
mayúscula como actionPerformed ().
o Ejemplo:-
1. clase empleado
2. {
3. //método
4. vacío dibujar ()
5. {
6. //fragmento de código
7. }
8. }
Variable
o Debe comenzar con una letra minúscula como id, name.
o No debe comenzar con caracteres especiales como & (ampersand), $ (dólar), _ (guión bajo).
o Si el nombre contiene varias palabras, comience con la letra minúscula seguida de una letra
mayúscula como nombre, apellido.
o Evite el uso de variables de un carácter como x, y, z.
o Ejemplo :-
1. clase empleado
2. {
3. //variable
4. int id;
5. //fragmento de código
6. }
Paquete
o Debe ser una letra minúscula como java, lang.
o Si el nombre contiene varias palabras, debe estar separado por puntos (.) Como java.util,
java.lang.
o Ejemplo :-
1. paquete com.javatpoint; //paquete
2. clase empleado
3. {
4. //fragmento de código
5. }
Constante
o Debe estar en letras mayúsculas como ROJO, AMARILLO.
o Si el nombre contiene varias palabras, debe estar separado por un guión bajo (_) como
MAX_PRIORITY.
o Ejemplo :-
1. clase empleado
2. {
3. //constante
4. estático final int MIN_AGE = 18 ;
5. //fragmento de código
6. }
Si el nombre se combina con dos palabras, la segunda palabra comenzará siempre con una letra
mayúscula, como actionPerformed (), firstName, ActionEvent, ActionListener, etc.
2. Clase en Java
4. Método en Java
6. Objeto anónimo
En esta página, aprenderemos sobre clases y objetos Java. En la técnica de programación orientada a
objetos, diseñamos un programa utilizando objetos y clases.
Un objeto en Java es una entidad tanto física como lógica, mientras que una clase en Java es solo una
entidad lógica.
¿Qué es un objeto en Java?
Una entidad que tiene estado y comportamiento se conoce como un objeto, por ejemplo, silla, bicicleta,
rotulador, bolígrafo, mesa, automóvil, etc. Puede ser físico o lógico (tangible e intangible). El ejemplo de
un objeto intangible es el sistema bancario.
Un objeto es una instancia de una clase. Una clase es una plantilla o plano a partir del cual se crean
los objetos. Entonces, un objeto es la instancia (resultado) de una clase.
Definiciones de objeto:
o Campos
o Métodos
o Constructores
o Bloques
o Optimización de código
Archivo: Student.java
Producción:
0
nulo
Ejemplo de objeto y clase: principal fuera de la clase
En el desarrollo en tiempo real, creamos clases y las usamos desde otra clase. Es un enfoque mejor que
el anterior. Veamos un ejemplo simple, donde tenemos el método main () en otra clase.
Podemos tener varias clases en diferentes archivos Java o en un solo archivo Java. Si define varias
clases en un solo archivo fuente de Java, es una buena idea guardar el nombre del archivo con el
nombre de la clase que tiene el método main ().
Archivo: TestStudent1.java
Producción:
0
nulo
2. Por método
3. Por constructor
Archivo: TestStudent2.java
1. clase estudiante {
2. int id;
3. Nombre de cadena;
4. }
5. class TestStudent2 {
6. public static void main (String args []) {
7. Estudiante s1 = nuevo Estudiante ();
8. s1.id = 101 ;
9. s1.name = "Sonoo" ;
10. System.out.println (s1.id + "" + s1.name); // imprimiendo miembros con un espacio en blanco
11. }
12.}
Pruébelo ahora
Producción:
101 Sonoo
También podemos crear múltiples objetos y almacenar información en ellos a través de una variable de
referencia.
Archivo: TestStudent3.java
1. clase estudiante {
2. int id;
3. Nombre de cadena;
4. }
5. class TestStudent3 {
6. public static void main (String args []) {
7. // Creando objetos
8. Estudiante s1 = nuevo Estudiante ();
9. Estudiante s2 = nuevo Estudiante ();
10. // Inicializando objetos
11. s1.id = 101 ;
12. s1.name = "Sonoo" ;
13. s2.id = 102 ;
14. s2.name = "Amit" ;
15. // Imprimiendo datos
16. System.out.println(s1.id+" "+s1.name);
17. System.out.println(s2.id+" "+s2.name);
18. }
19.}
Test it Now
Output:
101 Sonoo
102 Amit
File: TestStudent4.java
1. class Student{
2. int rollno;
3. String name;
4. void insertRecord(int r, String n){
5. rollno=r;
6. name=n;
7. }
8. void displayInformation(){System.out.println(rollno+" "+name);}
9. }
10.class TestStudent4{
11. public static void main(String args[]){
12. Student s1=new Student();
13. Student s2=new Student();
14. s1.insertRecord(111,"Karan");
15. s2.insertRecord(222,"Aryan");
16. s1.displayInformation();
17. s2.displayInformation();
18. }
19.}
Test it Now
Output:
111 Karan
222 Aryan
As you can see in the above figure, object gets the memory in heap memory area. The reference
variable refers to the object allocated in the heap memory area. Here, s1 and s2 both are reference
variables that refer to the objects allocated in memory.
File: TestEmployee.java
1. class Employee{
2. int id;
3. String name;
4. float salary;
5. void insert(int i, String n, float s) {
6. id=i;
7. name=n;
8. salary=s;
9. }
10. void display(){System.out.println(id+" "+name+" "+salary);}
11.}
12.public class TestEmployee {
13.public static void main(String[] args) {
14. Employee e1=new Employee();
15. Employee e2=new Employee();
16. Employee e3=new Employee();
17. e1.insert(101,"ajeet",45000);
18. e2.insert(102,"irfan",25000);
19. e3.insert(103,"nakul",55000);
20. e1.display();
21. e2.display();
22. e3.display();
23.}
24.}
Test it Now
Output:
File: TestRectangle1.java
1. class Rectangle{
2. int length;
3. int width;
4. void insert(int l, int w){
5. length=l;
6. width=w;
7. }
8. void calculateArea(){System.out.println(length*width);}
9. }
10.class TestRectangle1{
11. public static void main(String args[]){
12. Rectangle r1=new Rectangle();
13. Rectangle r2=new Rectangle();
14. r1.insert(11,5);
15. r2.insert(3,15);
16. r1.calculateArea();
17. r2.calculateArea();
18.}
19.}
Test it Now
Output:
55
45
o By new keyword
o By newInstance() method
o By clone() method
o By deserialization
Anonymous object
Anonymous simply means nameless. An object which has no reference is known as an anonymous
object. It can be used at the time of object creation only.
If you have to use an object only once, an anonymous object is a good approach. For example:
1. new Calculation();//anonymous object
Calling method through a reference:
1. Calculation c=new Calculation();
2. c.fact(5);
1. new Calculation().fact(5);
1. class Calculation{
2. void fact(int n){
3. int fact=1;
4. for(int i=1;i<=n;i++){
5. fact=fact*i;
6. }
7. System.out.println("factorial is "+fact);
8. }
9. public static void main(String args[]){
10. new Calculation().fact(5);//calling method with anonymous object
11.}
12.}
Output:
Factorial is 120
1. int a=10, b=20;
1. Rectangle r1=new Rectangle(), r2=new Rectangle();//creating two objects
1. //Java Program to illustrate the use of Rectangle class which
2. //has length and width data members
3. class Rectangle{
4. int length;
5. int width;
6. void insert(int l,int w){
7. length=l;
8. width=w;
9. }
10. void calculateArea(){System.out.println(length*width);}
11.}
12.class TestRectangle2{
13. public static void main(String args[]){
14. Rectangle r1=new Rectangle(),r2=new Rectangle();//creating two objects
15. r1.insert(11,5);
16. r2.insert(3,15);
17. r1.calculateArea();
18. r2.calculateArea();
19.}
20.}
Test it Now
Output:
55
45
1. //Java Program to demonstrate the working of a banking-system
2. //where we deposit and withdraw amount from our account.
3. //Creating an Account class which has deposit() and withdraw() methods
4. class Account{
5. int acc_no;
6. String name;
7. float amount;
8. //Method to initialize object
9. void insert(int a,String n,float amt){
10.acc_no=a;
11.name=n;
12.amount=amt;
13.}
14.//deposit method
15.void deposit(float amt){
16.amount=amount+amt;
17.System.out.println(amt+" deposited");
18.}
19.//withdraw method
20.void withdraw(float amt){
21.if(amount<amt){
22.System.out.println("Insufficient Balance");
23.}else{
24.amount=amount-amt;
25.System.out.println(amt+" withdrawn");
26.}
27.}
28.//method to check the balance of the account
29.void checkBalance(){System.out.println("Balance is: "+amount);}
30.//method to display the values of an object
31.void display(){System.out.println(acc_no+" "+name+" "+amount);}
32.}
33.//Creating a test class to deposit and withdraw amount
34.class TestAccount{
35.public static void main(String[] args){
36.Account a1=new Account();
37.a1.insert(832345,"Ankit",1000);
38.a1.display();
39.a1.checkBalance();
40.a1.deposit(40000);
41.a1.checkBalance();
42.a1.withdraw(15000);
43.a1.checkBalance();
44.}}
Test it Now
Output:
Método en Java
En general, un método es una forma de realizar alguna tarea. De manera similar, el método en
Java es una colección de instrucciones que realiza una tarea específica. Proporciona la reutilización del
código. También podemos modificar fácilmente el código usando métodos . En esta sección,
aprenderemos qué es un método en Java, tipos de métodos, declaración de métodos y cómo
llamar a un método en Java .
El método más importante en Java es el método main () . Si desea leer más sobre el método main (),
visite el enlace https://www.javatpoint.com/java-main-method .
Declaración de método
La declaración del método proporciona información sobre los atributos del método, como visibilidad, tipo
de retorno, nombre y argumentos. Tiene seis componentes que se conocen como encabezado de
método , como hemos mostrado en la siguiente figura.
Firma de método: cada método tiene una firma de método. Es parte de la declaración del
método. Incluye el nombre del método y la lista de parámetros .
o Público: el método es accesible para todas las clases cuando usamos un especificador público en
nuestra aplicación.
o Privado: cuando usamos un especificador de acceso privado, el método es accesible solo en las
clases en las que está definido.
o Protegido: cuando usamos un especificador de acceso protegido, el método es accesible dentro
del mismo paquete o subclases en un paquete diferente.
o Predeterminado: cuando no usamos ningún especificador de acceso en la declaración del
método, Java usa el especificador de acceso predeterminado de forma predeterminada. Solo es
visible desde el mismo paquete.
Tipo de retorno: el tipo de retorno es un tipo de datos que devuelve el método. Puede tener un tipo de
datos primitivo, objeto, colección, void, etc. Si el método no devuelve nada, usamos la palabra clave
void.
Nombre del método: es un nombre único que se utiliza para definir el nombre de un método. Debe
corresponder a la funcionalidad del método. Supongamos que, si estamos creando un método para
restar dos números, el nombre del método debe ser resta (). Un método se invoca por su nombre.
Lista de parámetros: es la lista de parámetros separados por una coma y encerrados entre
paréntesis. Contiene el tipo de datos y el nombre de la variable. Si el método no tiene parámetro, deje el
paréntesis en blanco.
Cuerpo del método: es parte de la declaración del método. Contiene todas las acciones a realizar. Está
encerrado dentro del par de llaves.
Nombrar un método
Al definir un método, recuerde que el nombre del método debe ser un verbo y comenzar con
una letra minúscula . Si el nombre del método tiene más de dos palabras, el primer nombre debe ser
un verbo seguido de un adjetivo o sustantivo. En el nombre del método de varias palabras, la primera
letra de cada palabra debe estar en mayúsculas, excepto la primera palabra. Por ejemplo:
También es posible que un método tenga el mismo nombre que otro nombre de método en la misma
clase, se conoce como sobrecarga de método .
Tipos de método
Hay dos tipos de métodos en Java:
o Método predefinido
Método predefinido
En Java, los métodos predefinidos son el método que ya está definido en las bibliotecas de clases de Java
y se conoce como métodos predefinidos. También se conoce como método de biblioteca
estándar o método integrado . Podemos usar directamente estos métodos simplemente llamándolos
en el programa en cualquier momento. Algunos métodos predefinidos son length (), equals (),
compareTo (), sqrt (), etc. Cuando llamamos a cualquiera de los métodos predefinidos en nuestro
programa, una serie de códigos relacionados con el método correspondiente se ejecuta en segundo plano
que ya está almacenado en la biblioteca.
Todos y cada uno de los métodos predefinidos se definen dentro de una clase. Como el método print
() se define en la clase java.io.PrintStream . Imprime la declaración que escribimos dentro del
método. Por ejemplo, print ("Java") , imprime Java en la consola.
Demo.java
1. demostración de clase pública
2. {
3. public static void main (String [] args)
4. {
5. // usando el método max () de la clase Math
6. System.out.print ( "El número máximo es:" + Math.max ( 9 , 7 ));
7. }
8. }
Producción:
En el ejemplo anterior, hemos utilizado tres métodos predefinidos main (), print () y max () . Hemos
utilizado estos métodos directamente sin declaración porque están predefinidos. El método print () es un
método de la clase PrintStream que imprime el resultado en la consola. El método max () es un método
del clase Math que devuelve el mayor de dos números.
También podemos ver la firma del método de cualquier método predefinido utilizando el
enlace https://docs.oracle.com/ . Cuando pasamos por el enlace y vemos la firma del método max (),
encontramos lo siguiente:
En la firma del método anterior, vemos que la firma del método tiene un especificador de
acceso público , un modificador de no acceso estático , tipo de retorno int , nombre de método max
(), lista de parámetros (int a, int b). En el ejemplo anterior, en lugar de definir el método, acabamos de
invocar el método. Ésta es la ventaja de un método predefinido. Hace que la programación sea menos
complicada.
De manera similar, también podemos ver la firma del método del método print ().
Creemos un método definido por el usuario que verifique que el número sea par o impar. Primero,
definiremos el método.
Hemos definido el método anterior llamado findevenodd (). Tiene un parámetro num de tipo int. El
método no devuelve ningún valor, por eso hemos utilizado void. El cuerpo del método contiene los pasos
para verificar que el número sea par o impar. Si el número es par, imprime el número es par , de lo
contrario imprime el número impar .
Una vez que hayamos definido un método, deberíamos llamarlo. La llamada de un método en un
programa es simple. Cuando llamamos o invocamos un método definido por el usuario, el control del
programa se transfiere al método llamado.
1. import java.util.Scanner;
2. clase pública EvenOdd
3. {
4. public static void main (String args [])
5. {
6. // creando objeto de clase Scanner
7. Escaneo del escáner = nuevo escáner (System.in);
8. System.out.print ( "Ingrese el número:" );
9. // valor de lectura del usuario
10.int num = scan.nextInt ();
11.// llamada al método
12.findEvenOdd (num);
13.}
EvenOdd.java
1. import java.util.Scanner;
2. clase pública EvenOdd
3. {
4. public static void main (String args [])
5. {
6. // creando objeto de clase Scanner
7. Escaneo del escáner = nuevo escáner (System.in);
8. System.out.print ( "Ingrese el número:" );
9. // valor de lectura del usuario
10.int num = scan.nextInt ();
11.// llamada al método
12.findEvenOdd (num);
13.}
14.// método definido por el usuario
15.public static void findEvenOdd ( int num)
16.{
17.// cuerpo del método
18.si (num% 2 == 0 )
19.System.out.println (num + "es par" );
20.demás
21.System.out.println (num + "es impar" );
22.}
23.}
Salida 1:
Ingrese el número: 12
12 es par
Salida 2:
Ingrese el número: 99
99 es extraño
En el siguiente programa, hemos definido un método llamado add () que suma los dos números. Tiene
dos parámetros n1 y n2 de tipo entero. Los valores de n1 y n2 corresponden al valor de ayb,
respectivamente. Por lo tanto, el método suma el valor de ayby lo almacena en la variable sy devuelve la
suma.
Addition.java
1. Adición de clase pública
2. {
3. public static void main (String [] args)
4. {
5. int a = 19 ;
6. int b = 5 ;
7. // llamada al método
8. int c = agregar (a, b); // ayb son parámetros reales
9. System.out.println ( "La suma de ayb es =" + c);
10.}
11.// método definido por el usuario
12.public static int add ( int n1, int n2) // n1 y n2 son parámetros formales
13.{
14.int s;
15.s = n1 + n2;
16.return s; // devolviendo la suma
17.}
18.}
Producción:
La suma de ayb es = 24
Método estático
Un método que tiene una palabra clave estática se conoce como método estático. En otras palabras, un
método que pertenece a una clase en lugar de una instancia de una clase se conoce como método
estático. También podemos crear un método estático usando la palabra clave static antes del nombre
del método.
La principal ventaja de un método estático es que podemos llamarlo sin crear un objeto. Puede acceder a
miembros de datos estáticos y también cambiar su valor. Se utiliza para crear un método de
instancia. Se invoca mediante el nombre de la clase. El mejor ejemplo de un método estático es el
método main () .
Display.java
1. Pantalla de clase pública
2. {
3. public static void main (String [] args)
4. {
5. show();
6. }
7. espectáculo vacío estático ()
8. {
9. System.out.println ( "Es un ejemplo de método estático." );
10.}
11.}
Producción:
Método de instancia
El método de la clase se conoce como método de instancia . Es un método no estático definido en la
clase. Antes de llamar o invocar el método de instancia, es necesario crear un objeto de su
clase. Veamos un ejemplo de un método de instancia.
InstanceMethodExample.java
1. InstanceMethodExample de clase pública
2. {
3. public static void main (String [] args)
4. {
5. // Creando un objeto de la clase
6. InstanceMethodExample obj = new InstanceMethodExample ();
7. // invocando el método de instancia
8. System.out.println ( "La suma es:" + obj.add ( 12 , 13 ));
9. }
10.int s;
11.// método definido por el usuario porque no hemos utilizado una palabra clave estática
12.public int add ( int a, int b)
13.{
14.s = a + b;
15.// devolviendo la suma
16.return s;
17.}
18.}
Producción:
La suma es: 25
o Método de acceso
Método de acceso: El método o métodos que leen las variables de instancia se conocen como método
de acceso. Podemos identificarlo fácilmente porque el método tiene como prefijo la
palabra get . También se conoce como getters . Devuelve el valor del campo privado. Se utiliza para
obtener el valor del campo privado.
Ejemplo
1. public int getId ()
2. {
3. return Id;
4. }
Mutator Method: The method(s) read the instance variable(s) and also modify the values. We can
easily identify it because the method is prefixed with the word set. It is also known
as setters or modifiers. It does not return anything. It accepts a parameter of the same data type that
depends on the field. It is used to set the value of the private field.
Example
1. public void setRoll(int roll)
2. {
3. this.roll = roll;
4. }
Example of accessor and mutator method
Student.java
1. public class Student
2. {
3. private int roll;
4. private String name;
5. public int getRoll() //accessor method
6. {
7. return roll;
8. }
9. public void setRoll(int roll) //mutator method
10.{
11.this.roll = roll;
12.}
13.public String getName()
14.{
15.return name;
16.}
17.public void setName(String name)
18.{
19.this.name = name;
20.}
21.public void display()
22.{
23.System.out.println("Roll no.: "+roll);
24.System.out.println("Student name: "+name);
25.}
26.}
Abstract Method
El método que no tiene cuerpo de método se conoce como método abstracto. En otras palabras, sin una
implementación se conoce como método abstracto. Siempre declara en la clase abstracta . Significa
que la clase en sí debe ser abstracta si tiene un método abstracto. Para crear un método abstracto,
usamos la palabra clave abstract .
Sintaxis
1. nombre_método vacío abstracto ();
Ejemplo de método abstracto
Demo.java
Producción:
Método de fábrica
Es un método que devuelve un objeto a la clase a la que pertenece. Todos los métodos estáticos son
métodos de fábrica. Por ejemplo, NumberFormat obj = NumberFormat.getNumberInstance ();
Constructores en Java
1. Tipos de constructores
1. Constructor predeterminado
2. Constructor parametrizado
Cada vez que se crea un objeto con la palabra clave new (), se llama al menos a un constructor.
Llama a un constructor predeterminado si no hay ningún constructor disponible en la clase. En tal caso,
el compilador de Java proporciona un constructor predeterminado de forma predeterminada.
Hay dos tipos de constructores en Java: constructor sin argumentos y constructor parametrizado.
Nota: Se llama constructor porque construye los valores en el momento de la creación del objeto. No es
necesario escribir un constructor para una clase. Es porque el compilador de Java crea un constructor
predeterminado si su clase no tiene ninguno.
2. Constructor parametrizado
Constructor predeterminado de Java
Un constructor se llama "Constructor predeterminado" cuando no tiene ningún parámetro.
In this example, we are creating the no-arg constructor in the Bike class. It will be invoked at the time of
1. //Java Program to create and call a default constructor
2. class Bike1{
3. //creating a default constructor
4. Bike1(){System.out.println("Bike is created");}
5. //main method
6. public static void main(String args[]){
7. //calling a default constructor
8. Bike1 b=new Bike1();
9. }
10.}
Test it Now
Output:
Bike is created
Rule: If there is no constructor in a class, compiler automatically creates a default constructor.
The default constructor is used to provide the default values to the object like 0, null, etc., depending on
the type.
Output:
0 null
0 null
Explanation:In the above class,you are not creating any constructor so compiler provides you a default
constructor. Here 0 and null values are provided by default constructor.
The parameterized constructor is used to provide different values to distinct objects. However, you can
provide the same values also.
1. //Java Program to demonstrate the use of the parameterized constructor.
2. class Student4{
3. int id;
4. String name;
5. //creating a parameterized constructor
6. Student4(int i,String n){
7. id = i;
8. name = n;
9. }
10. //method to display the values
11. void display(){System.out.println(id+" "+name);}
12.
13. public static void main(String args[]){
14. //creating objects and passing values
15. Student4 s1 = new Student4(111,"Karan");
16. Student4 s2 = new Student4(222,"Aryan");
17. // método de llamada para mostrar los valores del objeto
18. s1.display ();
19. s2.display ();
20. }
21.}
Pruébelo ahora
Producción:
111 Karan
222 Ario
La sobrecarga de constructores en Java es una técnica de tener más de un constructor con diferentes
listas de parámetros. Están organizados de manera que cada constructor realice una tarea diferente. El
compilador los diferencia por el número de parámetros de la lista y sus tipos.
Producción:
111 Karan 0
222 Ario 25
Se utiliza un constructor para inicializar el estado de un objeto. Se utiliza un método para expo
comportamiento de un objeto.
El nombre del constructor debe ser el mismo que el de la clase. El nombre del método puede o
que el nombre de la clase.
Constructor de copias de Java
No hay un constructor de copias en Java. Sin embargo, podemos copiar los valores de un objeto a otro
como un constructor de copias en C ++.
Hay muchas formas de copiar los valores de un objeto en otro en Java. Ellos son:
o Por constructor
En este ejemplo, vamos a copiar los valores de un objeto en otro usando el constructor de Java.
Producción:
111 Karan
111 Karan
1. clase Student7 {
2. int id;
3. Nombre de cadena;
4. Student7 ( int i, String n) {
5. id = i;
6. nombre = n;
7. }
8. Estudiante7 () {}
9. void display () {System.out.println (id + "" + nombre);}
10.
11. public static void main (String args []) {
12. Student7 s1 = nuevo Student7 ( 111 , "Karan" );
13. Student7 s2 = nuevo Student7 ();
14. s2.id = s1.id;
15. s2.name = s1.name;
16. s1.display ();
17. s2.display ();
18. }
19.}
Pruébelo ahora
Producción:
111 Karan
111 Karan
1.
Variable estática
2. Programa del contador sin variable estática
4. Método estático
7. Bloque estático
3. Cuadra
4. Clase anidada
o La variable estática se puede utilizar para hacer referencia a la propiedad común de todos los
objetos (que no es única para cada objeto), por ejemplo, el nombre de la empresa de los
empleados, el nombre de la universidad de los estudiantes, etc.
o La variable estática obtiene memoria solo una vez en el área de la clase en el momento de la
carga de la clase.
Output:
1. //Java Program to demonstrate the use of an instance variable
2. //which get memory each time when we create an object of the class.
3. class Counter{
4. int count=0;//will get memory each time when the instance is created
5.
6. Counter(){
7. count++;//incrementing value
8. System.out.println(count);
9. }
10.
11.public static void main(String args[]){
12.//Creating objects
13.Counter c1=new Counter();
14.Counter c2=new Counter();
15.Counter c3=new Counter();
16.}
17.}
Test it Now
Output:
1
1
1
1. //Java Program to illustrate the use of static variable which
2. //is shared with all objects.
3. class Counter2{
4. static int count=0;//will get memory only once and retain its value
5.
6. Counter2(){
7. count++;//incrementing the value of static variable
8. System.out.println(count);
9. }
10.
11.public static void main(String args[]){
12.//creating objects
13.Counter2 c1=new Counter2();
14.Counter2 c2=new Counter2();
15.Counter2 c3=new Counter2();
16.}
17.}
Test it Now
Output:
1
2
3
o A static method belongs to the class rather than the object of a class.
o A static method can be invoked without the need for creating an instance of a class.
o A static method can access static data member and can change the value of it.
Example of static method
1. //Java Program to demonstrate the use of a static method.
2. class Student{
3. int rollno;
4. String name;
5. static String college = "ITS";
6. //static method to change the value of static variable
7. static void change(){
8. college = "BBDIT";
9. }
10. //constructor to initialize the variable
11. Student(int r, String n){
12. rollno = r;
13. name = n;
14. }
15. //method to display values
16. void display(){System.out.println(rollno+" "+name+" "+college);}
17.}
18.//Test class to create and display the values of object
19.public class TestStaticMethod{
20. public static void main(String args[]){
21. Student.change();//calling change method
22. //creating objects
23. Student s1 = new Student(111,"Karan");
24. Student s2 = new Student(222,"Aryan");
25. Student s3 = new Student(333,"Sonoo");
26. //calling display method
27. s1.display();
28. s2.display();
29. s3.display();
30. }
31.}
Test it Now
Output:111 Karan BBDIT
222 Aryan BBDIT
333 Sonoo BBDIT
There are two main restrictions for the static method. They are:
1. The static method can not use non static data member or call non-static method directly.
1. class A{
2. int a=40;//non static
3.
4. public static void main(String args[]){
5. System.out.println(a);
6. }
7. }
Test it Now
Output:Compile Time Error
Ans) No, one of the ways was the static block, but it was possible till JDK 1.6. Since JDK 1.7, it is not
possible to execute a Java class without the main method.
1. class A3{
2. static{
3. System.out.println("static block is invoked");
4. System.exit(0);
5. }
6. }
Test it Now
Output:
Error: Main method not found in class A3, please define the main method as:
public static void main(String[] args)
or a JavaFX application class must extend javafx.application.Application
6. esto se puede usar para devolver la instancia de clase actual del método.
Suggestion: If you are beginner to java, lookup only three usage of this keyword.
1) this: to refer current class instance variable
The this keyword can be used to refer current class instance variable. If there is ambiguity between the
instance variables and parameters, this keyword resolves the problem of ambiguity.
1. class Student{
2. int rollno;
3. String name;
4. float fee;
5. Student(int rollno,String name,float fee){
6. rollno=rollno;
7. name=name;
8. fee=fee;
9. }
10.void display(){System.out.println(rollno+" "+name+" "+fee);}
11.}
12.class TestThis1{
13.public static void main(String args[]){
14.Student s1=new Student(111,"ankit",5000f);
15.Student s2=new Student(112,"sumit",6000f);
16.s1.display();
17.s2.display();
18.}}
Test it Now
Output:
0 null 0.0
0 null 0.0
In the above example, parameters (formal arguments) and instance variables are same. So, we are
using this keyword to distinguish local variable and instance variable.
Producción:
Si las variables locales (argumentos formales) y las variables de instancia son diferentes, no es necesario
utilizar esta palabra clave como en el siguiente programa:
Producción:
1. clase A {
2. void m () {System.out.println ( "hola m" );}
3. void n () {
4. System.out.println ( "hola n" );
5. // m (); // igual que este.m ()
6. este .m ();
7. }
8. }
9. class TestThis4 {
10.public static void main (String args []) {
11.A a=new A();
12.a.n();
13.}}
Test it Now
Output:
hello n
hello m
Output:
hello a
10
1. class A{
2. A(){
3. this(5);
4. System.out.println("hello a");
5. }
6. A(int x){
7. System.out.println(x);
8. }
9. }
10.class TestThis6{
11.public static void main(String args[]){
12.A a=new A();
13.}}
Test it Now
Output:
5
hello a
1. class Student{
2. int rollno;
3. String name,course;
4. float fee;
5. Student(int rollno,String name,String course){
6. this.rollno=rollno;
7. this.name=name;
8. this.course=course;
9. }
10.Student(int rollno,String name,String course,float fee){
11.this(rollno,name,course);//reusing constructor
12.this.fee=fee;
13.}
14.void display(){System.out.println(rollno+" "+name+" "+course+" "+fee);}
15.}
16.class TestThis7{
17.public static void main(String args[]){
18.Student s1=new Student(111,"ankit","java");
19.Student s2=new Student(112,"sumit","java",6000f);
20.s1.display();
21.s2.display();
22.}}
Pruébelo ahora
Producción:
1. clase S2 {
2. void m (S2 obj) {
3. System.out.println ( "se invoca el método" );
4. }
5. void p () {
6. m ( esto );
7. }
8. public static void main (String args []) {
9. S2 s1 = nuevo S2 ();
10. s1.p ();
11. }
12.}
Pruébelo ahora
Producción:
se invoca el método
Aplicación de esto que se puede pasar como argumento:
En el manejo de eventos (o) en una situación en la que tenemos que proporcionar la referencia de una
clase a otra. Se utiliza para reutilizar un objeto en muchos métodos.
1. clase B {
2. A4 obj;
3. B (obj A4) {
4. este .obj = obj;
5. }
6. pantalla vacía () {
7. System.out.println (obj.data); // usando un miembro de datos de la clase A4
8. }
9. }
10.
11.clase A4 {
12. int datos = 10 ;
13. A4 () {
14. B b = nuevo B ( este );
15. b.display ();
16. }
17. public static void main (String args []) {
18. A4 a = nuevo A4 ();
19. }
20.}
Pruébelo ahora
Salida: 10
Producción:
Hola java
1. clase A5 {
2. void m () {
3. System.out.println ( esto ); // imprime la misma ID de referencia
4. }
5. public static void main (String args []) {
6. A5 obj = nuevo A5 ();
7. System.out.println (obj); // imprime el ID de referencia
8. obj.m ();
9. }
10.}
Pruébelo ahora
Producción:
A5 @ 22b3ea59
A5 @ 22b3ea59
Herencia en Java
1. Herencia
2. Tipos de herencia
La idea detrás de la herencia en Java es que puede crear nuevas clases que se basan en clases
existentes. Cuando hereda de una clase existente, puede reutilizar métodos y campos de la clase
principal. Además, también puede agregar nuevos métodos y campos en su clase actual.
The extends keyword indicates that you are making a new class that derives from an existing class.
The meaning of "extends" is to increase the functionality.
In the terminology of Java, a class which is inherited is called a parent or superclass, and the new class
is called child or subclass.
As displayed in the above figure, Programmer is the subclass and Employee is the superclass. The
relationship between the two classes is Programmer IS-A Employee. It means that Programmer is a
type of Employee.
1. class Employee{
2. float salary=40000;
3. }
4. class Programmer extends Employee{
5. int bonus=10000;
6. public static void main(String args[]){
7. Programmer p=new Programmer();
8. System.out.println("Programmer salary is:"+p.salary);
9. System.out.println("Bonus of Programmer is:"+p.bonus);
10.}
11.}
Test it Now
Programmer salary is:40000.0
Bonus of programmer is:10000
In the above example, Programmer object can access the field of own class as well as of Employee class
i.e. code reusability.
In java programming, multiple and hybrid inheritance is supported through interface only. We will learn
about interfaces later.
Note: Multiple inheritance is not supported in Java through class.
When one class inherits multiple classes, it is known as multiple inheritance. For Example:
File: TestInheritance.java
1. class Animal{
2. void eat(){System.out.println("eating...");}
3. }
4. class Dog extends Animal{
5. void bark(){System.out.println("barking...");}
6. }
7. class TestInheritance{
8. public static void main(String args[]){
9. Dog d=new Dog();
10.d.bark();
11.d.eat();
12.}}
Output:
barking...
eating...
File: TestInheritance2.java
1. class Animal{
2. void eat(){System.out.println("eating...");}
3. }
4. class Dog extends Animal{
5. void bark(){System.out.println("barking...");}
6. }
7. class BabyDog extends Dog{
8. void weep(){System.out.println("weeping...");}
9. }
10.class TestInheritance2{
11.public static void main(String args[]){
12.BabyDog d=new BabyDog();
13.d.weep();
14.d.bark();
15.d.eat();
16.}}
Output:
weeping...
barking...
eating...
File: TestInheritance3.java
1. class Animal{
2. void eat(){System.out.println("eating...");}
3. }
4. class Dog extends Animal{
5. void bark(){System.out.println("barking...");}
6. }
7. class Cat extends Animal{
8. void meow(){System.out.println("meowing...");}
9. }
10.class TestInheritance3{
11.public static void main(String args[]){
12.Cat c=new Cat();
13.c.meow();
14.c.eat();
15.//c.bark();//C.T.Error
16.}}
Output:
meowing...
eating...
Consider a scenario where A, B, and C are three classes. The C class inherits A and B classes. If A and B
classes have the same method and you call it from child class object, there will be ambiguity to call the
method of A or B class.
Since compile-time errors are better than runtime errors, Java renders compile-time error if you inherit 2
classes. So whether you have same method or different, there will be compile time error.
1. class A{
2. void msg(){System.out.println("Hello");}
3. }
4. class B{
5. void msg(){System.out.println("Welcome");}
6. }
7. class C extends A,B{//suppose if it were
8.
9. public static void main(String args[]){
10. C obj=new C();
11. obj.msg();//Now which msg() method would be invoked?
12.}
13.}
Test it Now
Compile Time Error
Agregación en Java
Si una clase tiene una referencia de entidad, se conoce como agregación. La agregación representa la
relación HAS-A.
Considere una situación, el objeto Empleado contiene mucha información como id, nombre, emailId, etc.
Contiene un objeto más llamado dirección, que contiene su propia información como ciudad, estado,
país, código postal, etc., como se indica a continuación.
1. class Empleado {
2. int id;
3. Nombre de cadena;
4. Dirección Dirección; // La dirección es una clase
5. ...
6. }
En tal caso, el empleado tiene una dirección de referencia de la entidad, por lo que la relación es la
dirección del empleado HAS-A.
1. clase Operación {
2. int cuadrado ( int n) {
3. return n * n;
4. }
5. }
6.
7. círculo de clase {
8. Operación op; //agregación
9. pi doble = 3,14 ;
10.
11. área doble ( radio int ) {
12. op = nueva Operación ();
13. int rsquare = op.square (radio); // reutilización del código (es decir, delega la llamada al método).
14. return pi * rsquare;
15. }
16.
17.
18.
19. public static void main (String args []) {
20. Círculo c = nuevo Círculo ();
21. resultado doble = c.area ( 5 );
22. System.out.println (resultado);
23. }
24.}
Pruébelo ahora
Salida: 78,5
Dirección.java
1. Dirección de clase pública {
2. Cadena de ciudad, estado, país;
3.
4. dirección pública (ciudad de cadena, estado de cadena, país de cadena) {
5. esta .ciudad = ciudad;
6. este .estado = estado;
7. este .país = país;
8. }
9.
10.}
Emp.java
1. public class Emp {
2. int id;
3. Nombre de cadena;
4. Dirección Dirección;
5.
6. public Emp ( int id, String name, Address address) {
7. este .id = id;
8. este .nombre = nombre;
9. esta .dirección = dirección;
10.}
11.
12. pantalla vacía () {
13.System.out.println (id + "" + nombre);
14.System.out.println (address.city + "" + address.state + "" + address.country);
15.}
16.
17.public static void main (String [] args) {
18.Dirección address1 = nueva dirección ( "gzb" , "UP" , "india" );
19.Dirección address2 = nueva dirección ( "gno" , "UP" , "india" );
20.
21.Emp e = nuevo Emp ( 111 , "varun" , dirección1);
22.Emp e2 = nuevo Emp ( 112 , "arun" , dirección2);
23.
24.e.display ();
25.e2.display ();
26.
27.}
28.}
Pruébelo ahora
Salida: 111 varun
gzb UP india
112 arun
gno UP india
Si una clase tiene varios métodos que tienen el mismo nombre pero diferentes parámetros, se conoce
como sobrecarga de métodos .
Si tenemos que realizar una sola operación, tener el mismo nombre de los métodos aumenta la
legibilidad del programa .
Suponga que tiene que realizar la suma de los números dados, pero puede haber cualquier número de
argumentos, si escribe el método como a (int, int) para dos parámetros y b (int, int, int) para tres
parámetros, entonces Puede ser difícil para usted y para otros programadores comprender el
comportamiento del método porque su nombre es diferente.
Entonces, realizamos una sobrecarga de métodos para descubrir el programa rápidamente.
En Java, la sobrecarga de métodos no es posible cambiando solo el tipo de retorno del método.
In this example, we are creating static methods so that we don't need to create instance for calling
methods.
1. class Adder{
2. static int add(int a,int b){return a+b;}
3. static int add(int a,int b,int c){return a+b+c;}
4. }
5. class TestOverloading1{
6. public static void main(String[] args){
7. System.out.println (Sumador.add ( 11 , 11 ));
8. System.out.println (Sumador.add ( 11 , 11 , 11 ));
9. }}
Pruébelo ahora
Producción:
22
33
2) Sobrecarga de métodos: cambiar el tipo de datos de los
argumentos
En este ejemplo, hemos creado dos métodos que difieren en el tipo de datos . El primer método add
recibe dos argumentos enteros y el segundo método add recibe dos argumentos dobles.
1. class Adder {
2. static int add ( int a, int b) { return a + b;}
3. static double add ( doble a, doble b) { return a + b;}
4. }
5. class TestOverloading2 {
6. public static void main (String [] args) {
7. System.out.println (Sumador.add ( 11 , 11 ));
8. System.out.println (Adder.add ( 12.3 , 12.6 ));
9. }}
Pruébelo ahora
Producción:
22
24,9
1. class Adder {
2. static int add ( int a, int b) { return a + b;}
3. static double add ( int a, int b) { return a + b;}
4. }
5. class TestOverloading3 {
6. public static void main (String [] args) {
7. System.out.println (Sumador.add ( 11 , 11 )); //ambigüedad
8. }}
Pruébelo ahora
Producción:
Error de tiempo de compilación: el método add (int, int) ya está definido en la clase Adder
System.out.println (Sumador.add (11,11)); // Aquí, ¿cómo puede java determinar qué método sum ()
debe llamarse?
Nota: Error de tiempo de compilación es mejor que Error de tiempo de ejecución. Por lo tanto, el
compilador de Java muestra un error de tiempo del compilador si declara que el mismo método tiene
los mismos parámetros.
¿Podemos sobrecargar el método java main ()?
Sí, por sobrecarga de métodos. Puede tener cualquier número de métodos principales en una clase
mediante la sobrecarga de métodos. Pero JVM llama al método main () que recibe una matriz de cadenas
solo como argumentos. Veamos el ejemplo simple:
1. class TestOverloading4 {
2. public static void main (String [] args) {System.out.println ( "main with String []" );}
3. public static void main (String args) {System.out.println ( "main with String" );}
4. public static void main () {System.out.println ( "main sin argumentos" );}
5. }
Pruébelo ahora
Producción:
Como se muestra en el diagrama anterior, el byte se puede promover a corto, int, largo, flotante o
doble. El tipo de datos corto se puede promover a int, long, float o double. El tipo de datos char se puede
promover a int, long, float o double, etc.
Ejemplo de sobrecarga de métodos con TypePromotion
1. class OverloadingCalculation1 {
2. void sum ( int a, long b) {System.out.println (a + b);}
3. suma vacía ( int a, int b, int c) {System.out.println (a + b + c);}
4.
5. public static void main (String args []) {
6. OverloadingCalculation1 obj = nuevo OverloadingCalculation1 ();
7. obj. suma ( 20 , 20 ); // ahora el segundo literal int será promovido a largo
8. obj. suma ( 20 , 20 , 20 );
9.
10. }
11.}
Pruébelo ahora
Salida: 40
60
1. class OverloadingCalculation2 {
2. void sum ( int a, int b) {System.out.println ( "método int arg invocado" );}
3. void sum ( long a, long b) {System.out.println ( "método long arg invocado" );}
4.
5. public static void main (String args []) {
6. OverloadingCalculation2 obj = nuevo OverloadingCalculation2 ();
7. obj. suma ( 20 , 20 ); // ahora se invoca el método int arg sum ()
8. }
9. }
Pruébelo ahora
Salida: método int arg invocado
1. class OverloadingCalculation3 {
2. void sum ( int a, long b) {System.out.println ( "un método invocado" );}
3. void sum ( long a, int b) {System.out.println ( "método b invocado" );}
4.
5. public static void main (String args []) {
6. OverloadingCalculation3 obj = nuevo OverloadingCalculation3 ();
7. obj. suma ( 20 , 20 ); // ahora ambigüedad
8. }
9. }
Pruébelo ahora
Salida: Error de tiempo de compilación
Si la subclase (clase secundaria) tiene el mismo método que el declarado en la clase principal, se conoce
como anulación de método en Java .
En otras palabras, si una subclase proporciona la implementación específica del método que ha sido
declarada por una de sus clases principales, se conoce como anulación de método.
Producción:
El problema es que tengo que proporcionar una implementación específica del método run () en la
subclase, por eso usamos la anulación del método.
Producción:
Antes de Java5, no era posible anular ningún método cambiando el tipo de retorno. Pero ahora, desde
Java5, es posible anular el método cambiando el tipo de retorno si la subclase anula cualquier método
cuyo tipo de retorno sea No primitivo pero cambia su tipo de retorno al tipo de subclase. Tomemos un
ejemplo simple:
Nota: Si es un principiante en Java, omita este tema y vuelva a él después de los conceptos de OOP.
Ejemplo simple de tipo de retorno covariante
1. clase A {
2. Un get () { devuelve esto ;}
3. }
4.
5. la clase B1 extiende A {
6. B1 get () { devuelve esto ;}
7. void message () {System.out.println ( "bienvenido al tipo de retorno covariante" );}
8.
9. public static void main (String args []) {
10.nuevo B1 (). get (). message ();
11.}
12.}
Pruébelo ahora
Salida: bienvenido al tipo de retorno covariante
Como puede ver en el ejemplo anterior, el tipo de retorno del método get () de la clase A es A, pero el
tipo de retorno del método get () de la clase B es B. Ambos métodos tienen un tipo de retorno diferente
pero es un método anulado. . Esto se conoce como tipo de retorno covariante.
Siempre que crea la instancia de la subclase, se crea implícitamente una instancia de la clase principal a
la que se hace referencia mediante una variable de superreferencia.
1. super se puede utilizar para hacer referencia a la variable de instancia de la clase principal
inmediata.
1. class Animal {
2. String color = "blanco" ;
3. }
4. clase Perro extiende Animal {
5. String color = "negro" ;
6. void printColor () {
7. System.out.println (color); // imprime el color de la clase de perro
8. System.out.println ( super .color); // imprime el color de la clase Animal
9. }
10.}
11.class TestSuper1 {
12.public static void main (String args []) {
13.Perro d = perro nuevo ();
14.d.printColor ();
15.}}
Pruébelo ahora
Producción:
negro
blanco
En el ejemplo anterior, ambas clases Animal y Dog tienen un color de propiedad común. Si imprimimos
la propiedad de color, imprimirá el color de la clase actual de forma predeterminada. Para acceder a la
propiedad principal, necesitamos usar super palabra clave.
1. class Animal {
2. void eat () {System.out.println ( "comiendo ..." );}
3. }
4. clase Perro extiende Animal {
5. void eat () {System.out.println ( "comiendo pan ..." );}
6. ladrar vacío () {System.out.println ( "ladrar ..." );}
7. trabajo vacío () {
8. super .eat ();
9. ladrar();
10.}
11.}
12.class TestSuper2 {
13.public static void main (String args []) {
14.Perro d = perro nuevo ();
15.d.trabajo ();
16.}}
Pruébelo ahora
Producción:
comiendo...
ladrido...
En el ejemplo anterior, Animal y Dog, ambas clases tienen el método eat () si llamamos al método eat ()
desde la clase Dog, llamará al método eat () de la clase Dog de forma predeterminada porque se le da
prioridad a local.
Para llamar al método de la clase principal, necesitamos usar super palabra clave.
Output:
animal is created
dog is created
Note: super() is added in each class constructor automatically by compiler if there is no super() or
this().
As we know well that default constructor is provided by compiler automatically if there is no constructor.
But, it also adds super() as the first statement.
Another example of super keyword where super() is provided by the compiler implicitly.
1. class Animal{
2. Animal(){System.out.println("animal is created");}
3. }
4. class Dog extends Animal{
5. Dog(){
6. System.out.println("dog is created");
7. }
8. }
9. class TestSuper4{
10.public static void main(String args[]){
11.Dog d=new Dog();
12.}}
Test it Now
Output:
animal is created
dog is created
1. class Person {
2. int id;
3. Nombre de cadena;
4. Persona ( int id, String name) {
5. este .id = id;
6. este .nombre = nombre;
7. }
8. }
9. class Emp extiende Person {
10. salario flotante ;
11.Emp ( int id, String name, float salario) {
12.super (id, nombre); // reutilizando el constructor padre
13.este .salary = salario;
14.}
15.void display () {System.out.println (id + "" + nombre + "" + salario);}
16.}
17.class TestSuper5 {
18.public static void main (String [] args) {
19.Emp e1 = nuevo Emp ( 1 , "ankit" , 45000f);
20.e1.display ();
21.}}
Pruébelo ahora
Producción:
1 ankit 45000
1.
Instance initializer block
2. Example of Instance initializer block
3. What is invoked firstly instance initializer block or constructor?
Instance Initializer block is used to initialize the instance data member. It run each time when object o
created.
The initialization of the instance variable can be done directly but there can be performed extra operations
the instance variable in the instance initializer block.
Que) What is the use of instance initializer block while we can directly assign a value in
instance data member? For example:
1. class Bike{
2. int speed=100;
3. }
1. class Bike7{
2. int speed;
3.
4. Bike7(){System.out.println("speed is "+speed);}
5.
6. {speed=100;}
7.
8. public static void main(String args[]){
9. Bike7 b1=new Bike7();
10. Bike7 b2=new Bike7();
11. }
12.}
Test it Now
Output:speed is 100
speed is 100
There are three places in java where you can perform operations:
1. method
2. constructor
3. block
In the above example, it seems that instance initializer block is firstly invoked but NO. Instance intializer b
the time of object creation. The java compiler copies the instance initializer block in the constructor after t
super(). So firstly, constructor is invoked. Let's understand it by the figure given below:
Note: The java compiler copies the code of instance initializer block in every constructor.
1. The instance initializer block is created when instance of the class is created.
2. The instance initializer block is invoked after the parent class constructor is invoked (i.e. after
super() constructor call).
3. The instance initializer block comes in the order in which they appear.
2. Método final
3. Clase final
7. Parámetro final
La palabra clave final en Java se utiliza para restringir al usuario. La palabra clave final de Java se
puede utilizar en muchos contextos. Final puede ser:
1. variable
2. método
3. clase
La palabra clave final se puede aplicar con las variables, una variable final que no tiene valor se llama
variable final en blanco o variable final no inicializada. Solo se puede inicializar en el constructor. La
variable final en blanco también puede ser estática, que se inicializará solo en el bloque
estático. Tendremos un aprendizaje detallado de estos. Primero aprendamos los conceptos básicos de la
palabra clave final.
1) variable final de Java
Si crea alguna variable como final, no puede cambiar el valor de la variable final (será constante).
1. class Bike9 {
2. final int speedlimit = 90 ; // variable final
3. void run () {
4. límite de velocidad = 400 ;
5. }
6. public static void main (String args []) {
7. Bike9 obj = nueva Bike9 ();
8. obj.run ();
9. }
10.} // fin de clase
Pruébelo ahora
Salida: Error de tiempo de compilación
1. class Bike {
2. final void run () {System.out.println ( "corriendo ..." );}
3. }
4. clase Honda2 extiende Bike {
5. public static void main (String args []) {
6. nuevo Honda2 (). ejecutar ();
7. }
8. }
Pruébelo ahora
Salida: corriendo ...
P) ¿Qué es la variable final en blanco o sin inicializar?
Una variable final que no se inicializa en el momento de la declaración se conoce como variable final en
blanco.
Si desea crear una variable que se inicializa en el momento de crear el objeto y una vez inicializada no se
puede cambiar, es útil. Por ejemplo, el número de PAN CARD de un empleado.
1. class Bike10 {
2. final int speedlimit; // variable final en blanco
3.
4. Bike10 () {
5. límite de velocidad = 70 ;
6. System.out.println (límite de velocidad);
7. }
8.
9. public static void main (String args []) {
10. nueva Bike10 ();
11. }
12.}
Pruébelo ahora
Salida: 70
1. class Bike11 {
2. int cube ( final int n) {
3. n = n + 2 ; // no se puede cambiar ya que n es final
4. n * n * n;
5. }
6. public static void main (String args []) {
7. Bike11 b = nueva Bike11 ();
8. b.cube ( 5 );
9. }
10.}
Pruébelo ahora
Salida: Error de tiempo de compilación
Polimorfismo en Java
El polimorfismo en Java es un concepto mediante el cual podemos realizar una sola acción de
diferentes formas . El polimorfismo se deriva de 2 palabras griegas: poli y morfos. La palabra "poli"
significa muchos y "morfos" significa formas. Entonces polimorfismo significa muchas formas.
Hay dos tipos de polimorfismo en Java: polimorfismo en tiempo de compilación y polimorfismo en tiempo
de ejecución. Podemos realizar polimorfismo en Java mediante la sobrecarga de métodos y la anulación
de métodos.
Upcasting
1. clase A {}
2. la clase B extiende A {}
1. A a = nuevo B (); // upcasting
Para la conversión ascendente, podemos usar la variable de referencia de tipo de clase o un tipo de
interfaz. Por ejemplo:
1. interfaz I {}
2. clase A {}
3. clase B extiende A implementos I {}
B IS-A A
B IS-A I
Objeto B IS-A
Dado que Object es la clase raíz de todas las clases en Java, podemos escribir B IS-A Object.
Since method invocation is determined by the JVM not compiler, it is known as runtime polymorphism.
1. class Bike{
2. void run(){System.out.println("running");}
3. }
4. class Splendor extends Bike{
5. void run(){System.out.println("running safely with 60km");}
6.
7. public static void main(String args[]){
8. Bicicleta b = nuevo Esplendor (); // upcasting
9. b.run ();
10. }
11.}
Pruébelo ahora
Producción:
Nota: Este ejemplo también se proporciona en la anulación del método, pero no hubo conversión
ascendente.
1. class Bank {
2. flotar getRateOfInterest () { return 0 ;}
3. }
4. clase SBI extiende Banco {
5. flotar getRateOfInterest () { return 8 .4f;}
6. }
7. clase ICICI extiende Bank {
8. flotar getRateOfInterest () { return 7 .3f;}
9. }
10.clase AXIS extiende Banco {
11.flotar getRateOfInterest () { return 9 .7f;}
12.}
13.class TestPolymorphism {
14.public static void main (String args []) {
15.Banco b;
16.b = nuevo SBI ();
17.System.out.println ( "Tasa de interés de SBI:" + b.getRateOfInterest ());
18.b = nuevo ICICI ();
19.System.out.println ( "Tasa de interés ICICI:" + b.getRateOfInterest ());
20.b = nuevo EJE ();
21.System.out.println ( "Tasa de interés AXIS:" + b.getRateOfInterest ());
22.}
23.}
Pruébelo ahora
Producción:
Producción:
Producción:
comiendo pan...
comiendo rata ...
comer carne...
En el ejemplo que se muestra a continuación, ambas clases tienen un límite de velocidad de miembro de
datos. Estamos accediendo al miembro de datos mediante la variable de referencia de la clase principal
que se refiere al objeto de la subclase. Dado que estamos accediendo al miembro de datos que no está
anulado, siempre accederá al miembro de datos de la clase principal.
Producción:
90
1. class Animal {
2. void eat () {System.out.println ( "comiendo" );}
3. }
4. clase Perro extiende Animal {
5. void eat () {System.out.println ( "comiendo frutas" );}
6. }
7. clase BabyDog extiende Perro {
8. void eat () {System.out.println ( "beber leche" );}
9. public static void main (String args []) {
10.Animal a1, a2, a3;
11.a1 = nuevo Animal ();
12.a2 = perro nuevo ();
13.a3 = nuevo BabyDog ();
14.a1.eat ();
15.a2.eat ();
16.a3.eat ();
17.}
18.}
Pruébelo ahora
Producción:
comiendo
comiendo frutas
la leche de consumo
Pruebe la salida
1. class Animal {
2. void eat () {System.out.println ( "animal está comiendo ..." );}
3. }
4. clase Perro extiende Animal {
5. void eat () {System.out.println ( "perro está comiendo ..." );}
6. }
7. clase BabyDog1 extiende Perro {
8. public static void main (String args []) {
9. Animal a = nuevo BabyDog1 ();
10.comer ();
11.}}
Pruébelo ahora
Producción:
Dado que BabyDog no anula el método eat (), se invoca el método eat () de la clase Dog.
La conexión de una llamada a un método al cuerpo del método se conoce como enlace.
1. int datos = 30 ;
1. clase Animal {}
2.
3. clase Perro extiende Animal {
4. public static void main (String args []) {
5. Perro d1 = perro nuevo ();
6. }
7. }
Aquí d1 es una instancia de la clase Dog, pero también es una instancia de Animal.
enlace estático
Cuando el tipo de objeto se determina en tiempo de compilación (por el compilador), se conoce como
enlace estático.
Si hay algún método privado, final o estático en una clase, existe un enlace estático.
Enlace dinámico
Cuando el tipo de objeto se determina en tiempo de ejecución, se conoce como enlace dinámico.
En el ejemplo anterior, el compilador no puede determinar el tipo de objeto, porque la instancia de Dog ta
instancia de Animal, por lo que el compilador no conoce su tipo, solo su tipo base.
Instancia de Java
1. instancia de Java
3. Aplicando el operador instanceof con una variable que tienen un valor nulo
El operador java instanceof se usa para probar si el objeto es una instancia del tipo especificado
(clase, subclase o interfaz).
1. class Simple1 {
2. public static void main (String args []) {
3. Simple1 s = nuevo Simple1 ();
4. System.out.println ( instancia de Simple1); //cierto
5. }
6. }
Pruébelo ahora
Salida: verdadero
Un objeto de tipo subclase también es un tipo de clase padre. Por ejemplo, si Perro extiende Animal,
entonces el objeto de Perro puede ser referido por la clase Perro o Animal.
1. clase Animal {}
2. class Dog1 extiende Animal { // Perro hereda Animal
3.
4. public static void main (String args []) {
5. Perro1 d = nuevo Perro1 ();
6. System.out.println (d instancia de Animal); //cierto
7. }
8. }
Pruébelo ahora
Salida: verdadero
1. class Dog2 {
2. public static void main (String args []) {
3. Dog2 d = nulo ;
4. System.out.println (d instancia de Dog2); //falso
5. }
6. }
Pruébelo ahora
Salida: falso
1. clase Animal {}
2.
3. class Dog3 extiende Animal {
4. método de vacío estático (Animal a) {
5. if (una instancia de Dog3) {
6. Perro3 d = (Perro3) a; // abatimiento
7. System.out.println ( "ok downcasting realizado" );
8. }
9. }
10.
11. public static void main (String [] args) {
12. Animal a = nuevo Perro3 ();
13. Dog3.method (a);
14. }
15.
16. }
Pruébelo ahora
Salida: ok downcasting realizado
1. clase Animal {}
2. class Dog4 extiende Animal {
3. método de vacío estático (Animal a) {
4. Perro4 d = (Perro4) a; // abatimiento
5. System.out.println ( "ok downcasting realizado" );
6. }
7. public static void main (String [] args) {
8. Animal a = nuevo Perro4 ();
9. Dog4.method (a);
10. }
11.}
Pruébelo ahora
Salida: ok downcasting realizado
Echemos un vistazo más de cerca a este, el objeto real al que hace referencia a, es un objeto de la clase
Dog. Entonces, si lo abatimos, está bien. Pero que pasará si escribimos:
1. interfaz imprimible {}
2. clase A implementa Printable {
3. public void a () {System.out.println ( "un método" );}
4. }
5. clase B implementa Printable {
6. public void b () {System.out.println ( "método b" );}
7. }
8.
9. class Call {
10.void invoke (Printable p) { // upcasting
11.si (p instancia de A) {
12.A a = (A) p; // Abatimiento
13.Automóvil club británico();
14.}
15.si (p instancia de B) {
16.B b = (B) p; // Abatimiento
17.cama y desayuno();
18.}
19.
20.}
21.} // fin de la clase de llamada
22.
23.class Test4 {
24.public static void main (String args []) {
25.Imprimible p = nuevo B ();
26.Llamar c = nueva Llamar ();
27.c. invocar (p);
28.}
29.}
Pruébelo ahora
Salida: método b
Abstracción en Java
La abstracción es un proceso de ocultar los detalles de implementación y mostrar solo la funcionalidad
al usuario.
De otra forma, muestra solo cosas esenciales al usuario y oculta los detalles internos, por ejemplo,
enviando SMS donde escribes el texto y envías el mensaje. No conoces el procesamiento interno sobre la
entrega del mensaje.
2. Interface (100%)
Abstract class in Java
A class which is declared as abstract is known as an abstract class. It can have abstract and non-
abstract methods. It needs to be extended and its method implemented. It cannot be instantiated.
Points to Remember
o An abstract class must be declared with an abstract keyword.
o It cannot be instantiated.
o It can have final methods which will force the subclass not to change the body of the method.
1. abstract class A{}
1. abstract void printStatus();//no method body and abstract
1. bicicleta de clase abstracta {
2. ejecución vacía abstracta ();
3. }
4. clase Honda4 extiende Bike {
5. void run () {System.out.println ( "corriendo de forma segura" );}
6. public static void main (String args []) {
7. Bike obj = new Honda4 ();
8. obj.run ();
9. }
10.}
Pruébelo ahora
corriendo con seguridad
Comprender el escenario real de la clase abstracta
En este ejemplo, Shape es la clase abstracta y su implementación la proporcionan las clases Rectangle y
Circle.
En general, no conocemos la clase de implementación (que está oculta para el usuario final), y
el método de fábrica proporciona un objeto de la clase de implementación .
En este ejemplo, si crea la instancia de la clase Rectangle, se invocará el método draw () de la clase
Rectangle.
Archivo: TestAbstraction1.java
1. Forma de clase abstracta {
2. dibujo vacío abstracto ();
3. }
4. // En un escenario real, la implementación es proporcionada por otros, es decir, desconocida por el
usuario final
5. clase Rectángulo extiende Forma {
6. void draw () {System.out.println ( "rectángulo de dibujo" );}
7. }
8. clase Circle1 extiende Shape {
9. void draw () {System.out.println ( "círculo de dibujo" );}
10.}
11.// En un escenario real, el programador o el usuario llama al método
12.class TestAbstraction1 {
13.public static void main (String args []) {
14.Forma s = new Circle1 (); // En un escenario real, el objeto se proporciona a través del método, por
ejemplo, el método getShape ()
15.s.draw ();
16.}
17.}
Pruébelo ahora
círculo de dibujo
1. clase abstracta Bank {
2. resumen int getRateOfInterest ();
3. }
4. clase SBI extiende Banco {
5. int getRateOfInterest () { return 7 ;}
6. }
7. clase PNB extiende Bank {
8. int getRateOfInterest () { return 8 ;}
9. }
10.
11.class TestBank {
12.public static void main (String args []) {
13.Banco b;
14.b=new SBI();
15.System.out.println("Rate of Interest is: "+b.getRateOfInterest()+" %");
16.b=new PNB();
17.System.out.println("Rate of Interest is: "+b.getRateOfInterest()+" %");
18.}}
Test it Now
Rate of Interest is: 7 %
Rate of Interest is: 8 %
File: TestAbstraction2.java
Regla: si hay un método abstracto en una clase, esa clase debe ser abstracta.
1. class Bike12 {
2. ejecución vacía abstracta ();
3. }
Pruébelo ahora
error de tiempo de compilación
Regla: si está ampliando una clase abstracta que tiene un método abstracto, debe proporcionar la
implementación del método o hacer que esta clase sea abstracta.
Interfaz en Java
1. Interfaz
2. Ejemplo de interfaz
4. Por qué se admite la herencia múltiple en Interface mientras que no se admite en el caso de la clase.
5. Interfaz de marcador
6. Interfaz anidada
La interfaz en Java es un mecanismo para lograr la abstracción . Solo puede haber métodos abstractos
en la interfaz de Java, no el cuerpo del método. Se utiliza para lograr la abstracción y
la herencia múltiple en Java .
En otras palabras, puede decir que las interfaces pueden tener métodos y variables abstractos. No puede
tener un cuerpo de método.
Syntax:
1. interface <interface_name>{
2.
3. // declare constant fields
4. // declare methods that abstract
5. // by default.
6. }
In other words, Interface fields are public, static and final by default, and the methods are public and
abstract.
The relationship between classes and interfaces
As shown in the figure given below, a class extends another class, an interface extends another
interface, but a class implements an interface.
1. interface printable{
2. void print();
3. }
4. class A6 implements printable{
5. public void print(){System.out.println("Hello");}
6.
7. public static void main(String args[]){
8. A6 obj = new A6();
9. obj.print();
10. }
11.}
Test it Now
Output:
Hello
File: TestInterface1.java
1. //Interface declaration: by first user
2. interface Drawable{
3. void draw();
4. }
5. //Implementation: by second user
6. class Rectangle implements Drawable{
7. public void draw(){System.out.println("drawing rectangle");}
8. }
9. class Circle implements Drawable{
10.public void draw(){System.out.println("drawing circle");}
11.}
12.//Using interface: by third user
13.class TestInterface1{
14.public static void main(String args[]){
15.Drawable d=new Circle();//In real scenario, object is provided by method e.g. getDrawable()
16.d.draw();
17.}}
Test it Now
Output:
drawing circle
File: TestInterface2.java
1. interfaz Bank {
2. float rateOfInterest ();
3. }
4. clase SBI implementa Bank {
5. public float rateOfInterest () { return 9 .15f;}
6. }
7. clase PNB implementa Banco {
8. public float rateOfInterest () { return 9 .7f;}
9. }
10.class TestInterface2 {
11.public static void main (String [] args) {
12.Banco b = nuevo SBI ();
13.System.out.println ( "ROI:" + b.rateOfInterest ());
14.}}
Pruébelo ahora
Producción:
ROI: 9.15
1. interfaz imprimible {
2. impresión vacía ();
3. }
4. interfaz Showable {
5. mostrar vacío ();
6. }
7. clase A7 implementa Printable, Showable {
8. public void print () {System.out.println ( "Hola" );}
9. public void show () {System.out.println ( "Bienvenido" );}
10.
11.public static void main (String args []) {
12.A7 obj = nuevo A7 ();
13.obj.print ();
14.obj.show ();
15. }
16.}
Pruébelo ahora
Salida: Hola
Bienvenidos
1. interfaz imprimible {
2. impresión vacía ();
3. }
4. interfaz Showable {
5. impresión vacía ();
6. }
7.
8. clase TestInterface3 implementa Printable, Showable {
9. public void print () {System.out.println ( "Hola" );}
10.public static void main (String args []) {
11.TestInterface3 obj = new TestInterface3 ();
12.obj.print ();
13. }
14.}
Pruébelo ahora
Producción:
Hola
Como puede ver en el ejemplo anterior, la interfaz Printable y Showable tienen los mismos métodos,
pero su implementación la proporciona la clase TestTnterface1, por lo que no hay ambigüedad.
Herencia de interfaz
Una clase implementa una interfaz, pero una interfaz extiende otra interfaz.
1. interfaz imprimible {
2. impresión vacía ();
3. }
4. interfaz Showable extiende Printable {
5. mostrar vacío ();
6. }
7. clase TestInterface4 implementa Showable {
8. public void print () {System.out.println ( "Hola" );}
9. public void show () {System.out.println ( "Bienvenido" );}
10.
11.public static void main (String args []) {
12.TestInterface4 obj = new TestInterface4 ();
13.obj.print ();
14.obj.show ();
15. }
16.}
Pruébelo ahora
Producción:
Hola
Bienvenidos
Archivo: TestInterfaceDefault.java
1. interfaz Drawable {
2. dibujar vacío ();
3. default void msg () {System.out.println ( "método predeterminado" );}
4. }
5. class Rectangle implementa Drawable {
6. public void draw () {System.out.println ( "rectángulo de dibujo" );}
7. }
8. class TestInterfaceDefault {
9. public static void main (String args []) {
10.Dibujable d = nuevo Rectángulo ();
11.d.draw ();
12.d.msg ();
13.}}
Pruébelo ahora
Producción:
dibujo de rectángulo
método predeterminado
Método estático de Java 8 en la interfaz
Desde Java 8, podemos tener un método estático en la interfaz. Veamos un ejemplo:
Archivo: TestInterfaceStatic.java
1. interfaz Drawable {
2. dibujar vacío ();
3. static int cube ( int x) { return x * x * x;}
4. }
5. class Rectangle implementa Drawable {
6. public void draw () {System.out.println ( "rectángulo de dibujo" );}
7. }
8.
9. class TestInterfaceStatic {
10.public static void main (String args []) {
11.Dibujable d = nuevo Rectángulo ();
12.d.draw ();
13.System.out.println (Drawable.cube ( 3 ));
14.}}
Pruébelo ahora
Producción:
dibujo de rectángulo
27
1. interfaz imprimible {
2. impresión vacía ();
3. interfaz MessagePrintable {
4. mensaje vacío ();
5. }
6. }
Más sobre la interfaz anidada
Pero hay muchas diferencias entre la clase abstracta y la interfaz que se detallan a continuación.
5) La palabra clave abstracta se utiliza para La palabra clave interfaz se utiliza para declara
declarar la clase abstracta.
6) Una clase abstracta puede extender otra clase Una interfaz solo puede ampliar otra interfaz Ja
Java e implementar múltiples interfaces Java.
8) Una clase abstracta de Java puede tener Los miembros de una interfaz Java son públicos d
miembros de clase como privado, protegido, etc. predeterminada.
9) Ejemplo: Ejemplo:
forma de clase interfaz pública Drawable {
abstracta pública { dibujo vacío abstracto público void draw ();
(); }
}
Simplemente, la clase abstracta logra una abstracción parcial (0 a 100%) mientras que la interfaz logra
una abstracción total (100%).
Producción:
soy un
Yo soy b
Yo soy c
Yo soy d
Paquete Java
1. Paquete Java
2. Ejemplo de paquete
3. Accediendo al paquete
4. Subpaquete
9. Importación estática
El paquete en Java se puede clasificar en dos formas, paquete integrado y paquete definido por el
usuario.
Hay muchos paquetes integrados como java, lang, awt, javax, swing, net, io, util, sql, etc.
Aquí, tendremos el aprendizaje detallado de cómo crear y usar paquetes definidos por el usuario.
1) El paquete Java se utiliza para categorizar las clases y las interfaces para que se puedan mantener
fácilmente.
Si no está utilizando ningún IDE, debe seguir la sintaxis que se indica a continuación:
Por ejemplo
1. javac -d. Simple.java
El modificador -d especifica el destino donde colocar el archivo de clase generado. Puede usar cualquier
nombre de directorio como / home (en el caso de Linux), d: / abc (en el caso de Windows), etc. Si desea
mantener el paquete dentro del mismo directorio, puede usar. (punto).
Cómo ejecutar el programa de paquetes de Java
Debe usar un nombre completo, por ejemplo, mypack.Simple, etc. para ejecutar la clase.
La -d es un modificador que le dice al compilador dónde colocar el archivo de clase, es decir, representa e
destino. La . representa la carpeta actual.
1. importar paquete. *;
2. import package.classname;
3. nombre completo.
La palabra clave de importación se utiliza para hacer que las clases y la interfaz de otro paquete sean
accesibles al paquete actual.
2) Usando packagename.classname
Si importa package.classname, solo se podrá acceder a la clase declarada de este paquete.
It is generally used when two packages have same class name e.g. java.util and java.sql packages
contain Date class.
1. //save by A.java
2. package pack;
3. public class A{
4. public void msg(){System.out.println("Hello");}
5. }
1. //save by B.java
2. package mypack;
3. class B{
4. public static void main(String args[]){
5. pack.A obj = new pack.A();//using fully qualified name
6. obj.msg();
7. }
8. }
Output:Hello
Note: If you import a package, subpackages will not be imported.
If you import a package, all the classes and interface of that package will be imported excluding the
classes and interfaces of the subpackages. Hence, you need to import the subpackage as well.
Note: Sequence of the program must be package then import then class.
Subpackage in java
Package inside the package is called the subpackage. It should be created to categorize the package
further.
Let's take an example, Sun Microsystem has definded a package named java that contains many classes
like System, String, Reader, Writer, Socket etc. These classes represent a particular group e.g. Reader
and Writer classes are for Input/Output operation, Socket and ServerSocket classes are for networking
etc and so on. So, Sun has subcategorized the java package into subpackages such as lang, net, io etc.
and put the Input/Output related classes in io package, Server and ServerSocket classes in net packages
and so on.
Correr:
Para ejecutar este programa desde el directorio e: \ source, debe establecer la ruta de clase del directorio
archivo de clase.
e: \ fuentes> establecer classpath = c: \ classes;.;
Para ejecutar este programa desde el directorio e: \ source, puede usar el modificador -classpath de java
que indica dónde buscar el archivo de clase. Por ejemplo:
o Temporal
o Permanente
o Creando el archivo jar, que contiene todos los archivos de clase y copiando el archivo jar en
la carpeta jre / lib / ext.
Regla: solo puede haber una clase pública en un archivo fuente de Java y debe guardarse con el
nombre de la clase pública.
1. // guardar como C.java, de lo contrario, compilar error de tiempo
2.
3. clase A {}
4. clase B {}
5. clase pública C {}
1. Private: The access level of a private modifier is only within the class. It cannot be accessed from
outside the class.
2. Default: The access level of a default modifier is only within the package. It cannot be accessed
from outside the package. If you do not specify any access level, it will be the default.
3. Protected: The access level of a protected modifier is within the package and outside the
package through child class. If you do not make the child class, it cannot be accessed from
outside the package.
4. Public: The access level of a public modifier is everywhere. It can be accessed from within the
class, outside the class, within the package and outside the package.
There are many non-access modifiers, such as static, abstract, synchronized, native, volatile, transient,
etc. Here, we are going to learn the access modifiers only.
Access Modifier within class within package outside package by subclass only outsid
Private Y N N N
Default Y Y N N
Protected Y Y Y N
Public Y Y Y Y
1) Private
The private access modifier is accessible only within the class.
In this example, we have created two classes A and Simple. A class contains private data member and
private method. We are accessing these private members from outside the class, so there is a compile-
time error.
1. class A{
2. privado int data=40;
3. private void msg () {System.out.println ( "Hola java" );}
4. }
5.
6. public class Simple {
7. public static void main (String args []) {
8. A obj = nuevo A ();
9. System.out.println (obj.data); // Error de tiempo de compilación
10. obj.msg (); // Error de tiempo de compilación
11. }
12.}
Rol del constructor privado
Si hace que cualquier constructor de clase sea privado, no puede crear la instancia de esa clase desde
fuera de la clase. Por ejemplo:
1. clase A {
2. private A () {} // constructor privado
3. void msg () {System.out.println ( "Hola java" );}
4. }
5. public class Simple {
6. public static void main (String args []) {
7. A obj = nuevo A (); // Error de tiempo de compilación
8. }
9. }
Nota: una clase no puede ser privada ni estar protegida, excepto una clase anidada.
2) Por defecto
Si no usa ningún modificador, se trata como predeterminado de forma predeterminada. El modificador
predeterminado es accesible solo dentro del paquete. No se puede acceder desde fuera del
paquete. Proporciona más accesibilidad que privada. Pero es más restrictivo que protegido y público.
En este ejemplo, hemos creado dos paquetes pack y mypack. Estamos accediendo a la clase A desde
fuera de su paquete, ya que la clase A no es pública, por lo que no se puede acceder desde fuera del
paquete.
3) Protegido
El modificador de acceso protegido es accesible dentro y fuera del paquete, pero solo a través de la
herencia.
En este ejemplo, hemos creado los dos paquetes pack y mypack. El paquete de clase A de paquete es
público, por lo que se puede acceder desde fuera del paquete. Pero el método msg de este paquete se
declara como protegido, por lo que se puede acceder desde fuera de la clase solo a través de la herencia.
4) Público
El modificador de acceso público es accesible en todas partes. Tiene el alcance más amplio entre
todos los demás modificadores.
1. clase A {
2. protected void msg () {System.out.println ( "Hola java" );}
3. }
4.
5. clase pública Simple extiende A {
6. void msg () {System.out.println ( "Hola java" );} // CTError
7. public static void main (String args []) {
8. Obj simple = nuevo Simple ();
9. obj.msg ();
10. }
11.}
El modificador predeterminado es más restrictivo que protegido. Por eso, hay un error en tiempo de
compilación.
Encapsulación en Java
La encapsulación en Java es un proceso de empaquetar código y datos en una sola unidad , por
ejemplo, una cápsula que se mezcla con varios medicamentos.
Podemos crear una clase completamente encapsulada en Java haciendo que todos los miembros de
datos de la clase sean privados. Ahora podemos usar los métodos setter y getter para configurar y
obtener los datos en él.
Le proporciona el control sobre los datos . Supongamos que desea establecer el valor de id que debe
ser superior a 100 solamente, puede escribir la lógica dentro del método setter. Puede escribir la lógica
para no almacenar los números negativos en los métodos de establecimiento.
Es una forma de lograr la ocultación de datos en Java porque otra clase no podrá acceder a los datos a
través de los miembros de datos privados.
La clase encapsular es fácil de probar . Por lo tanto, es mejor para las pruebas unitarias.
Los IDE estándar ofrecen la posibilidad de generar captadores y definidores. Por lo tanto, es fácil y
rápido crear una clase encapsulada en Java.
Archivo: Student.java
Archivo: Test.java
Producción:
vijay
Clase de solo lectura
1. // Una clase Java que solo tiene métodos getter.
2. estudiante de clase pública {
3. // miembro de datos privados
4. colegio privado String = "AKG" ;
5. //getter method for college
6. public String getCollege(){
7. return college;
8. }
9. }
Now, you can't change the value of the college data member which is "AKG".
1. s.setCollege("KITE");//will render compile time error
Write-Only class
1. //A Java class which has only setter methods.
2. public class Student{
3. //private data member
4. private String college;
5. //getter method for college
6. public void setCollege(String college){
7. this.college=college;
8. }
9. }
Now, you can't get the value of the college, you can only change the value of college data member.
1. System.out.println(s.getCollege());//Compile Time Error, because there is no such method
2. System.out.println(s.college);//Compile Time Error, because the college data member is private.
3. //So, it can't be accessed from outside the class
Another Example of Encapsulation in Java
Let's see another example of encapsulation that has only four fields with its setter and getter methods.
File: Account.java
1. //A Account class which is a fully encapsulated class.
2. //It has a private data member and getter and setter methods.
3. class Account {
4. //private data members
5. private long acc_no;
6. private String name,email;
7. private float amount;
8. //public getter and setter methods
9. public long getAcc_no() {
10. return acc_no;
11.}
12.public void setAcc_no ( long acc_no) {
13. this .acc_no = acc_no;
14.}
15.public String getName () {
16. nombre de retorno ;
17.}
18.public void setName (nombre de cadena) {
19. este .nombre = nombre;
20.}
21.public String getEmail () {
22. devolver el correo electrónico;
23.}
24.public void setEmail (String email) {
25. este .email = correo electrónico;
26.}
27.public float getAmount () {
28. monto de devolución ;
29.}
30.public void setAmount ( cantidad flotante ) {
31. esta .cantidad = cantidad;
32.}
33.
34.}
Archivo: TestAccount.java
Producción:
Matrices de Java
Normalmente, una matriz es una colección de tipos similares de elementos que tienen una ubicación de
memoria contigua.
La matriz de Java es un objeto que contiene elementos de un tipo de datos similar. Además, los
elementos de una matriz se almacenan en una ubicación de memoria contigua. Es una estructura de
datos donde almacenamos elementos similares. Solo podemos almacenar un conjunto fijo de elementos
en una matriz de Java.
La matriz en Java está basada en índices, el primer elemento de la matriz se almacena en el índice 0, el
segundo elemento se almacena en el primer índice y así sucesivamente.
En Java, la matriz es un objeto de una clase generada dinámicamente. La matriz Java hereda la clase
Object e implementa las interfaces Serializable y Cloneable. Podemos almacenar valores u objetos
primitivos en una matriz en Java. Al igual que C / C ++, también podemos crear matrices de una o
varias dimensiones en Java.
Además, Java proporciona la función de matrices anónimas que no está disponible en C / C ++.
Ventajas
o Optimización de código: optimiza el código, podemos recuperar u ordenar los datos de manera
eficiente.
Desventajas
o Límite de tamaño: podemos almacenar solo el tamaño fijo de los elementos en la matriz. No
aumenta su tamaño en tiempo de ejecución. Para resolver este problema, se utiliza un marco de
recopilación en Java que crece automáticamente.
o Matriz multidimensional
1. dataType [] arr; (o)
2. dataType [] arr; (o)
3. dataType arr [];
Output:
10
20
70
40
50
1. int a[]={33,3,4,5};//declaration, instantiation and initialization
1. //Java Program to illustrate the use of declaration, instantiation
2. //and initialization of Java array in a single line
3. class Testarray1{
4. public static void main(String args[]){
5. int a[]={33,3,4,5};//declaration, instantiation and initialization
6. //printing array
7. for(int i=0;i<a.length;i++)//length is the property of array
8. System.out.println(a[i]);
9. }}
Test it Now
Output:
33
3
4
5
1. for(data_type variable:array){
2. //body of the loop
3. }
Let us see the example of print the elements of Java array using the for-each loop.
1. //Java Program to print the array elements using for-each loop
2. class Testarray1{
3. public static void main(String args[]){
4. int arr[]={33,3,4,5};
5. //printing array using for-each loop
6. for(int i:arr)
7. System.out.println (i);
8. }}
Producción:
33
3
4
5
Veamos el ejemplo simple para obtener el número mínimo de una matriz usando un método.
Producción:
Producción:
10
22
44
66
Producción:
10
30
50
90
60
ArrayIndexOutOfBoundsException
La máquina virtual Java (JVM) arroja una ArrayIndexOutOfBoundsException si la longitud de la matriz es
negativa, igual al tamaño de la matriz o mayor que el tamaño de la matriz mientras atraviesa la matriz.
Producción:
1. dataType [] [] arrayRefVar; (o)
2. dataType [] [] arrayRefVar; (o)
3. dataType arrayRefVar [] []; (o)
4. dataType [] arrayRefVar [];
1. arr[0][0]=1;
2. arr[0][1]=2;
3. arr[0][2]=3;
4. arr[1][0]=4;
5. arr[1][1]=5;
6. arr[1][2]=6;
7. arr[2][0]=7;
8. arr[2][1]=8;
9. arr[2][2]=9;
Example of Multidimensional Java Array
Let's see the simple example to declare, instantiate, initialize and print the 2Dimensional array.
1. //Java Program to illustrate the use of multidimensional array
2. class Testarray3{
3. public static void main(String args[]){
4. //declaring and initializing 2D array
5. int arr[][]={{1,2,3},{2,4,5},{4,4,5}};
6. //printing 2D array
7. for(int i=0;i<3;i++){
8. for(int j=0;j<3;j++){
9. System.out.print(arr[i][j]+" ");
10. }
11. System.out.println();
12.}
13.}}
Test it Now
Output:
1 2 3
2 4 5
4 4 5
1. //Java Program to illustrate the jagged array
2. class TestJaggedArray{
3. public static void main(String[] args){
4. //declaring a 2D array with odd columns
5. int arr[][] = new int[3][];
6. arr[0] = new int[3];
7. arr[1] = new int[4];
8. arr[2] = new int[2];
9. //initializing a jagged array
10. int count = 0;
11. for (int i=0; i<arr.length; i++)
12. for(int j=0; j<arr[i].length; j++)
13. arr[i][j] = count++;
14.
15. //printing the data of a jagged array
16. for (int i=0; i<arr.length; i++){
17. for (int j=0; j<arr[i].length; j++){
18. System.out.print(arr[i][j]+" ");
19. }
20. System.out.println();//new line
21. }
22. }
23.}
Test it Now
Output:
0 1 2
3 4 5 6
7 8
1. //Java Program to get the class name of array in Java
2. class Testarray4{
3. public static void main(String args[]){
4. //declaration and initialization of array
5. int arr[]={4,4,5};
6. //getting the class name of Java array
7. Class c=arr.getClass();
8. String name=c.getName();
9. //printing the class name of Java array
10.System.out.println(name);
11.
12.}}
Test it Now
Output:
1. public static void arraycopy(
2. Object src, int srcPos,Object dest, int destPos, int length
3. )
Example of Copying an Array in Java
1. //Java Program to copy a source array into a destination array in Java
2. class TestArrayCopyDemo {
3. public static void main(String[] args) {
4. //declaring a source array
5. char[] copyFrom = { 'd', 'e', 'c', 'a', 'f', 'f', 'e',
6. 'i', 'n', 'a', 't', 'e', 'd' };
7. //declaring a destination array
8. char[] copyTo = new char[7];
9. //copying array using System.arraycopy() method
10. System.arraycopy(copyFrom, 2, copyTo, 0, 7);
11. //printing the destination array
12. System.out.println(String.valueOf(copyTo));
13. }
14.}
Test it Now
Output:
caffein
1. //Java Program to clone the array
2. class Testarray1{
3. public static void main(String args[]){
4. int arr[]={33,3,4,5};
5. System.out.println("Printing original array:");
6. for(int i:arr)
7. System.out.println(i);
8.
9. System.out.println("Printing clone of the array:");
10.int carr[]=arr.clone();
11.for(int i:carr)
12.System.out.println(i);
13.
14.System.out.println("Are both equal?");
15.System.out.println(arr==carr);
16.
17.}}
Output:
1. //Java Program to demonstrate the addition of two matrices in Java
2. class Testarray5{
3. public static void main(String args[]){
4. //creating two matrices
5. int a[][]={{1,3,4},{3,4,5}};
6. int b[][]={{1,3,4},{3,4,5}};
7.
8. //creating another matrix to store the sum of two matrices
9. int c[][]=new int[2][3];
10.
11.//adding and printing addition of 2 matrices
12.for(int i=0;i<2;i++){
13.for(int j=0;j<3;j++){
14.c[i][j]=a[i][j]+b[i][j];
15.System.out.print(c[i][j]+" ");
16.}
17.System.out.println();//new line
18.}
19.
20.}}
Test it Now
Output:
2 6 8
6 8 10
1. //Java Program to multiply two matrices
2. public class MatrixMultiplicationExample{
3. public static void main(String args[]){
4. //creating two matrices
5. int a[][]={{1,1,1},{2,2,2},{3,3,3}};
6. int b[][]={{1,1,1},{2,2,2},{3,3,3}};
7.
8. //creating another matrix to store the multiplication of two matrices
9. int c[][]=new int[3][3]; //3 rows and 3 columns
10.
11.//multiplying and printing multiplication of 2 matrices
12.for(int i=0;i<3;i++){
13.for(int j=0;j<3;j++){
14.c[i][j]=0;
15.for(int k=0;k<3;k++)
16.{
17.c[i][j]+=a[i][k]*b[k][j];
18.}//end of k loop
19.System.out.print(c[i][j]+" "); //printing matrix element
20.}//end of j loop
21.System.out.println();//new line
22.}
23.}}
Test it Now
Output:
6 6 6
12 12 12
18 18 18
Related Topics
1) Java Program to copy all elements of one array into another array
12) Java Program to print the sum of all the items of the array
32) Java Program to find the frequency of odd & even numbers in the given matrix
34) Java Program to find the sum of each row and each column of a matrix
La clase Object es beneficiosa si desea hacer referencia a cualquier objeto cuyo tipo no conoce. Tenga en
cuenta que la variable de referencia de la clase principal puede hacer referencia al objeto de la clase
secundaria, conocido como upcasting.
Tomemos un ejemplo, hay un método getObject () que devuelve un objeto pero puede ser de cualquier
tipo como Empleado, Estudiante, etc., podemos usar la referencia de clase de Objeto para referir ese
objeto. Por ejemplo:
1. Objeto obj = getObject (); // no sabemos qué objeto será devuelto por este método
La clase Object proporciona algunos comportamientos comunes a todos los objetos, como el objeto se
puede comparar, el objeto se puede clonar, el objeto se puede notificar, etc.
Método Descripción
clase final pública getClass () devuelve el objeto de clase Class de este objeto
Class también se puede utilizar para obtener los
de esta clase.
public boolean es igual a (Object obj) compara el objeto dado con este objeto.
objeto protegido clone () lanza crea y devuelve la copia exacta (clon) de este o
CloneNotSupportedException
public final void notificar a todos () despierta todos los hilos, esperando en el monit
objeto.
La espera vacía final pública (tiempo de espera hace que el hilo actual espere los milisegundos
prolongado) arroja una excepción especificados, hasta que otro hilo notifique (invo
InterruptedException método notificar () o notificar a todos ()).
La espera vacía final pública (tiempo de espera hace que el hilo actual espere los milisegundos
prolongado, nanos int) lanza InterruptedException nanosegundos especificados, hasta que otro hilo
(invoca el método notificar () o notificar a todos
public final void wait () lanza InterruptedException hace que el hilo actual espere, hasta que otro h
(invoca el método notificar () o notificar a todos
vacío protegido finalizar () arroja Lanzable es invocado por el recolector de basura antes de
objeto sea recolectado.
La interfaz java.lang.Cloneable debe ser implementada por la clase cuyo objeto clon queremos
crear. Si no implementamos la interfaz Cloneable, el método clone ()
genera CloneNotSupportedException .
El método clone () se define en la clase Object. La sintaxis del método clone () es la siguiente:
1. objeto protegido clone () lanza CloneNotSupportedException
¿Por qué utilizar el método clone ()?
El método clone () guarda la tarea de procesamiento adicional para crear la copia exacta de un
objeto. Si lo realizamos usando la nueva palabra clave, llevará mucho tiempo de procesamiento
realizarlo, por eso usamos la clonación de objetos.
Aunque Object.clone () tiene algunos problemas de diseño, sigue siendo una forma popular y fácil de
copiar objetos. A continuación se muestra una lista de las ventajas de usar el método clone ():
o No es necesario escribir códigos largos y repetitivos. Simplemente use una clase abstracta con un
método clone () de 4 o 5 líneas de largo.
A continuación se muestra una lista de algunas desventajas del método clone ():
o Para usar el método Object.clone (), tenemos que cambiar muchas sintaxis de nuestro código,
como implementar una interfaz Cloneable, definir el método clone () y manejar
CloneNotSupportedException, y finalmente, llamar a Object.clone (), etc.
o Tenemos que implementar una interfaz clonable mientras no tenga ningún método. Solo tenemos
que usarlo para decirle a la JVM que podemos realizar clone () en nuestro objeto.
o Object.clone () está protegido, por lo que tenemos que proporcionar nuestro propio clone () e
indirectamente llamar a Object.clone () desde él.
o Object.clone () no invoca ningún constructor, por lo que no tenemos ningún control sobre la
construcción del objeto.
o Si desea escribir un método clon en una clase secundaria, todas sus superclases deben definir el
método clone () en ellas o heredarlo de otra clase principal. De lo contrario, la cadena super.clone
() fallará.
o Object.clone () solo admite copias superficiales, pero necesitaremos anularlo si necesitamos una
clonación profunda.
1. class Student18 implementa Cloneable {
2. int rollno;
3. Nombre de cadena;
4.
5. Student18 ( int rollno, String name) {
6. este .rollno = rollno;
7. este .nombre = nombre;
8. }
9.
10.public Object clone () lanza CloneNotSupportedException {
11.return super .clone ();
12.}
13.
14.public static void main (String args []) {
15.prueba {
16.Student18 s1 = nuevo Student18 ( 101 , "amit" );
17.
18.Student18 s2 = (Student18) s1.clone ();
19.
20.System.out.println (s1.rollno + "" + s1.name);
21.System.out.println (s2.rollno + "" + s2.name);
22.
23.} captura (CloneNotSupportedException c) {}
24.
25.}
26.}
Pruébelo ahora
Salida: 101 amit
101 amit
descargar el ejemplo de clonación de objetos
Como puede ver en el ejemplo anterior, ambas variables de referencia tienen el mismo valor. Por lo
tanto, clone () copia los valores de un objeto a otro. Entonces no necesitamos escribir código explícito
para copiar el valor de un objeto a otro.
Si creamos otro objeto por nueva palabra clave y le asignamos los valores de otro objeto, requerirá
mucho procesamiento en este objeto. Entonces, para guardar la tarea de procesamiento adicional,
usamos el método clone ().
A diferencia de algunos de los métodos numéricos de la clase StrictMath, todas las implementaciones de
la función equivalente de la clase Math no se pueden definir para devolver los mismos resultados bit por
bit. Esta relajación permite una implementación con mejor rendimiento donde no se requiere una
reproducibilidad estricta.
Si el tamaño es int o long y los resultados sobrepasan el rango de valor, los métodos addExact (),
subtractExact (), multiplyExact () y toIntExact () arrojan una ArithmeticException.
Para otras operaciones aritméticas como incremento, decremento, división, valor absoluto y
desbordamiento de negación, se produce solo con un valor mínimo o máximo específico. Debe
comprobarse con el valor máximo y mínimo según corresponda.
Ejemplo 1
1. clase pública JavaMathExample1
2. {
3. public static void main (String [] args)
4. {
5. doble x = 28 ;
6. doble y = 4 ;
7.
8. // devuelve el máximo de dos números
9. System.out.println ( "El número máximo de xey es:" + Math.max (x, y));
10.
11. // devuelve la raíz cuadrada de y
12. System.out.println ( "La raíz cuadrada de y es:" + Math.sqrt (y));
13.
14. // devuelve 28 potencia de 4, es decir, 28 * 28 * 28 * 28
15. System.out.println ( "La potencia de xey es:" + Math.pow (x, y));
16.
17. // devuelve el logaritmo del valor dado
18. System.out.println ( "El logaritmo de x es:" + Math.log (x));
19. System.out.println ( "El logaritmo de y es:" + Math.log (y));
20.
21. // devuelve el logaritmo del valor dado cuando la base es 10
22. System.out.println ( "log10 de x es:" + Math.log10 (x));
23. System.out.println ( "log10 de y es:" + Math.log10 (y));
24.
25. // devuelve el logaritmo de x + 1
26. System.out.println ( "log1p de x es:" + Math.log1p (x));
27.
28. // devuelve una potencia de 2
29. System.out.println ( "exp de un es:" + Math.exp (x));
30.
31. // return (una potencia de 2) -1
32. System.out.println ( "expm1 de un es:" + Math.expm1 (x));
33. }
34.}
Pruébelo ahora
Producción:
Producción:
El valor de seno de a es: -0,9880316240928618
El valor de coseno de a es: 0,15425144988758405
El valor de la tangente de a es: -6,405331196646276
El valor sinusoidal de a es: NaN
El valor de coseno de a es: NaN
El valor de la tangente a es: 1,5374753309166493
El valor de seno de a es: 5.343237290762231E12
El valor de coseno de a es: 5.343237290762231E12
El valor de la tangente de a es: 1.0
Método Descripción
Math.round () Se utiliza para redondear los números decimales al valor más cercano.
Math.pow () Devuelve el valor del primer argumento elevado a la potencia del segundo ar
Math.ceil () Se utiliza para encontrar el valor entero más pequeño que sea mayor o igual
entero matemático.
Math.copySign () Se utiliza para encontrar el valor absoluto del primer argumento junto con el
especificado en el segundo argumento.
Math.nextAfter () Se utiliza para devolver el número de coma flotante adyacente al primer argu
dirección del segundo argumento.
Math.nextUp () Devuelve el valor de punto flotante adyacente ad en la dirección del infinito p
Math.floor () Se utiliza para encontrar el valor entero más grande que es menor o igual qu
y es igual al entero matemático de un valor doble.
Math.floorDiv () Se utiliza para encontrar el valor entero más grande que es menor o igual qu
algebraico.
Math.random () Devuelve un valor doble con signo positivo, mayor o igual a 0.0 y menor a 1.
Math.rint () Devuelve el valor doble más cercano al argumento dado e igual a un entero m
Math.IEEEremainder () Se utiliza para calcular la operación restante en dos argumentos según lo pre
estándar IEEE 754 y devuelve el valor.
Math.addExact () Se usa para devolver la suma de sus argumentos, lanzando una excepción si
desborda un int o long.
Math.multiplyExact () Se usa para devolver el producto de los argumentos, lanzando una excepción
desborda un int o long.
Math.decrementExact Se usa para devolver el argumento decrementado en uno, lanzando una exce
() resultado desborda un int o long.
Math.negateExact () Se usa para devolver la negación del argumento, lanzando una excepción si
desborda un int o long.
Math.toIntExact () Devuelve el valor del argumento largo, lanzando una excepción si el valor de
Método Descripción
Método Descripción
Math.sin () Se utiliza para devolver el valor de seno trigonométrico de un valor doble dado.
Math.cos () Se utiliza para devolver el valor trigonométrico del coseno de un valor doble dado.
Math.tan () Se utiliza para devolver el valor de la tangente trigonométrica de un valor doble dado
Math.asin () Se utiliza para devolver el valor trigonométrico del seno del arco de un valor doble da
Math.acos () Se utiliza para devolver el valor trigonométrico del arco coseno de un valor doble dad
Math.atan () Se utiliza para devolver el valor trigonométrico del arco tangente de un valor doble d
Math.sinh () Se utiliza para devolver el valor trigonométrico del coseno hiperbólico de un valor dob
Math.cosh () Se utiliza para devolver el valor trigonométrico del seno hiperbólico de un valor doble
Método Descripción
Desde J2SE 5.0, la función de autoboxing y unboxing convierte las primitivas en objetos y los objetos
en primitivas automáticamente. La conversión automática de primitivo en un objeto se conoce como
autoboxing y viceversa unboxing.
o Cambie el valor en Método: Java solo admite llamadas por valor. Entonces, si pasamos un valor
primitivo, no cambiará el valor original. Pero, si convertimos el valor primitivo en un objeto,
cambiará el valor original.
o Serialización: Necesitamos convertir los objetos en flujos para realizar la serialización. Si
tenemos un valor primitivo, podemos convertirlo en objetos a través de las clases contenedoras.
o Sincronización: la sincronización de Java funciona con objetos en Multithreading.
o Paquete java.util: el paquete java.util proporciona las clases de utilidad para tratar con objetos.
o Marco de recopilación: el marco de recopilación de Java solo funciona con objetos. Todas las
clases del marco de la colección (ArrayList, LinkedList, Vector, HashSet, LinkedHashSet, TreeSet,
PriorityQueue, ArrayDeque, etc.) tratan solo con objetos.
Las ocho clases del paquete java.lang se conocen como clases contenedoras en Java. La lista de ocho
clases contenedoras se muestra a continuación:
boolean Boolean
char Character
byte Byte
short Short
int Integer
long Long
float Float
double Double
Autoboxing
The automatic conversion of primitive data type into its corresponding wrapper class is known as
autoboxing, for example, byte to Byte, char to Character, int to Integer, long to Long, float to Float,
boolean to Boolean, double to Double, and short to Short.
Since Java 5, we do not need to use the valueOf() method of wrapper classes to convert the primitive
into objects.
1. //Java program to convert primitive into objects
2. //Autoboxing example of int to Integer
3. public class WrapperExample1{
4. public static void main(String args[]){
5. //Converting int into Integer
6. int a=20;
7. Entero i = Integer.valueOf (a); // convertir int en Integer explícitamente
8. Entero j = a; // autoboxing, ahora el compilador escribirá Integer.valueOf (a) internamente
9.
10.System.out.println (a + "" + i + "" + j);
11.}}
Producción:
20 20 20
Desembalaje
La conversión automática del tipo de contenedor en su tipo primitivo correspondiente se conoce como
unboxing. Es el proceso inverso del autoboxing. Desde Java 5, no necesitamos usar el método intValue ()
de las clases contenedoras para convertir el tipo contenedor en primitivas.
Output:
3 3 3
Output:
1. //Creating the custom wrapper class
2. class Javatpoint{
3. private int i;
4. Javatpoint(){}
5. Javatpoint(int i){
6. this.i=i;
7. }
8. public int getValue(){
9. return i;
10.}
11.public void setValue(int i){
12.this.i=i;
13.}
14.@Override
15.public String toString() {
16. return Integer.toString(i);
17.}
18.}
19.//Testing the custom wrapper class
20.public class TestJavatpoint{
21.public static void main(String[] args){
22.Javatpoint j=new Javatpoint(10);
23.System.out.println(j);
24.}}
Output:
10
Sintaxis:
Producción:
hello
Hola
...
java.lang.StackOverflowError
Output:
hello 1
hello 2
hello 3
hello 4
hello 5
Output:
factorial(5)
factorial(4)
factorial(3)
factorial(2)
factorial(1)
return 1
return 2*1 = 2
return 3*2 = 6
return 4*6 = 24
return 5*24 = 120
Output:
1. clase Operación {
2. int datos = 50 ;
3.
4. cambio nulo ( datos int ) {
5. datos = datos + 100 ; // los cambios estarán solo en la variable local
6. }
7.
8. public static void main (String args []) {
9. Operación op = nueva Operación ();
10.
11. System.out.println ( "antes del cambio" + op.data);
12. op.change ( 500 );
13. System.out.println ( "después del cambio" + op.data);
14.
15. }
16.}
descarga este ejemplo
Salida: antes del cambio 50
después del cambio 50
1. class Operation2 {
2. int datos = 50 ;
3.
4. anular el cambio (Operación2 op) {
5. op.data = op.data + 100 ; // los cambios estarán en la variable de instancia
6. }
7.
8.
9. public static void main (String args []) {
10. Operation2 op = new Operation2 ();
11.
12. System.out.println ( "antes del cambio" + op.data);
13. op.change (op); // pasando objeto
14. System.out.println("after change "+op.data);
15.
16. }
17.}
download this example
Output:before change 50
after change 150
1. clase B {
2. Strictfp abstract void m (); // Combinación ilegal de modificadores
3. }
1. clase B {
2. estrictofp int datos = 10 ; // modificador rigidfp no permitido aquí
3. }
1. clase B {
2. estricfp B () {} // modificador estrictofp no permitido aquí
3. }
1. paquete com.abc;
2. / ** Esta clase es una clase definida por el usuario que contiene un cubo de métodos. * /
3. clase pública M {
4.
5. / ** El método del cubo imprime el cubo del número dado * /
6. cubo vacío estático público ( int n) {System.out.println (n * n * n);}
7. }
Para crear la API del documento, debe utilizar la herramienta javadoc seguida del nombre del archivo
java. No es necesario compilar el archivo java.
En el símbolo del sistema, debe escribir:
javadoc M.java
para generar la api del documento. Ahora, se crearán muchos archivos html. Abra el archivo index.html
para obtener información sobre las clases.
Los argumentos pasados desde la consola se pueden recibir en el programa java y se pueden utilizar
como entrada.
Por lo tanto, proporciona una forma conveniente de verificar el comportamiento del programa para los
diferentes valores. Puede pasar N (1,2,3 y así sucesivamente) números de argumentos desde el símbolo
del sistema.
1. class CommandLineExample {
2. public static void main (String args []) {
3. System.out.println ( "Su primer argumento es:" + args [ 0 ]);
4. }
5. }
1. compilar por> javac CommandLineExample.java
2. ejecutado por> java CommandLineExample sonoo
Resultado: Su primer argumento es: sonoo
1. clase A {
2. public static void main (String args []) {
3.
4. for(int i=0;i<args.length;i++)
5. System.out.println(args[i]);
6.
7. }
8. }
1. compile by > javac A.java
2. run by > java A sonoo jaiswal 1 3 abc
Output: sonoo
jaiswal
1
3
abc
7 Hay muchas formas de crear objetos en Java, como nueva Solo hay una forma de de
) palabra clave, método newInstance (), método clone (), método clase en java usando la pa
de fábrica y deserialización. class.
Veamos un ejemplo de la vida real de clase y objeto en Java para comprender bien la diferencia:
Clase: Humano Objeto: Hombre, Mujer
3) En caso de sobrecarga del método, el parámetro debe ser En caso de anulación del m
diferente . el parámetro debe ser el m
Cadena de Java
En Java , la cadena es básicamente un objeto que representa una secuencia de valores de
caracteres. Una matriz de caracteres funciona igual que una cadena de Java. Por ejemplo:
1. char [] ch = { 'j' , 'a' , 'v' , 'a' , 't' , 'p' , 'o' , 'i' , 'n' , 't' };
2. Cadena s = nueva Cadena (ch);
es lo mismo que:
1. String s = "javatpoint" ;
La clase Java String proporciona muchos métodos para realizar operaciones en cadenas como compare
(), concat (), equals (), split (), length (), replace (), compareTo (), intern (), substring () etc.
Interfaz CharSequence
La interfaz CharSequence se utiliza para representar la secuencia de
caracteres. Las clases String, StringBuffer y StringBuilder lo implementan. Significa que podemos crear
cadenas en Java usando estas tres clases.
La cadena de Java es inmutable, lo que significa que no se puede cambiar. Siempre que cambiamos
cualquier cadena, se crea una nueva instancia. Para cadenas mutables, puede usar las clases
StringBuffer y StringBuilder.
Hablaremos de la cadena inmutable más adelante. Primero entendamos qué es String en Java y cómo
crear el objeto String.
1) Literal de cadena
El literal de cadena de Java se crea mediante comillas dobles. Por ejemplo:
1. String s = "bienvenido" ;
Cada vez que crea un literal de cadena, la JVM comprueba primero el "grupo de constantes de
cadena". Si la cadena ya existe en el grupo, se devuelve una referencia a la instancia agrupada. Si la
cadena no existe en el grupo, se crea una nueva instancia de cadena y se coloca en el grupo. Por
ejemplo:
1. String s1 = "Bienvenido" ;
2. String s2 = "Bienvenido" ; // No crea una nueva instancia
En el ejemplo anterior, solo se creará un objeto. En primer lugar, JVM no encontrará ningún objeto de
cadena con el valor "Bienvenido" en el grupo de constantes de cadena, por eso creará un nuevo
objeto. Después de eso, encontrará la cadena con el valor "Bienvenido" en el grupo, no creará un nuevo
objeto pero devolverá la referencia a la misma instancia.
Nota: Los objetos de cadena se almacenan en un área de memoria especial conocida como "grupo de
constantes de cadena".
En tal caso, JVM creará un nuevo objeto de cadena en la memoria de pila normal (no agrupada), y la
"Bienvenida" literal se colocará en la agrupación de constantes de cadena. La variable s se referirá al
objeto en un montón (sin grupo).
Ejemplo de cadena de Java
1. public class StringExample {
2. public static void main (String args []) {
3. String s1 = "java" ; // creando cadena por literal de cadena java
4. char ch [] = { 's' , 't' , 'r' , 'i' , 'n' , 'g' , 's' };
5. Cadena s2 = nueva Cadena (ch); // convertir una matriz de caracteres en una cadena
6. String s3 = new String ( "ejemplo" ); // creando una cadena java con una nueva palabra clave
7. System.out.println (s1);
8. System.out.println (s2);
9. System.out.println (s3);
10.}}
Pruébelo ahora
Java
instrumentos de cuerda
ejemplo
6 Subcadena de cadena (int beginIndex, int endIndex) devuelve una subcadena para e
inicial y final dados.
13 Reemplazo de cadena (char antiguo, char nuevo) reemplaza todas las apariciones
char especificado.
17 String [] split (String regex, int limit) devuelve una cadena dividida q
con la expresión regular y el lím
Una vez que se crea el objeto de cadena, sus datos o su estado no se pueden cambiar, pero se crea un
nuevo objeto de cadena.
1. class Testimmutablestring {
2. public static void main (String args []) {
3. String s = "Sachin" ;
4. s.concat ( "Tendulkar" ); // el método concat () agrega la cadena al final
5. System.out.println (s); // imprimirá Sachin porque las cadenas son objetos inmutables
6. }
7. }
Pruébelo ahora
Salida: Sachin
Como puede ver en la figura anterior, se crean dos objetos, pero la variable de referencia todavía se
refiere a "Sachin", no a "Sachin Tendulkar".
1. class Testimmutablestring1 {
2. public static void main (String args []) {
3. String s = "Sachin" ;
4. s = s.concat ( "Tendulkar" );
5. System.out.println (s);
6. }
7. }
Pruébelo ahora
Salida: Sachin Tendulkar
En tal caso, s apunta al "Sachin Tendulkar". Tenga en cuenta que aún el objeto sachin no se modifica.
¿Por qué los objetos de cadena son inmutables en Java?
Debido a que java usa el concepto de literal de cadena. Suponga que hay 5 variables de referencia, todas
un objeto "sachin". Si una variable de referencia cambia el valor del objeto, se verá afectada por todas las
referencia. Es por eso que los objetos de cadena son inmutables en java.
2. Por = = operador
o public boolean equals (Object otro) compara esta cadena con el objeto especificado.
o public boolean equalsIgnoreCase (String otro) compara este String con otro string,
ignorando el caso.
1. class Teststringcomparison1 {
2. public static void main (String args []) {
3. String s1 = "Sachin" ;
4. String s2 = "Sachin" ;
5. Cadena s3 = nueva Cadena ( "Sachin" );
6. String s4 = "Saurav" ;
7. System.out.println (s1.equals (s2)); //cierto
8. System.out.println (s1.equals (s3)); //cierto
9. System.out.println (s1.equals (s4)); //falso
10. }
11.}
Pruébelo ahora
Salida: verdadero
cierto
falso
1. class Teststringcomparison2 {
2. public static void main (String args []) {
3. String s1 = "Sachin" ;
4. String s2 = "SACHIN" ;
5.
6. System.out.println (s1.equals (s2)); //falso
7. System.out.println (s1.equalsIgnoreCase (s2)); //cierto
8. }
9. }
Pruébelo ahora
Producción:
falso
cierto
Haga clic aquí para obtener más información sobre el método equals ()
1. class Teststringcomparison3 {
2. public static void main (String args []) {
3. String s1 = "Sachin" ;
4. String s2 = "Sachin" ;
5. Cadena s3 = nueva Cadena ( "Sachin" );
6. System.out.println (s1 == s2); // verdadero (porque ambos se refieren a la misma instancia)
7. System.out.println (s1 == s3); // falso (porque s3 se refiere a la instancia creada en nonpool)
8. }
9. }
Pruébelo ahora
Salida: verdadero
falso
3) Comparación de cadenas mediante el método compareTo ()
El método String compareTo () compara valores lexicográficamente y devuelve un valor entero que
describe si la primera cadena es menor, igual o mayor que la segunda cadena.
o s1 == s2 : 0
1. class Teststringcomparison4 {
2. public static void main (String args []) {
3. String s1 = "Sachin" ;
4. String s2 = "Sachin" ;
5. String s3 = "Ratan" ;
6. System.out.println (s1.compareTo (s2)); // 0
7. System.out.println (s1.compareTo (s3)); // 1 (porque s1> s3)
8. System.out.println (s3.compareTo (s1)); // - 1 (porque s3 <s1)
9. }
10.}
Pruébelo ahora
Salida: 0
1
-1
1. class TestStringConcatenation1 {
2. public static void main (String args []) {
3. Cadena s = "Sachin" + "Tendulkar" ;
4. System.out.println (s); // Sachin Tendulkar
5. }
6. }
Pruébelo ahora
Salida: Sachin Tendulkar
1. class TestStringConcatenation2 {
2. public static void main (String args []) {
3. Cadena s = 50 + 30 + "Sachin" + 40 + 40 ;
4. System.out.println (s); // 80Sachin4040
5. }
6. }
Pruébelo ahora
80Sachin4040
Nota: Después de un literal de cadena, todos los + se tratarán como un operador de concatenación de
cadenas.
2) Concatenación de cadenas mediante el método concat ()
El método String concat () concatena la cadena especificada al final de la cadena actual. Sintaxis:
1. class TestStringConcatenation3 {
2. public static void main (String args []) {
3. String s1 = "Sachin" ;
4. String s2 = "Tendulkar" ;
5. Cadena s3 = s1.concat (s2);
6. System.out.println (s3); // Sachin Tendulkar
7. }
8. }
Pruébelo ahora
Sachin Tendulkar
Subcadena en Java
Una parte de la cadena se llama subcadena . En otras palabras, la subcadena es un subconjunto de otra
cadena. En el caso de la subcadena, startIndex es inclusivo y endIndex es exclusivo.
Puede obtener una subcadena del objeto de cadena dado mediante uno de los dos métodos:
1. public String substring (int startIndex): este método devuelve un nuevo objeto String que
contiene la subcadena de la cadena dada de startIndex especificado (inclusive).
2. public String substring (int startIndex, int endIndex): este método devuelve un nuevo
objeto String que contiene la subcadena de la cadena dada desde startIndex especificado hasta
endIndex.
En caso de cadena:
o startIndex: inclusivo
o endIndex: exclusivo
1. String s = "hola" ;
2. System.out.println (s.substring ( 0 , 2 )); //él
Java String es un concepto poderoso porque todo se trata como una cadena si envía cualquier formulario
en una aplicación basada en ventana, web o móvil.
1. String s = "Sachin" ;
2. System.out.println (s.toUpperCase ()); // SACHIN
3. System.out.println (s.toLowerCase ()); // sachin
4. System.out.println (s); // Sachin (sin cambios en el original)
Pruébelo ahora
SACHIN
sachin
Sachin
1. String s = "Sachin" ;
2. System.out.println (s); // Sachin
3. System.out.println (s.trim ()); // Sachin
Pruébelo ahora
Sachin
Sachin
1. String s="Sachin";
2. System.out.println(s.charAt(0));//S
3. System.out.println(s.charAt(3));//h
Test it Now
S
h
1. String s="Sachin";
2. System.out.println(s.length());//6
Test it Now
6
1. int a = 10 ;
2. Cadena s = String.valueOf (a);
3. System.out.println (s + 10 );
Producción:
1010
1. String s1 = "Java es un lenguaje de programación. Java es una plataforma. Java es una isla". ;
2. String replaceString = s1.replace ( "Java" , "Kava" ); // reemplaza todas las apariciones de "Java" por
"Kava"
3. System.out.println (replaceString);
Producción:
Nota: La clase Java StringBuffer es segura para subprocesos, es decir, varios subprocesos no
pueden acceder a ella simultáneamente. Por lo tanto, es seguro y dará lugar a un pedido.
StringBuffer eliminar (int startIndex, is used to delete the string from specified startInde
sincronizado int endIndex) endIndex.
público
public void ensureCapacity(int is used to ensure the capacity at least equal to the
minimumCapacity) minimum.
public char charAt(int index) is used to return the character at the specified posi
public int length() is used to return the length of the string i.e. total n
characters.
public String substring(int beginIndex) is used to return the substring from the specified b
public String substring(int beginIndex, is used to return the substring from the specified b
int endIndex) and endIndex.
1. class StringBufferExample {
2. public static void main (String args []) {
3. StringBuffer sb = new StringBuffer ( "Hola" );
4. sb.append ( "Java" ); // ahora se cambia la cadena original
5. System.out.println (sb); // imprime Hola Java
6. }
7. }
2) Método StringBuffer insert ()
El método insert () inserta la cadena dada con esta cadena en la posición dada.
1. class StringBufferExample2 {
2. public static void main (String args []) {
3. StringBuffer sb = new StringBuffer ( "Hola" );
4. sb.insert ( 1 , "Java" ); // ahora se cambia la cadena original
5. System.out.println (sb); // imprime HJavaello
6. }
7. }
3) Método StringBuffer replace ()
El método replace () reemplaza la cadena dada del beginIndex y endIndex especificados.
1. class StringBufferExample3 {
2. public static void main (String args []) {
3. StringBuffer sb = new StringBuffer ( "Hola" );
4. sb.replace ( 1 , 3 , "Java" );
5. System.out.println (sb); // imprime HJavalo
6. }
7. }
4) Método StringBuffer delete ()
El método delete () de la clase StringBuffer elimina la cadena del beginIndex especificado al endIndex.
1. class StringBufferExample4 {
2. public static void main (String args []) {
3. StringBuffer sb = new StringBuffer ( "Hola" );
4. sb.delete ( 1 , 3 );
5. System.out.println (sb); // imprime Hlo
6. }
7. }
5) Método StringBuffer reverse ()
El método reverse () de la clase StringBuilder invierte la cadena actual.
1. class StringBufferExample5 {
2. public static void main (String args []) {
3. StringBuffer sb = new StringBuffer ( "Hola" );
4. sb.reverse ();
5. System.out.println (sb); // imprime olleH
6. }
7. }
6) Método StringBuffer capacity ()
El método capacity () de la clase StringBuffer devuelve la capacidad actual del búfer. La capacidad
predeterminada del búfer es 16. Si el número de caracteres aumenta con respecto a su capacidad actual,
aumenta la capacidad en (capacidad anterior * 2) +2. Por ejemplo, si su capacidad actual es 16, será
(16 * 2) + 2 = 34.
1. class StringBufferExample6 {
2. public static void main (String args []) {
3. StringBuffer sb = new StringBuffer ();
4. System.out.println (sb.capacity ()); // por defecto 16
5. sb.append ( "Hola" );
6. System.out.println (sb.capacity ()); // ahora 16
7. sb.append ( "java es mi idioma favorito" );
8. System.out.println (sb.capacity ()); // ahora (16 * 2) + 2 = 34 es decir (capacidad anterior * 2) +2
9. }
10.}
7) Método StringBuffer asegurarCapacidad ()
El método secureCapacity () de la clase StringBuffer asegura que la capacidad dada es el mínimo de la
capacidad actual. Si es mayor que la capacidad actual, aumenta la capacidad en (capacidad anterior * 2)
+2. Por ejemplo, si su capacidad actual es 16, será (16 * 2) + 2 = 34.
1. class StringBufferExample7 {
2. public static void main (String args []) {
3. StringBuffer sb = new StringBuffer ();
4. System.out.println (sb.capacity ()); // por defecto 16
5. sb.append ( "Hola" );
6. System.out.println (sb.capacity ()); // ahora 16
7. sb.append ( "java es mi idioma favorito" );
8. System.out.println (sb.capacity ()); // ahora (16 * 2) + 2 = 34 es decir (capacidad anterior * 2) +2
9. sb.ensureCapacity ( 10 ); // ahora sin cambios
10.System.out.println (sb.capacity ()); // ahora 34
11.sb.ensureCapacity ( 50 ); // ahora (34 * 2) +2
12.System.out.println (sb.capacity ()); // ahora 70
13.}
14.}
Constructor Descripción
StringBuilder (longitud int) crea un generador de cadenas vacío con la capacidad especificada com
Método Descripción
agregado de StringBuilder público se utiliza para agregar la cadena especificada con esta cadena.
(String s) append () está sobrecargado como append (char), append (boo
(int), append (float), append (doble), etc.
inserción pública de StringBuilder se utiliza para insertar la cadena especificada con esta cadena e
(int offset, String s) especificada. El método insert () está sobrecargado como insert
insert (int, boolean), insert (int, int), insert (int, float), insert (in
public StringBuilder delete (int se utiliza para eliminar la cadena de startIndex y endIndex espe
startIndex, int endIndex)
public void asegurarCapacidad (int se utiliza para asegurar que la capacidad sea al menos igual al m
mínimaCapacidad)
charAt pública (índice int) se utiliza para devolver el carácter a la posición especificada.
public int length () se utiliza para devolver la longitud de la cadena, es decir, el núm
caracteres.
subcadena de cadena pública (int se utiliza para devolver la subcadena del beginIndex especificad
beginIndex)
subcadena de cadena pública (int se utiliza para devolver la subcadena del beginIndex y endIndex
beginIndex, int endIndex)
1. class StringBuilderExample {
2. public static void main (String args []) {
3. StringBuilder sb = new StringBuilder ( "Hola" );
4. sb.append ( "Java" ); // ahora se cambia la cadena original
5. System.out.println (sb); // imprime Hola Java
6. }
7. }
2) Método insert () de StringBuilder
El método insert () de StringBuilder inserta la cadena dada con esta cadena en la posición dada.
1. class StringBuilderExample2 {
2. public static void main (String args []) {
3. StringBuilder sb = new StringBuilder ( "Hola" );
4. sb.insert ( 1 , "Java" ); // ahora se cambia la cadena original
5. System.out.println (sb); // imprime HJavaello
6. }
7. }
3) Método de reemplazo () de StringBuilder
El método replace () de StringBuilder reemplaza la cadena dada del beginIndex y endIndex
especificados.
1. class StringBuilderExample3 {
2. public static void main (String args []) {
3. StringBuilder sb = new StringBuilder ( "Hola" );
4. sb.replace ( 1 , 3 , "Java" );
5. System.out.println (sb); // imprime HJavalo
6. }
7. }
4) Método delete () de StringBuilder
El método delete () de la clase StringBuilder elimina la cadena del beginIndex especificado al endIndex.
1. class StringBuilderExample4 {
2. public static void main (String args []) {
3. StringBuilder sb = new StringBuilder ( "Hola" );
4. sb.delete ( 1 , 3 );
5. System.out.println (sb); // imprime Hlo
6. }
7. }
5) Método StringBuilder reverse ()
El método reverse () de la clase StringBuilder invierte la cadena actual.
1. class StringBuilderExample5 {
2. public static void main (String args []) {
3. StringBuilder sb = new StringBuilder ( "Hola" );
4. sb.reverse ();
5. System.out.println (sb); // imprime olleH
6. }
7. }
6) Método de capacidad () de StringBuilder
El método capacity () de la clase StringBuilder devuelve la capacidad actual del Builder. La capacidad
predeterminada del Constructor es 16. Si el número de caracteres aumenta con respecto a su capacidad
actual, aumenta la capacidad en (capacidad anterior * 2) +2. Por ejemplo, si su capacidad actual es 16,
será (16 * 2) + 2 = 34.
1. class StringBuilderExample6 {
2. public static void main (String args []) {
3. StringBuilder sb = nuevo StringBuilder ();
4. System.out.println (sb.capacity ()); // por defecto 16
5. sb.append ( "Hola" );
6. System.out.println (sb.capacity ()); // ahora 16
7. sb.append ( "java es mi idioma favorito" );
8. System.out.println (sb.capacity ()); // ahora (16 * 2) + 2 = 34 es decir (capacidad anterior * 2) +2
9. }
10.}
7) Método StringBuilder sureCapacity ()
El método secureCapacity () de la clase StringBuilder asegura que la capacidad dada es el mínimo de la
capacidad actual. Si es mayor que la capacidad actual, aumenta la capacidad en (capacidad anterior * 2)
+2. Por ejemplo, si su capacidad actual es 16, será (16 * 2) + 2 = 34.
1. class StringBuilderExample7 {
2. public static void main (String args []) {
3. StringBuilder sb = nuevo StringBuilder ();
4. System.out.println (sb.capacity ()); // por defecto 16
5. sb.append ( "Hola" );
6. System.out.println (sb.capacity ()); // ahora 16
7. sb.append ( "java es mi idioma favorito" );
8. System.out.println (sb.capacity ()); // ahora (16 * 2) + 2 = 34 es decir (capacidad anterior * 2) +2
9. sb.ensureCapacity ( 10 ); // ahora sin cambios
10.System.out.println (sb.capacity ()); // ahora 34
11.sb.ensureCapacity ( 50 ); // ahora (34 * 2) +2
12.System.out.println (sb.capacity ()); // ahora 70
13.}
14.}
1. InstanceTest de clase pública {
2. público estático void main(String args[]){
3. System.out.println ( "Prueba de código hash de cadena:" );
4. String str = "java" ;
5. System.out.println (str.hashCode ());
6. str = str + "tpoint" ;
7. System.out.println (str.hashCode ());
8.
9. System.out.println ( "Prueba de código hash de StringBuffer:" );
10. StringBuffer sb = new StringBuffer ( "java" );
11. System.out.println (sb.hashCode ());
12. sb.append ( "tpoint" );
13. System.out.println (sb.hashCode ());
14. }
15.}
Prueba de
código
hash de String: 3254818
229541438 Prueba de código hash de StringBuffer:
118352462
118352462
Ejemplo de StringBuilder
1. // Programa Java para demostrar el uso de la clase StringBuilder.
2. public class BuilderTest {
3. public static void main (String [] args) {
4. Generador de StringBuilder = nuevo StringBuilder ( "hola" );
5. constructor.append ( "java" );
6. System.out.println (constructor);
7. }
8. }
holajava
1. Empleado público de clase final {
2. final String pancardNumber;
3.
4. Empleado público (String pancardNumber) {
5. este .pancardNumber = pancardNumber;
6. }
7.
8. public String getPancardNumber () {
9. return pancardNumber;
10.}
11.
12.}
1. clase estudiante {
2. int rollno;
3. Nombre de cadena;
4. Ciudad de cuerdas;
5.
6. Estudiante ( int rollno, nombre de cadena, ciudad de cadena) {
7. este .rollno = rollno;
8. este .nombre = nombre;
9. esta .ciudad = ciudad;
10. }
11.
12. public static void main (String args []) {
13. Estudiante s1 = nuevo Estudiante ( 101 , "Raj" , "lucknow" );
14. Estudiante s2 = nuevo Estudiante ( 102 , "Vijay" , "ghaziabad" );
15.
16. System.out.println (s1); // el compilador escribe aquí s1.toString ()
17. System.out.println (s2); // el compilador escribe aquí s2.toString ()
18. }
19.}
Salida: Student @ 1fee6fc
Estudiante @ 1eed786
Como puede ver en el ejemplo anterior, la impresión de s1 y s2 imprime los valores del código hash de los
quiero imprimir los valores de estos objetos. Dado que el compilador de Java llama internamente al métod
anular este método devolverá los valores especificados. Entendamos con el ejemplo que se da a continuac
1. clase estudiante {
2. int rollno;
3. Nombre de cadena;
4. Ciudad de cuerdas;
5.
6. Estudiante ( int rollno, nombre de cadena, ciudad de cadena) {
7. este .rollno = rollno;
8. este .nombre = nombre;
9. esta .ciudad = ciudad;
10. }
11.
12. public String toString () { // anulando el método toString ()
13. return rollno + "" + nombre + "" + ciudad;
14. }
15. public static void main (String args []) {
16. Estudiante s1 = nuevo Estudiante ( 101 , "Raj" , "lucknow" );
17. Student s2=new Student(102,"Vijay","ghaziabad");
18.
19. System.out.println(s1);//compiler writes here s1.toString()
20. System.out.println(s2);//compiler writes here s2.toString()
21. }
22.}
download this example of toString method
Output:101 Raj lucknow
102 Vijay ghaziabad
StringTokenizer en Java
1. StringTokenizer
2. Métodos de StringTokenizer
3. Ejemplo de StringTokenizer
No proporciona la posibilidad de diferenciar números, cadenas entre comillas, identificadores, etc., como
la clase StreamTokenizer. Discutiremos sobre la clase StreamTokenizer en el capítulo de E / S.
Constructor Descripción
StringTokenizer (String str, crea StringTokenizer con una cadena especificada, delimitador y retur
String delim, boolean valor devuelto es verdadero, los caracteres delimitadores se considera
returnValue) es falso, los caracteres delimitadores sirven para separar tokens.
1. import java.util.StringTokenizer;
2. public class Simple {
3. public static void main (String args []) {
4. StringTokenizer st = new StringTokenizer ( "mi nombre es khan" , "" );
5. while (st.hasMoreTokens ()) {
6. System.out.println (st.nextToken ());
7. }
8. }
9. }
Salida: mi
nombre
es
kan
Respuesta: solo uno.
Producción:
tnioptavaj si siht
nitin
Producción:
cierto
Aporte:
jatin
Producción:
falso
esto es javatpoint
Producción:
Esto es Javatpoint
esto es javatpoint
Producción:
siht si tnioptavaj
esto es javatpoint
Producción:
ESTE ES JAVATPOINT
esto es javatpoint
Producción:
sIHT sI tNIOPTAVAJ
o Programas de árboles
27) Programa Java para encontrar la raíz cuadrada de un número sin el método sqrt
28) Programa Java para intercambiar dos números usando el operador bit a bit
31) Programa Java para encontrar el menor de tres números usando el operador ternario
6) Programa Java para imprimir los elementos de una matriz en orden inverso
7) Programa Java para imprimir los elementos de una matriz presente en una posición pareja
8) Programa Java para imprimir los elementos de una matriz presente en una posición impar
14) Programa Java para ordenar los elementos de una matriz en orden ascendente
15) Programa Java para ordenar los elementos de una matriz en orden descendente
16) Programa Java para encontrar el tercer número más grande en una matriz
17) Programa Java para encontrar el segundo número más grande en una matriz
19) Java para programar Encuentra el segundo número más pequeño en una matriz
22) Programa Java para imprimir números pares e impares desde una matriz
8) Programa Java para encontrar la frecuencia de números pares e impares en la matriz dada
10) Programa Java para encontrar la suma de cada fila y cada columna de una matriz
12) Programa Java para determinar si una matriz dada es una matriz de identidad
13) Programa Java para determinar si una matriz dada es una matriz dispersa
3) Programa Java para contar el número total de caracteres de puntuación que existe en una
cadena
4) Programa Java para contar el número total de vocales y consonantes en una cadena
8) Programa Java para encontrar la secuencia repetida más larga en una cadena
9) Programa Java para encontrar todas las permutaciones de una cadena
10) Programa Java para eliminar todos los espacios en blanco de una cadena
12) Programa Java para reemplazar los espacios de una cadena con un carácter específico
20) Programa Java para encontrar la palabra más grande y más pequeña en una cadena
24) Programa Java para intercambiar dos variables de cadena sin usar una tercera variable o
variable temporal.
25) Programa Java para imprimir la palabra palíndromo más pequeña y más grande posible en
una cadena determinada
3) Programa Java para crear una lista enlazada individualmente de n nodos y contar el número
de nodos
4) Programa Java para crear una lista enlazada de n nodos y mostrarla en orden inverso
5) Programa Java para eliminar un nodo del principio de la lista enlazada individualmente
6) Programa Java para eliminar un nodo del medio de la lista enlazada individualmente
7) Programa Java para eliminar un nodo del final de la lista enlazada individualmente
9) Programa Java para encontrar el nodo de valor máximo y mínimo de una lista vinculada
10) Programa Java para insertar un nuevo nodo en el medio de la lista enlazada individualmente
11) Programa Java para insertar un nuevo nodo al comienzo de la lista enlazada individualmente
12) Programa Java para insertar un nuevo nodo al final de la lista enlazada individualmente
13) Programa Java para eliminar elementos duplicados de una lista enlazada individualmente
2) Programa Java para crear una lista enlazada circular de N nodos y contar el número de nodos
3) Programa Java para crear una lista enlazada circular de n nodos y mostrarla en orden inverso
4) Programa Java para eliminar un nodo del principio de la lista enlazada circular
5) Programa Java para eliminar un nodo del final de la lista enlazada circular
6) Programa Java para eliminar un nodo del medio de la lista enlazada circular
7) Programa Java para encontrar el nodo de valor máximo y mínimo de una lista enlazada
circular
8) Programa Java para insertar un nuevo nodo al comienzo de la Circular Linked List
9) Programa Java para insertar un nuevo nodo al final de la Lista Enlazada Circular
10) Programa Java para insertar un nuevo nodo en el medio de la Lista Enlazada Circular
11) Programa Java para eliminar elementos duplicados de una lista enlazada circular
2) Programa Java para crear una lista doblemente enlazada a partir de un árbol ternario
3) Programa Java para crear una lista doblemente enlazada de n nodos y contar el número de
nodos
4) Programa Java para crear una lista doblemente enlazada de n nodos y mostrarla en orden
inverso
6) Programa Java para eliminar un nuevo nodo desde el principio de la lista doblemente
enlazada
7) Programa Java para eliminar un nuevo nodo del final de la lista doblemente enlazada
8) Programa Java para eliminar un nuevo nodo del medio de la lista doblemente enlazada
9) Programa Java para encontrar el nodo de valor máximo y mínimo de una lista doblemente
enlazada
10) Programa Java para insertar un nuevo nodo al comienzo de la lista Doblemente Vinculada
10) Programa Java para insertar un nuevo nodo al final de la Lista Doblemente Vinculada
12) Programa Java para insertar un nuevo nodo en el medio de la Lista Doblemente Vinculada
13) Programa Java para eliminar elementos duplicados de una lista doblemente enlazada
4) programa Java para determinar si todas las hojas están al mismo nivel
9) Programa Java para encontrar los nodos que están a la distancia máxima en un árbol binario
11) programa Java para encontrar la suma de todos los nodos de un árbol binario
12) Programa Java para encontrar el número total de posibles árboles de búsqueda binaria con
teclas N