1
00:00:00,240 --> 00:00:05,940
Continuemos con más detalles de los paquetes en la clase anterior vimos cómo importar clases que están

2
00:00:06,030 --> 00:00:07,080
en diferentes paquetes.

3
00:00:07,140 --> 00:00:12,480
Por ejemplo, la clase con el método Main está en un paquete distinto que Gatto y personas que están

4
00:00:12,540 --> 00:00:13,800
en el package hogar.

5
00:00:14,160 --> 00:00:17,880
Ahora, qué pasa si ambas clases estuvieran en el mismo package?

6
00:00:18,060 --> 00:00:20,260
Por ejemplo, la clase con el método main.

7
00:00:20,400 --> 00:00:21,630
Ejemplo paquetes.

8
00:00:21,720 --> 00:00:25,500
Quiero utilizar una clase que está también en este package en app.

9
00:00:25,620 --> 00:00:26,240
En la raíz.

10
00:00:26,730 --> 00:00:27,240
Veamos.

11
00:00:27,390 --> 00:00:29,550
Voy a crear una clase perro.

12
00:00:30,360 --> 00:00:30,690
Okay.

13
00:00:30,930 --> 00:00:33,880
En el mismo paquete que la clase principal con el método main.

14
00:00:34,030 --> 00:00:38,160
Bueno, no es necesario tener que importar, ya que están dentro del mismo contexto.

15
00:00:38,250 --> 00:00:44,880
Mismo paquete perro perro y listo.

16
00:00:45,120 --> 00:00:45,660
Se fijan.

17
00:00:45,750 --> 00:00:49,770
No hay ningún import de perro porque están en el mismo contexto.

18
00:00:50,040 --> 00:00:50,940
Se fijan bien.

19
00:00:50,970 --> 00:00:54,510
Solamente necesario importar cuando están en distintos paquetes.

20
00:00:54,690 --> 00:01:00,030
Ahora, qué pasa con la visibilidad, con el acceso de la clase de los atributos que están en distinto

21
00:01:00,030 --> 00:01:01,610
paquete, distinto package?

22
00:01:01,800 --> 00:01:08,130
Vemos, por ejemplo, si quiero no utilizar gato que está en hogar en la clase que están en el package

23
00:01:08,220 --> 00:01:12,600
app, por ejemplo, no la quiero utilizar acá o quiero restringir el acceso.

24
00:01:12,780 --> 00:01:19,170
Bueno, gato está como publish se fija y toda clase que public se puede utilizar en todos lados.

25
00:01:19,260 --> 00:01:21,440
Pero qué pasa si es alto ahí?

26
00:01:21,540 --> 00:01:22,290
Sin el public.

27
00:01:22,410 --> 00:01:26,820
Bueno, Difficult también se le conoce como como modificador de paquete.

28
00:01:26,910 --> 00:01:32,090
Es decir, solamente se puede acceder a esta clase dentro de la clase que están dentro del mismo package,

29
00:01:32,160 --> 00:01:32,850
pero no fuera.

30
00:01:32,940 --> 00:01:34,560
Y como gato está en hogar.

31
00:01:34,650 --> 00:01:39,600
Por supuesto que no se va a poder utilizar en APP en otro package que no sea hogar.

32
00:01:40,110 --> 00:01:45,210
Si se fijan marca error a pesar de que la estoy importando, pero gato ya no la puedo utilizar.

33
00:01:45,240 --> 00:01:47,730
Incluso caudillaje gato no es public.

34
00:01:47,970 --> 00:01:52,840
No se puede acceder desde fuera del paquete del package porque default e.

35
00:01:52,950 --> 00:01:55,680
Más que nada para restringir acceso por diseño.

36
00:01:55,710 --> 00:01:59,940
Entonces hay tal diferencia entre public y default modificadores.

37
00:02:00,030 --> 00:02:01,590
Ahora esto es para la clase.

38
00:02:01,830 --> 00:02:03,600
Por lo tanto, voy a quitar gato de acá.

39
00:02:03,750 --> 00:02:04,350
Lo voy a quitar.

40
00:02:04,440 --> 00:02:05,430
Voy a dejar solamente persona.

41
00:02:06,630 --> 00:02:09,660
Pero también se aplica a atributos y métodos.

42
00:02:09,690 --> 00:02:15,810
Por ejemplo, perro perdón persona persona tiene el atributo nombre que publico y lo estamos utilizando

43
00:02:15,810 --> 00:02:16,080
acá.

44
00:02:16,290 --> 00:02:17,520
Nombre lo usamos.

45
00:02:17,640 --> 00:02:19,920
Qué pasa si nombre ahora es default?

46
00:02:20,430 --> 00:02:21,060
Vamos a ver.

47
00:02:21,210 --> 00:02:25,500
Entonces cambiamos de Public Hadi Fold, pero simplemente quitamos el public.

48
00:02:25,710 --> 00:02:26,460
Pasa lo mismo.

49
00:02:26,610 --> 00:02:27,740
Se puede utilizar personas?

50
00:02:27,750 --> 00:02:29,100
Si se puede utilizar persona.

51
00:02:30,150 --> 00:02:35,670
De hecho, se instancia sin ningún problema, pero no se puede utilizar el atributo por la misma razón

52
00:02:35,730 --> 00:02:37,200
que di fold o de paquete.

53
00:02:37,300 --> 00:02:39,330
Entonces es por eso muy importante también lo modificadores.

