Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Class MiClase{
Private int datoPrivado;
Public void ponerDato(int valor){
this.datoPrivado=valor;
}
Public int devolverDato(){
Return this.datoPrivado;
}
}
Public Class Melo {
Public Static void main(String[] args) {
// TODO code application logic here
MiClase instancia = New MiClase();
instancia.ponerDato(12345);
System.out.println(instancia.devolverDato());
}
}
Public Class Melo {
Public Static void main(String[] args) {
// TODO code application logic here
MiClase instancia = New MiClase();
instancia.valorPublico=17;
MiClase otraVariable = instancia;
System.out.println("Otra variable: "+otraVariable.valorPublico);
System.out.println("Instancia: "+instancia.valorPublico);
}
Public Class Ejercicio2 {
Public Static void main(String[] args) {
// TODO code application logic here
Constantes
Class MiClase{
Static final Double VALORCONSTANTE=2.7812431;
}
Public Class Ejercicio3 {
Public Static void main(String[] args) {
// TODO code application logic here
MiClase instancia = New MiClase();
System.out.println(instancia.VALORCONSTANTE);
}
}
Constructores y destructores
Class MiClase{
MiClase(){
System.out.println("Ejecuta al instanciar un objeto ");
}
}
Public Class JavaApplication20 {
}
El constructor puede tener parámetros
Class MiClase{
String valorPublico;
MiClase(String valor ){
this.valorPublico=valor;
}
void gc() {
Throw New UnsupportedOperationException("Not supported yet."); //To change
body Of generated methods, choose Tools | Templates.
}
}
Public Class ConstructoresyDestructores {
Public Static void main(String[] args) {
MiClase objeto = New MiClase("Hola Mundo");
System.out.println(objeto.valorPublico);
Destructor
http://labojava.blogspot.com/2012/05/constructores-y-destructores.html
Un constructor con parámetros con valores por defecto
- En java no se permite la asignación de valores por defectos dentro del constructor,
pero se podría realizar asi el ejercicio propuesto en php , haciendo polimorfismo.
Class MiClase{
Public String valorA;
Public String valorB;
Public String valorC;
MiClase(String valorA,String valorB,String valorC){
this.valorA=valorA;
this.valorB=valorB;
this.valorC=valorC;
}
MiClase(String valorA,String valorB){
this.valorA=valorA;
this.valorB=valorB;
this.valorC="Sardina";
}
MiClase(String valorA){
this.valorA=valorA;
this.valorB="Pez Espada";
this.valorC="Sardina";
}
Public void Imprime(){
System.out.println(this.valorA+" .."+this.valorB+" .. "+this.valorC);
}
}
Public Class OBJETOCLASEINSTANCIA {
Public Static void main(String[] args) {
MiClase probar = New MiClase("Bagre");
probar.Imprime();
}
}
Cambiando la instrucción que instancia con dos parámetros sucede.
Class MiClase{
Public String valorA;
Public String valorB;
Public String valorC;
MiClase(String valorA,String valorB,String valorC){
this.valorA=valorA;
this.valorB=valorB;
this.valorC=valorC;
}
MiClase(String valorA,String valorB){
this.valorA=valorA;
this.valorB=valorB;
this.valorC="Sardina";
}
MiClase(String valorA){
this.valorA=valorA;
this.valorB="Pez Espada";
this.valorC="Sardina";
}
Public void Imprime(){
System.out.println(this.valorA+" .."+this.valorB+" .. "+this.valorC);
}
}
Public Class OBJETOCLASEINSTANCIA {
Public Static void main(String[] args) {
MiClase probar = New MiClase("Bagre", "Delfin");
probar.Imprime();
}
}
Instancia un objeto dentro de otra clase y accede a los atributos
Class MiClase{
Public Double valorPublico;
}
Class OtraClase{
}
}
Llamando un método desde otra clase
Class MiClase{
}
Recibe un objeto como parámetro de una función
Class MiClase{
Public String valorPublico;
}
Public Class Ejercico12 {
Public Static void Imprimir(Object objeto){
MiClase p = (MiClase)objeto;
p=(MiClase) objeto;
System.out.println(p.valorPublico);
}
Public Static void main(String[] args) {
MiClase probar = New MiClase();
probar.valorPublico="Esta es una prueba...";
Imprimir(probar);
}
}
Clonando objetos
package clonar;
Class Clonamiento{
Public String valora;
Public Double valorb;
}
Class Clonamiento2 Implements Cloneable
{
Public String valora;
Public Double valorb;
Clonamiento copia = New Clonamiento();
Public Object clone() throws
CloneNotSupportedException
{
Return super.clone();
}
}
Public Class Clonar {
}
Detectar instancias
Class MiClase Implements Clonable{
Public String valorPublico;
}
Class OtraClase{
Public void Imprimir(){
System.out.println("Esto es una prueba");
}
}
Public Class Ejercicio13 {
Métodos estáticos
Class MiClase{
Public Static void Imprimir(){
System.out.println("Hola mundo\n\n");
}
Public Static int sumar(int valA,int valB){
Return valA + valB;
}
}
Public Class Ejercicio14 {
Public Static void main(String[] args) {
MiClase.Imprimir();
int resultado = MiClase.sumar(17, 50);
System.out.println(resultado);
}
}
Serializar un objeto
package parcial;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.Serializable;
import java.util.*;
Class MiClase Implements java.io.Serializable {
Public int valora;
Public String valorb;
Public int valorc;
}
}
out.close();
file.close();
}
Catch(IOException ex)
{
System.out.println("IOException is caught");
}
Try
{
// Reading the object from a file
FileInputStream file = New FileInputStream(cadena);
ObjectInputStream in = New ObjectInputStream(file);
Class MiClase{
Private int valorA;
Private int valorB;
Class MiClase{
Public String valorA="público";
Protected String valorB="protegido";
Private String valorC="privado";
}
Class ClaseHija extends MiClase{
Public void Metodo(){
System.out.println(this.valorA);
System.out.println(this.valorB);
System.out.println(this.valorC);//Dará error: undefined
}
}
Public Class Herencia2 {
Public Static void main(String[] args) {
ClaseHija probar = New ClaseHija();
probar.Metodo();
}
}
Reacción a mismo método en clase padre e hija
Class MiClase{
Public void Imprimir(){
System.out.println("Texto de la clase padre");
}
}
Class ClaseHija extends MiClase{
Class MiClase{
Public void Imprimir(){
System.out.println("Texto de la clase padre");
}
}
Class ClaseHija extends MiClase{
}
Un cuidado a tener es que los métodos deben tener el mismo número de parámetros, ver
el siguiente código: (EN EL CASO DE JAVA SI FUNCIONA)
Class MiClase{
Public void UnaFuncion(int valor){
System.out.println("Padre, recibe "+ valor);
}
}
Class ClaseHija extends MiClase{
Public void UnaFuncion(int valorA,int valorB){
System.out.println("Hija recibe: "+ valorA+", "+valorB);
}
}
Public Class Herencia {
Public Static void main(String[] args) {
ClaseHija probar = New ClaseHija();
probar.UnaFuncion(56,78);//En java lo permite si en caso de pasar un
parametro llama al metodo
//de la clase padre , si pasa 2 pues llama al
metodo de la clase Hija
}
}
Reacción a constructores en clase padre e hija
Como php es un lenguaje no tipado tiene una forma para identificar
internamente a que constructor se esta refiriendo(hija o padre)
java al tener al mismo nombre del constructor llama a los dos.
Class MiClase{
Public MiClase(int valorA, int valorB){
System.out.println("Padre, recibe: "+ valorA+", "+valorB);
}
}
Class ClaseHija extends MiClase{
Public ClaseHija(int valorA, int valorB) {
super(valorA, valorB);
System.out.println("Hija, recibe: "+ valorA+", "+valorB);
}
}
Public Class ReacciónAConstructoresEnClasePadreEHija {
}
Variando el código para que también ejecute el constructor de la clase padre
Class MiClase{
Public MiClase(int valorA, int valorB){
System.out.println("Padre, recibe: "+ valorA+", "+valorB);
}
}
Class ClaseHija extends MiClase{
Public ClaseHija(int valorA, int valorB) {
super(valorA, valorB);
System.out.println("Hija, recibe: "+ valorA+", "+valorB);
}
}
Public Class ReacciónAConstructoresEnClasePadreEHija {
Clases abstractas
abstract Class MiClase{
Public void operar(int valorA,int valorB){
System.out.println("Padre, recibe: "+ valorA+", "+valorB);
}
}
Class ClaseHija extends MiClase{
Public void Imprimir(){
System.out.println("Hola Mundo");
}
}
Public Class ClasesAbstractas {
Public Static void main(String[] args) {
ClaseHija probar = New ClaseHija();
probar.Imprimir();
probar.operar(123, 678);
MiClase otro = New MiClase();
}
Métodos abstractos
}
Public Class MetodosAbstractos {
Public Static void main(String[] args) {
ClaseHija probar = New ClaseHija();
probar.Imprimir(234,678);
probar.operar();
}
}
Evitar la herencia
final Class MiClase{
Public void Imprimir(){
System.out.println("Texto de la clase padre");
}
}
//Se intenta acceder herencia y genera error
Class ClaseHija extends MiClase{
@Override
Public void Imprimir(){
System.out.println("Sobreescribo el metodo ");
}
}
Public Class EvitarLaHerencia {
}
Lista de objetos
import java.util.ArrayList;
Class Nodo {
Private Double valor;
Private Char letra;
Private String cadena;
/**
* @return the valor
*/
Public Double getValor() {
Return valor;
}
/**
* @param valor the valor to set
*/
Public void setValor(Double valor) {
this.valor = valor;
}
/**
* @return the letra
*/
Public Char getLetra() {
Return letra;
}
/**
* @param letra the letra to set
*/
Public void setLetra(Char letra) {
this.letra = letra;
}
/**
* @return the cadena
*/
Public String getCadena() {
Return cadena;
}
/**
* @param cadena the cadena to set
*/
Public void setCadena(String cadena) {
this.cadena = cadena;
}
}
Class Main {
Public Static void main(String[] args) {
//Declara la lista que almacenará objetos
ArrayList<Nodo> Objetos = New ArrayList<>();
Objetos.get(0).Imprime();
}
}
https://repl.it/@AndresRojas/Estructura
Otra forma de crear una lista de objetos sin usar la instrucción array_push
No se puede agregar un valor objeto a una lista sin un add en java ya que el método add es
obligario para añadir elementos a la lista de objetos.
import java.util.ArrayList;
Class Nodo {
Private Double valor;
Private Char letra;
Private String cadena;
/**
* @return the valor
*/
Public Double getValor() {
Return valor;
}
/**
* @param valor the valor to set
*/
Public void setValor(Double valor) {
this.valor = valor;
}
/**
* @return the letra
*/
Public Char getLetra() {
Return letra;
}
/**
* @param letra the letra to set
*/
Public void setLetra(Char letra) {
this.letra = letra;
}
/**
* @return the cadena
*/
Public String getCadena() {
Return cadena;
}
/**
* @param cadena the cadena to set
*/
Public void setCadena(String cadena) {
this.cadena = cadena;
}
}
Class Main {
Public Static void main(String[] args) {
//Declara la lista que almacenará objetos
ArrayList<Nodo> Objetos = New ArrayList<>();
}
}
Polimorfismo