jueves, 30 de enero de 2014

Fuerza bruta sin diccionarios en Linux

Una de las practicas mas conocidas en el mundo del pentest es la brute force o fuerza bruta en español,no soy muy fan de esta practica ya que el tiempo que requiere es mucho,dependiendo de la longitud de la contraseña que queramos forzar,pero aun así lo podemos hacer con estilo,por ejemplo hay algoritmos que comienzan desde un carácter hasta los que queramos haciendo esto ascendentemente,por ejemplo:

1
2
3
4
5
6
7
...
12
...
1a
1b
1c
1d
...
9d
9f
..
ddddea
ddddeb
...etc

Esto seria muy poco usual comenzar desde un carácter,lo mas común es desde 4,pero bueno a lo que me refiero es que podemos ahorrarnos tiempo haciendo uso de la ingeniería social,por ejemplo la contraseña es una banda de música(ya que muchos usan contraseñas de cosas que les gustan),por ejemplo Metallica,pero también supongamos que tiene números,por ejemplo esta seria una contraseña:

metallica123

Si investigamos un poco sabemos que esa banda de música podría ser una posible contraseña,ahora si investigamos el sitio que pide las contraseñas podemos saber las reglas,por ejemplo Apple pide una letra mayúscula por lo menos y un numero,así que podría ser así:

Metallica3

Bien,si quisiéramos brutear eso como mencione arriba perderíamos horas en llegar a ese numero de caracteres y que comience con M,ahora como disminuimos el tiempo?

Fácil podemos usar una solución que le asignemos los caracteres que queremos usar y el numero de ellos,por ejemplo seria así:

La M

la e

la t

la a

la l

la i

la c

y los números del 0 al 4

Esto aun así es muy tardado ya que son 10 caracteres (mil millones),pero reduciremos el tiempo bastante,ya que no perderemos el tiempo en contraseñas como:

abcw

Bien como se hace esto en linux?

Existen varios programas,pero ami el lo particular me gusta crunch,ya que es literal y facil lo que acabo de mencionar :D

Primero lo instalamos:

Para ello lo descargamos:

Enlace

Ahora instalamos lo necesario para compilar,en ubuntu:

Abrimos una terminal:

Escribimos

sudo apt-get install build-essential

Ahora descomprimimos el tar donde viene crunch:

tar xvfz crunch-*.tgz 

Entramos al directorio:

cd crunch-*

Creamos el ejecutable:

make

Lo movemos a /usr/bin:

sudo cp crunch /usr/bin/

Eso es todo con respecto a la instalación,ahora vamos a usarlo en el ejemplo anterior:

Asi se usa:

crunch min max caracteres

Por ejemplo

crunch 10 10 Metalic01234




Y esto nos muestra en la pantalla (stdout) las palabras,ese no es el mejor ejemplo porque como vemos nos genera 634 gb de puras contraseñas(lo cual es poco ya que hasta tiene una linea que marca los Petabytes),lo cual serian hasta meses de crackeo en una Pc con pocos recursos,pero veamos un ejemplo de como crear un diccionario a base de esto,no tiene mucho sentido ya que la entrada se trata de no usar diccionarios,pero podemos crear uno a base de esto:

Creamos una contraseña de 2 a 4 caracteres con los mas sencillos caracteres:

Usamos estándares de Unix y tuberias:

crunch 2 4 1234a >> diccionario

Ahora por ejemplo lo queremos usar en hexadecimal:

hexdump <<< cat diccionario



Como vemos podemos usar muy bien los estándares de unix,ahora en un pipe seria así:

cat diccionario | hexdump



Si tuviéramos una opción de parámetros seria así:

cat diccionario | script -opcion -

Pero como esta entrada se trata sin diccionario,seria así directamente:

crunch 2 4 1234a | hexdump

O así:

crunch 2 4 1234a | script -opcion -

Siempre y cuando pueda manejar pipes el programa con el que estamos usando crunch.

Si no es asi y por ejemplo usamos paso por parámetro,como en el programa que hicimos para usar sha con java.

Primero metemos las palabras en un archivo:

crunch 1 3 123a >> dic


Luego recorrermos el archivo con un bucle y usamos la iteracion como paso por parámetro al programa en java:

while read i; do java Ejemplo $i; done < dic




Como vemos es muy tardado esto y eso que esta entra muestra como reducir el tiempo usando alguna practica

Eso es todo :D