54
00:02:39,420 --> 00:02:45,750
Cuando queremos dar acceso a nuestros atributos, a los métodos, ya sea por segurida, por requerimientos,

55
00:02:45,750 --> 00:02:49,200
por diseño, pero sin embargo podría ir a persona.

56
00:02:51,800 --> 00:02:55,460
Apellido perfecto, apellido también es de foll.

57
00:02:55,610 --> 00:03:03,410
Si lo dejo públic vamos a poder acceder solamente apellido, pero no en nombre, se fijan.

58
00:03:04,450 --> 00:03:05,080
Apellido?

59
00:03:05,470 --> 00:03:06,250
No hay ningún problema.

60
00:03:11,490 --> 00:03:18,360
Bien puedes ver como estaba en Públic, acá también voy a dejar Nombre bello, esos dos atributos por

61
00:03:18,360 --> 00:03:18,720
ahora.

62
00:03:18,930 --> 00:03:22,260
Ahora veamos un ejemplo de un atributo en perro.

63
00:03:26,470 --> 00:03:27,610
Por ejemplo, nombre,

64
00:03:30,760 --> 00:03:34,610
la raza, dos atributos, nombre y raza es de tipo público.

65
00:03:34,780 --> 00:03:36,420
Por lo tanto, acá tengo perro.

66
00:03:37,970 --> 00:03:39,320
Perro punto nombre.

67
00:03:40,380 --> 00:03:50,010
Del tipo String, por ejemplo, Tobby bajo cualquier nombre y la raza, un bulldog es público, por

68
00:03:50,010 --> 00:03:50,910
lo tanto lo puedo acceder.

69
00:03:51,000 --> 00:03:52,470
Pero también fíjense bien.

70
00:03:52,530 --> 00:03:54,480
Perro está en el mismo paquete.

71
00:03:54,600 --> 00:03:57,180
Ahora voy a dejar estos atributos por defecto.

72
00:03:57,390 --> 00:03:58,470
Voy a quitar el públic.

73
00:03:59,820 --> 00:04:05,900
Si se fijan, también lo pude utilizar namarca error, porque al ser Follet lo pude utilizar en la clase

74
00:04:05,900 --> 00:04:07,410
que están dentro del mismo package.

75
00:04:07,550 --> 00:04:08,480
Así que está perfecto.

76
00:04:08,570 --> 00:04:14,840
Puedes usar los atributos de Font de perro dentro de la clase ejemplo paquetes por estar dentro del

77
00:04:14,840 --> 00:04:15,680
mismo contexto.

78
00:04:15,830 --> 00:04:26,270
Incluso podría ir a perro y cambiar el modificador protected protected protegido, que de cierta forma

79
00:04:26,330 --> 00:04:31,490
tiene una similitud con fold porque también se puede acceder dentro del mismo paquete.

80
00:04:31,640 --> 00:04:37,430
Se fija en función exactamente igual que fold, pero también la diferencia que Protected funciona también

81
00:04:37,430 --> 00:04:38,150
para la herencia.

82
00:04:38,330 --> 00:04:45,020
Es decir, estos atributos se pueden acceder ya sea leer o modificar o también métodos métodos protegidos

83
00:04:45,140 --> 00:04:49,990
se pueden acceder dentro del package sin ningún problema y fuera de package.

84
00:04:50,120 --> 00:04:55,310
Depende si es una clase que hereda de esta clase de la clase perro como protegida.

85
00:04:55,400 --> 00:05:01,400
Cualquier clase hija de perro de la herencia también podría acceder a estos atributos, pero solamente

86
00:05:01,490 --> 00:05:02,120
en la herencia.

87
00:05:02,180 --> 00:05:08,180
Pero el tema que vamos a hacer después porque protecto es aplica tanto para herencia de atributos o

88
00:05:08,180 --> 00:05:09,860
métodos de la clase padre.

89
00:05:09,950 --> 00:05:15,380
Pero también se aplica para poder acceder atributos o métodos en la clase que están dentro del mismo

90
00:05:15,380 --> 00:05:16,730
paquete del mismo package.

91
00:05:16,970 --> 00:05:20,210
Entonces importante el tema de visibilidad de los modificadores.

92
00:05:20,390 --> 00:05:24,860
Recuerden entonces public se puede acceder en cualquier parte de la aplicación.

93
00:05:24,950 --> 00:05:29,720
Es visible para todo el mundo, mientras que default solamente para la clase que están dentro del mismo

94
00:05:29,720 --> 00:05:35,150
paquete protected la clase que están dentro del mismo package mismo paquete y también en las clases

95
00:05:35,150 --> 00:05:39,650
hijas que heredan de esta clase que tienen los atributos y métodos protegidos.

96
00:05:39,710 --> 00:05:41,150
Y por último tenemos private.

97
00:05:41,360 --> 00:05:47,090
Solamente se pueden acceder a estos miembros métodos atributos en la misma clase, independiente del

98
00:05:47,090 --> 00:05:53,240
package, independiente de la herencia, si es una clase hija o no. En fin, solamente es propio de

99
00:05:53,240 --> 00:05:53,690
la clase.

100
00:05:53,830 --> 00:05:59,150
Bien, la próxima clase vamos a continuar trabajando con los modificadores y viendo ejemplos.

101
00:05:59,210 --> 00:05:59,900
Nos vemos.