Leer más...

lunes, 27 de enero de 2014

Tutorial Java en Linux Basico 7

En esta ocasión veremos Herencia.

En el tutorial pasado vimos como crear objetos desde clases,en el tutorial pasado vimos como crear objetos simples pero si necesitamos crear un objeto similar a otro o que tenga que ver podemos usar la herencia para ahorrarnos trabajo:

En el tutorial pasado vimos esto:


1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class Animales {
 private String especie;
 private String sexo;
 private boolean hambre = true;
 public Animales(String e,String s) {
  especie = e;
  sexo = s;
 }
 public String getSexo() {
  return this.sexo;
 }
 public String getEspecie() {
  return this.especie;
 }
 public void tienesHambre() {
  if (hambre)
   System.out.println("Tengo hambre :(");
  else 
   System.out.println("No tengo hambre :D");
 }
 public void darDeComer() {
  this.hambre = false;
 }
}

De esa clase podemos crear un objeto animal con el sexo la especie y ver si tiene hambre,pero ahora si quisiéramos crear por ejemplo un Perro,podríamos escribir esos métodos en el archivo de la clase Perro,pero con java podemos ahorrarnos eso haciendo uso de la herencia.

Para heredar de una clase usamos el token extends al lado de la definición de la clase,por ejemplo:

1
public class Perro extends Animales { ... 

De esa manera estamos heredando las funciones y variables de Animales,pero aun no,no hasta que iniciemos el constructor de la clase padre,para esto se usa el token super,que seria la función del constructor(podemos usar cualquiera),debe ir en el constructor de la clase y antes que nada:


1
2
3
Perro () { 
   super();
}

Bien sabiendo eso,vamos a definir unas funciones:

Primero la función ladrar,muy propia de los perros:


1
2
3
public void ladrar() {
 System.out.println("Woww");
}

Ahora una función para saber si necesita dar un paseo:

Definimos una variable miembro:

private boolean pasear = true;


1
2
3
4
5
6
public void salirPasear() {
   if (this.pasear)
      System.out.println("Llevar a pasear");
   else 
      System.out.println("No hace falta salir a pasear");
}

Y el constructor,le pasamos dos String:

1
2
3
4
Perro (String e,String s) {
   super(e,s);
   // Aqui iniciamos mas funciones o variables si es necesario
}

Ahora nuestro main queda así:


1
2
3
4
5
6
7
class Ejemplo {
 public static void main(String[] args) {
  Perro perro1 = new Perro("Perro", "Macho");
  perro1.ladrar(); // Funcion de Perro
  perro1.tienesHambre(); // Funcion de animal
 }
}



Como vemos podemos usar funciones de Perro y de Animal,eso es todo.


Leer más...

jueves, 23 de enero de 2014

[ Shell ] Como ver los exif de una imagen

Exchangeable image file format o Exif gracias a esto podemos ver los metadatos de las imágenes,tales como tamaño,fecha hasta la localización.

De esto ya hemos hablado en alguna ocasión,de los metadatos pero los de los mp3,id3tags, en esta ocasión hablamos de Exif para las imágenes:


Mas informacion

Bien se o pienso que existen muchas herramientas para hacer esto desde la shell de linux,pero  yo cree un script para hacer esto:

Veamos:

Primero instalamos las dependencias:

sudo cpan Data::Dumper

sudo cpan Image::EXIF

Ahora bajamos el script:



Creamos un archivo y pegamos el script en perl,por ejemplo:

vim exif_data.pl


Ahora vamos a moverlo a ejecutarlo así:

perl  exif_data.pl

o así:

chmod +x exif_data.pl

y

./exif_data.pl

Como ven es una shell,asi que solo escriben help:


Vemos las opciones y por ejemplo usamos:

ls

use imagen

imagen



Eso es todo,después añado mas funciones :D
Leer más...

miércoles, 22 de enero de 2014

Tutorial jailbreak iOS 7 iPad 2g

En esta ocasion vamos a aprender como hacer el jailbreak con evasi0n en el iPad con iOS 7.x.

Lo unico que necesitamos es:

iTunes 11.x:

Enlace

El firmware 7.0.4(actual):

Enlace

Evasi0n:

Enlace 

Bien,lo primero que tenemos que hacer es instalar itunes o actualizarlo a la version 11.x para que tenga soporte a iOS 7.

Despues conectamos el iPad a la Pc y creamos una copia de seguridad:


Esto es porque tenemos que borrar todo en la iPad para que funcione el jailbreak.



Ahora le vamos a dar en el boton de restaurar pero oprimiendo el boton shift(esto en windows),elegimos el .ipsw que descargamos(el 7.0.4) y le damos restaurar:


Cuando termine la configuramos para restaurar copia de seguridad desde itunes,la conectamos a la pc y elegimos la copia de seguridad que realizamos,esperamos.


Ahora cerramos itunes y abrimos evasi0n como administrador.


Le damos jailbreak.

Y esperamos:


Esperamos a que nos pida que abrimos evasi0n icon:


Lo presionamos:


Esperamos y listo,nos instala cydia:


Eso es todo,solo abrimos cydia:


Va a preparar el sistema,volvemos a entrar y le damos hacke:


Podemos agregar unas repos:



 
Eso es todo.


Leer más...

domingo, 19 de enero de 2014

Como evitar que se muestren archivos en el dash de Ubuntu Unity

Ese es un titulo un poco largo que aun así no explica con totalidad a lo que me refiero,a lo que me refiero es que aveces hay ciertos archivos que no queremos que vean otras personas,y esto no es nada de criptografía ni esteganografía,esto es lo mas natural del mundo(de la informática),me refiero a cuando estas con alguien en la Pc ajeno a tu Pc y quieres ejecutar un programa en Ubuntu desde el Dash y de repente sale algo indebido,desde música que no quieres que nadie se entere que escuchas :P,hasta otras cosas.

Por ejemplo si veo un video y sale:



Bueno Ubuntu  ofrece una forma de configurar esto fácilmente:

Esto es muy fácil,pero si por algo es conocido este sitio es por la diversidad en tutoriales,desde hacer esto,hasta crear un sistema basado en Gentoo o programación en Perl.

A mi me gusta enseñar cosas que valgan la pena ya que este tipo de tutoriales son lo mas basico que hay,pero aveces hay que ver cosas sencillas ya que tengo una teoria,que probé hace mucho tiempo:

Enlace


Aveces las personas no leen los manuales o simplemente buscan primero en Internet.

Tutorial


Abrimos ajustes,en el icono de engrane de la esquina superior derecha -> Configuración del Sistema:



Luego vamos a Seguridad y Privacidad y abrimos la pestaña Archivos y Aplicaciones:


Si no queremos que registre nada apagamos el boton Registrar uso de archivos y aplicaciones.

Si queremos Excluir por ejemplo la carpeta de Videos y Imagenes solo les quitamos la paloma.

Al hacer eso se hara de manera recursiva,osea todas las carpetas dentro de videos y todas las carpetas dentro de las carpetas dentro de Videos,

Si queremos una carpeta especifica,la añadimos en el boton mas del cuadro Excluir:


Con eso ya no mostrara lo que vemos a la hora de abrir el Dash.

Solo falta borrar lo que ya registro,para ello le damos Limpiar datos de uso...


Eso es todo :D






Leer más...

Como usar SHA en Java (hash texto)

En esta ocasión vamos a aprender a crear un password usando el algoritmo de SHA(Secure Hash Algorithm) sea 1,256,512,etc.

Para hacerlo es muy sencillo ya que java tiene librerías preparadas para esto,lo único que tenemos que hacer unas cuantas acciones con bytes.

Lo primero que tenemos que hacer es crear una instancia de un proveedor de seguridad(el encargado de darnos los algoritmos):

Por ejemplo : SHA-1 o SHA-256

Debemos importar:

import java.security.MessageDigest; // Para crear el hash

import java.security.NoSuchAlgorithmException; // Para manejar error

Vamos a definir una String que sera el texto pasado a SHA :

String password = "Tiempo de Tux"; 

Tenemos que obtener los bytes del String para trabajarlos,creamos un array de bytes:

byte[] passB = password.getBytes(); 

Ahora tenemos que crear la instancia de SHA:

 MessageDigest messageD = MessageDigest.getInstance("SHA-1");

Le pasamos el array de bytes como un update ya que solo es una instancia de momento:

messageD.update(passB);

Creamos otro array de bytes pero esta vez sera el hash devuleto por la funcion digest de la instancia de SHA:

byte[] bytes = messageD.digest();

Por ultimo debemos convertir los bytes a base 16 o base 64,como hexadecimal es mas fácil al usar los mismos tipos de datos del lenguaje,asi que vamos a usar este:

1
2
3
4
5
6
7
8
9
StringBuilder passS = new StringBuilder(); // Para usar una String mutable

for (byte b : bytes) { // Convertimos a hex
   passS.append(String.format("%02x:", b));
}

String finalStringSha = passS.toString();

System.out.println(finalStringSha);


Eso es todo ya solo falta compilar y ejecutar.

Aquí un código completo:


1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

class Ejemplo {
	public static void main(String[] args) throws NoSuchAlgorithmException {

		if (args.length == 0) {
			uso();System.exit(1);
		}
		String AGM,password;
		if (args[0].equals("-s256"))
			AGM = "SHA-256";
		else if (args[0].equals("-s512"))
			AGM = "SHA-512";
		else 
			AGM = "SHA-1";
		
		if (args.length == 1) {
			password = args[0];
		} else {
			password = args[1];
		}
		
		byte[] passB = password.getBytes();

		MessageDigest messageD = MessageDigest.getInstance(AGM);

		messageD.update(passB);

		byte[] bytes = messageD.digest();

		StringBuilder passS = new StringBuilder();

		for (byte b : bytes) {
			passS.append(String.format("%02x:", b));
		}

		String finalStringSha = passS.toString();

		System.out.println(finalStringSha);

	}
	
	private static void uso() {
		System.out.println("Uso:");
		System.out.println("Programa Algoritmo ");
		System.out.println("Algoritmos: ");
		System.out.println("-s1 SHA-1");
		System.out.println("-s256 SHA-256");
		System.out.println("-s512 SHA-512");
	}

}

Lo compilan y lo ejecutan así por ejemplo:

java Ejemplo -s256 Linux


Eso es todo.
Leer más...

Repos para cydia iOS7

Hace mucho que no hablo del iPhone o iOS asi que algunas entradas que siguen seran acerca de este,de momento no he probado muchas repos pero ire añadiendo mas,o comenten las que les han servido,o las que no,si aquí las menciono:


http:// +

repo.insanelyi.com/

sinfuliphonerepo.com

cydia.xsellize.com/

 repo.hackyouriphone.org/


De momento son todas,la primera es la que tiene mas apps y tweaks,aunque son la mayoría para iOS 5 y otras iOS6 pero podemos encontrar muchas muy útiles para iOS7.

Seguro se agregaran mas en el futuro pero tenemos appsync,lockdown,MobileTerminal que ya son de los viejos conocidos :D.

En unos días haré un tutorial del jailbreak iOS7 para algún dispositivo.
Leer más...

miércoles, 15 de enero de 2014

Tutorial Java en Linux Basico 6

En este tutorial veremos Objetos.

Un Objeto es una instancia de una clase,un Objeto se puede tratar separado de los demás teniendo sus propios métodos y variables,para crear un método de una clase se usa la sintaxis:

Clase objeto = new Clase();

Lo que se pasa entre paréntesis es lo que recibe como argumentos el constructor.

Vayamos por partes:

La clase mas simple y que siempre se usa es donde esta el main,por ejemplo nuestro programa HolaMundo.java tiene esto adentro:


1
2
3
4
5
class HolaMundo {
    public static void main(String [] args) {
        System.out.println("Hola Mundo");
    }
}

Como ven pueden pensar que el main es el constructor,pero primero hay que saber que es un constructor,en mis palabras un constructor es:

Una función que se ejecuta antes que ninguna para inicializar o ejecutar acciones especificas.

En java todas las clases publicas deben tener el nombre del archivo que las contiene,en este caso HolaMundo,porque el archivo es HolaMundo.java.

Como crear un constructor?

El constructor es una función sin retorno y sin modificadores,esta debe tener el mismo nombre de la clase,vamos a crear un constructor para ese código:


1
2
3
HolaMundo(int x) {
    System.out.println("Hola se a creado el objeto numero "+x);
}


Este constructor lo único que hace es mostrar el numero de veces que se ha creado el archivo,basado en el paso por argumentos,veamos el código completo:


1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
class HolaMundo {
    HolaMundo(int x) { // Constructor
        System.out.println("Hola se a creado el objeto numero "+x);
    }
    public static void main(String [] args) {
        System.out.println("Hola Mundo");
        for (int i = 1;i < 11;i++) {
            HolaMundo objeto = new HolaMundo(i); // Creamos objetos basados en el bucle
        }
    }
}


Eso demuestra como se crean los constructores y como es que se ejecutan,no es el mejor ejemplo y de hecho veo mala practica al usar una variable renovada en cada iteracion del bucle,pero eso no es lo que importa,lo que importa es ver como se ejecuta lo que esta adentro del constructor.

Algunas cosas que debemos saber de un constructor es que:

1. Siempre hay un constructor aunque no creemos uno javac lo hace por nosotros.

2. Puede haber mas de un constructor (overloaded;lo veremos mas adelante).

3. Repito, un constructor no lleva ni modificador y modificador de acceso.

Ahora si podemos ver algo un poco mas bueno que la mala practica de arriba,por ejemplo si queremos ver cuantas veces se ha creado un objeto usamos una variable static,como dije en el primer tutorial una variable de modificador static solo se crea una vez,solo una vez.

Algunas cosas que hay que saber o recordar de static:

1. No se considera OOP.

2. Solo se crea una vez.

3. Solo se pueden usar metodos static en métodos del mismo tipo de modificador(static),pero no así a la inversa.

4. Los métodos static en una clase se consideran métodos de clase y no métodos de objeto.

Veamos un ejemplo:


1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
class Ejemplo {
 private static int veces = 0;

 Ejemplo() {
  System.out.println("Hola se a creado el objeto numero " + veces);
  veces++;
 }

 public static void main(String[] args) {
  System.out.println("Hola Mundo");
  Ejemplo objeto = new Ejemplo();
  Ejemplo objeto1 = new Ejemplo();
  Ejemplo objeto2 = new Ejemplo();
 }
}


De ese modo podemos usar esa variable static para ver como cuantas veces se ejecuta,como dije los métodos static en una clase se llaman métodos de clase,para llamarlos no necesitamos crear un objeto,por ejemplo:


1
2
3
public static void getVeces() {
 System.out.println("Numero de objetos creados: "+veces);
}

Para usar este metodo no tenemos que instanciar un objeto y luego llamar el metodo:

Ejemplo objeto = new Ejemplo();

objeto.getVeces();

Aunque si funciona,lo que podemos hacer es:

Ejemplo.getVeces(); // Directamente

O mejor aun,las variables static se llaman variables de clase y podemos llamarlas asi:

Ejemplo.veces;

Código completo:


1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
class Ejemplo {
 private static int veces = 0;

 Ejemplo() {
  System.out.println("Hola se a creado el objeto numero " + veces);
  veces++;
 }

 public static void main(String[] args) {
  System.out.println("Hola Mundo");
  Ejemplo objeto = new Ejemplo();
  Ejemplo objeto1 = new Ejemplo();
  Ejemplo objeto2 = new Ejemplo();
  Ejemplo.getVeces();
 }

 public static void getVeces() {
  System.out.println("Numero de objetos creados: "+veces);
 }
}


Como vemos estamos trabajando solo con la clase del main,pero como creamos nuevas,para crear otras clases podemos hacerlo de distintas maneras para distintas ocasiones,ya que podemos crear clases locales,anónimas,etc pero en este caso veremos clases normales,al gual que la que guarda el main.

Para crear una clase creamos un archivo en el mismo PATH(directorio) donde esta el main,en su momento también hablaremos de paquetes,pero de momento creen una clase,llamada Animales.java:

Esta clase va ademas de la que contiene el main que se llama Ejemplo.java:

vim Animales.java
La clase debe ser publica y el nombre debe ser el mismo del archivo:

public class Animales {

}

Vamos a crear unas funciones y variables para definir un animal,las cuales deben ser private:

Las variables private solo son visibles para la misma clase,objeto instanciado no lo podra llamar,lo cual hace que sean ocultadas para todo lo que no sea la misma clase,a esto se le conoce en el OOP como encapsulamiento.

Vamos a crear las variables:

private String especie;
private String sexo;
private boolean hambre = true;

Luego vamos a crear un constructor que reciba como parámetros las mismas variables,pero estas seran para definir las variables miembro(las de arriba):

Animales (String e,String s) {
       especie = e;
       sexo = s;
}

Ahora debemos crear una funcion que nos muestre el nombre,el sexo y si tiene hambre,ademas de una funcion para dar de comer:

Primero las funciones para ver el sexo y la especie,como son variables privadas no las podemos ver,asi que vamos a retornarlas como String,para ello tenemos que usar el token this,ya que this hace referencia a la variable del objeto actual,asi:

public String getEspecie() {
return this.especie;
}

Código completo:


1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class Animales {
 private String especie;
 private String sexo;
 private boolean hambre = true;
 public Animales(String e,String s) {
  especie = e;
  sexo = s;
 }
 public String getSexo() {
  return this.sexo;
 }
 public String getEspecie() {
  return this.especie;
 }
 public void tienesHambre() {
  if (hambre)
   System.out.println("Tengo hambre :(");
  else 
   System.out.println("No tengo hambre :D");
 }
 public void darDeComer() {
  this.hambre = false;
 }
}

Como ven uso this para retornar,pero tambien se puede usar para definir,por ejemplo que los parámetros tuvieran el mismo nombre,usariamos this para hacer referencia a la variable miembro:


1
2
3
4
public Animales(String especie,String sexo) {
 this.especie = especie;
 this.sexo = sexo;
}

Ahora en la clase Ejemplo podemos crear un animal:


1
2
3
4
5
6
class Ejemplo {
 public static void main(String[] args) {
  Animales Mono = new Animales("Primate", "Macho");
  System.out.println(Mono.getEspecie());
 }
}

De esa manera hemos usado una clase mas ademas de la que contiene el main,podemos crear tantos animales como queramos y nuevos métodos,pero eso no es lo importante ahora ya que por ejemplo,en este ejemplo a la hora de comer se define en true,pero como vuelve a false(darle hambre de nuevo),pues esto lo veremos cuando veamos Threads,y como poder definir un animal mas especifico,esto lo veremos en herencia,pero de momento solo vimos como crear un objeto de una clase ajena al main.

Al ejecutar veremos esto:


Bien,algo que falta explicar en este tutorial basico de creación de objetos es la sobrecarga de métodos en la cual también veremos la sobrecarga de constructores:

En una clase puede haber distintos metodos con el mismo nombre,pero como se diferencian?

Con el simple hecho del paso por parametros:

Podemos tener estas dos funciones en la misma clase:


1
2
3
4
5
6
7
public void verNumero() {
 System.out.println(veces);
}
public void verNumero(String x) {
 System.out.println(x+veces);
 
}

Esto hará que podamos usar en el objeto:

Objeto.verNumero();

o

Objeto.verNumero("Veces creado : ");

Como dije lo único que lo distingue son los parametros,podriamos decir que lo distinguen los retornos,pero no,ya que el compilador no puede reconocer esto:


1
2
3
4
5
6
7
public void verNumero() {
 System.out.println(veces);
}
public int verNumero() {
 return veces;
 
}

Bien,de igual manera pasa con los constructores,podemos definir dos constructores para los Animales,supongamos esto,podemos darle de comer antes de crearlo,asi que así seria el constructor:


1
2
3
4
5
public Animales(String e,String s,boolean x) {
 especie = e;
 sexo = s;
 hambre = x;
}

Esto aun teniendo el constructor pasado, de esta manera podemos usar dos constructores:

new Animales("Primate", "Hembra");

o


new Animales("Primate", "Hembra",false);

Aunque no se obstruye uno con otro es recomendable iniciar todos los constructores,para ello usamos this,pero ahora con parámetros:

Por ejemplo llamamos:

Animales mono = new Animales("Primate", "Hembra");
En el constructor usamos this antes que nada:


1
2
3
4
5
public Animales(String e,String s) {
 this(e,s,false);
 especie = e;
 sexo = s;
}

El this inicia el otro constructor.

Como dije al principio podemos si no usamos constructores el compilador creara uno,si existen variables miembro sin iniciar,las cuales iniciaremos en un método,las variables se inician al valor por defecto:

Por ejemplo int 0,String u Objeto null,etc:


1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
public class Ejemplo2 {
 private int vint;
 private boolean vbool;
 private char vchar;
 private short vshort;
 private long vlong;
 private double vdouble;
 private String vString;
 
 public void ver() {
  System.out.println(vint);
  System.out.println(vbool);
  System.out.println(vchar);
  System.out.println(vshort);
  System.out.println(vlong);
  System.out.println(vdouble);
  System.out.println(vString);
 }
}

En el main:


1
2
3
4
5
6
7
class Ejemplo {
   public static void main(String[] args) {
   Ejemplo2 ejemplo = new Ejemplo2();
   ejemplo.ver();
   }

}

Aqui terminal la sexta parte de los tutoriales de Java.


Leer más...