1
00:00:10,120 --> 00:00:14,670
Hola qué tal te saluda Ubal lacosta bienvenida y bienvenido nuevamente.

2
00:00:15,220 --> 00:00:18,370
Espero que estén listos para comenzar con esta elección.

3
00:00:18,400 --> 00:00:23,040
A continuación vamos a estudiar el tema de modificadores de acceso en Java.

4
00:00:23,050 --> 00:00:23,840
Estás listo.

5
00:00:24,100 --> 00:00:24,520
Vamos

6
00:00:27,950 --> 00:00:33,410
uso de modificadores de acceso en Java en esta elección.

7
00:00:33,490 --> 00:00:36,220
Vamos a estudiar el tema de modificadores de acceso.

8
00:00:36,670 --> 00:00:41,450
Este tema ya lo vimos de manera introductoria en el curso de Fundamentos de IAVA.

9
00:00:41,530 --> 00:00:47,920
Sin embargo ahora vamos a ver a más detalle este concepto de modificadores de acceso los cuales controlan

10
00:00:48,130 --> 00:00:54,580
quiénes pueden utilizar cada una de las características de las clases que estamos definiendo los modificadores

11
00:00:54,580 --> 00:01:01,870
de acceso se pueden aplicar a la definición de una clase un atributo un método de una clase o al constructor

12
00:01:01,870 --> 00:01:03,450
de una clase.

13
00:01:03,460 --> 00:01:08,920
La tabla muestra las posibles combinaciones de cada uno de los modificadores de acceso y donde se puede

14
00:01:08,920 --> 00:01:16,510
aplicar existen cuatro tipos de modificadores de acceso y la flecha indica el orden de menos restrictivo

15
00:01:16,580 --> 00:01:17,800
a más restrictivo.

16
00:01:17,980 --> 00:01:23,800
Por ejemplo el modificador de acceso públic es el menos restrictivo ya que todas las clases externas

17
00:01:23,980 --> 00:01:30,970
pueden hacer uso del elemento que sea definido como pública y el más restrictivo es Playboy el cual

18
00:01:31,120 --> 00:01:36,190
sólo puede ser accedido por la misma clase donde se ha definido el elemento.

19
00:01:36,400 --> 00:01:43,150
La palabra default opacas no es una palabra reservada en Java a diferencia de Public protected y prohíbe

20
00:01:43,480 --> 00:01:44,650
el uso de default.

21
00:01:44,650 --> 00:01:51,460
Quiere decir que para definir una variable de tipo default o de tipo pakete basta con omitir el modificador

22
00:01:51,460 --> 00:01:57,670
de acceso es decir que si no se especifica ningún modificador de acceso tendrá el valor por default

23
00:01:57,760 --> 00:01:58,880
opacas.

24
00:01:58,930 --> 00:02:02,650
A continuación vamos a ver lo que significa cada uno de estos modificadores

25
00:02:05,410 --> 00:02:12,790
modificador de acceso Public en esta lámina veremos el uso del modificador Public como vimos en la primera

26
00:02:12,790 --> 00:02:13,480
lámina.

27
00:02:13,480 --> 00:02:20,590
El modificador públic aplica para todo tipo de elementos en Java desde una clase un atributo un método

28
00:02:20,770 --> 00:02:22,090
o un constructor.

29
00:02:22,090 --> 00:02:27,070
Este es el modificador de acceso menos restrictivo por lo tanto si deseamos que cualquier otra clase

30
00:02:27,310 --> 00:02:33,340
acceda a nuestro elemento entonces debemos utilizar el modificador de acceso público.

31
00:02:33,490 --> 00:02:39,100
De esta manera cualquier otra clase ya sea dentro del mismo paquete o en uno distinto podrá acceder

32
00:02:39,190 --> 00:02:45,250
al elemento definido como publica en la tabla se indica que si utilizamos este modificador de acceso

33
00:02:45,640 --> 00:02:51,820
la notación dentro del diagrama de clases mostrado se marca el elemento con el símbolo más indicando

34
00:02:51,820 --> 00:02:57,730
que se trata de un elemento de acceso público y como su nombre lo dice al marcarlo como público entonces

35
00:02:57,730 --> 00:03:04,930
todas las demás clases podrán acceder a este elemento el cual puede ser una clase un atributo un método

36
00:03:05,080 --> 00:03:05,970
o un constructor.

37
00:03:05,980 --> 00:03:12,400
Como hemos mencionado entonces sin importar dónde se encuentre la otra clase que desea acceder al elemento

38
00:03:12,400 --> 00:03:18,670
público y sin importar si desciende uno de la clase que define el elemento público estas otras clases

39
00:03:18,670 --> 00:03:22,030
podrán acceder al elemento definido como publica.

40
00:03:22,030 --> 00:03:27,700
Este modificador es el más simple de aplicar y en resumen lo utilizaremos cuando deseemos que las demás

41
00:03:27,700 --> 00:03:32,310
clases accedan sin problemas a nuestro elemento marcado como publica.

42
00:03:32,320 --> 00:03:38,710
Por ello es común que los métodos de tipo jet set de los atributos de una clase se definan como Public

43
00:03:39,130 --> 00:03:45,190
ya que el objetivo de estos métodos es que sean accedidos por cualquier otra clase y así puedan ya sea

44
00:03:45,190 --> 00:03:53,950
leer o modificar el estado de un atributo de un objeto a través de estos métodos modificador de acceso

45
00:03:53,960 --> 00:04:00,640
protected el siguiente modificador que revisaremos es el modificador protected.

46
00:04:00,640 --> 00:04:06,220
Este modificador lo utilizaremos cuando deseemos proteger las clases que no descienden directamente

47
00:04:06,220 --> 00:04:11,500
de la clase que define el elemento protected y que no puedan acceder a dicho elemento.

48
00:04:11,500 --> 00:04:17,470
Por lo tanto será común encontrar el modificador protected en atributos o métodos de una clase con el

49
00:04:17,470 --> 00:04:23,680
objetivo de que las clases hijas puedan acceder a estos elementos ya sea en el mismo paquete o en un

50
00:04:23,680 --> 00:04:25,170
paquete distinto.

51
00:04:25,270 --> 00:04:31,450
De allí su nombre el cual protege del acceso de clases externas que no tienen nada que ver con la jerarquía

52
00:04:31,450 --> 00:04:32,930
de sus clases.

53
00:04:33,070 --> 00:04:39,010
En el diagrama podemos observar que para indicar el tipo protected vamos a utilizar el símbolo de número

54
00:04:39,390 --> 00:04:40,540
y como hemos comentado.

55
00:04:40,690 --> 00:04:47,140
Si definimos una clase que extienda la clase 1 por ejemplo en este caso la clase 3 extiende la clase

56
00:04:47,140 --> 00:04:54,610
1 la clase 3 podrá acceder directamente a los elementos definidos como protected en la clase padre ya

57
00:04:54,610 --> 00:05:00,790
sea que esté dentro del mismo paquete del paquete 1 o en un paquete externo en un paquete distinto.

58
00:05:00,790 --> 00:05:02,880
Por ejemplo el paquete 2.

59
00:05:02,950 --> 00:05:08,710
Cabe señalar que este modificador no aplica en la definición de una clase es decir que no es posible

60
00:05:08,710 --> 00:05:11,320
definir una clase como tipo protected

61
00:05:13,810 --> 00:05:23,190
modificador de acceso de FAW o package ahora veremos el modificador de FAW o package como su nombre

62
00:05:23,190 --> 00:05:29,250
lo indica este modificador limita el acceso a las clases definidas dentro del mismo paquete por lo que

63
00:05:29,250 --> 00:05:36,720
cualquier otra clase fuera del paquete donde se ha definido el elemento no podrá acceder a dichos elementos.

64
00:05:36,780 --> 00:05:42,720
Este modificador no tiene una palabra reservada sino que más bien la omisión de cualquier modificador

65
00:05:43,050 --> 00:05:47,490
el compilador entiende que se tratará como de un tipo Defour o package.

66
00:05:47,490 --> 00:05:53,280
Este modificador no es común encontrarlo por ser poco seguro ya que permite que cualquier clase del

67
00:05:53,280 --> 00:05:56,610
paquete pueda acceder al elemento en cuestión.

68
00:05:56,610 --> 00:06:02,160
Sin embargo si es lo que deseamos podemos aplicar precisamente este modificador de acceso al elemento

69
00:06:02,160 --> 00:06:08,550
deseado y podemos observar que éste es el símbolo que se va a utilizar para indicar que un elemento

70
00:06:08,700 --> 00:06:15,030
ya sea un atributo o un método de nuestra clase va a tener el valor por default así que esta es la notación

71
00:06:15,030 --> 00:06:16,310
que vamos a utilizar.

72
00:06:16,310 --> 00:06:21,780
Y una vez que hemos definido un atributo o un método como tipo default entonces cualquier otra clase

73
00:06:22,020 --> 00:06:27,030
dentro del mismo paquete podemos observar que estamos dentro del mismo paquete puede acceder a este

74
00:06:27,030 --> 00:06:30,280
atributo o método marcado como default o package.

75
00:06:30,750 --> 00:06:36,840
Pero una clase fuera de este paquete ya no puede acceder a estos atributos ya que estamos precisamente

76
00:06:36,840 --> 00:06:37,980
fuera de otro paquete

77
00:06:40,590 --> 00:06:46,360
modificador de acceso Private finalmente veremos el modificador de acceso Playboy.

78
00:06:46,990 --> 00:06:53,440
Este modificador básicamente evita que cualquier otra clase incluso también las mismas subclases accedan

79
00:06:53,500 --> 00:06:55,380
al elemento marcado como Playboy.

80
00:06:56,140 --> 00:07:01,960
Este modificador es el más restrictivo y no se puede aplicar a la definición de una clase ya que no

81
00:07:01,960 --> 00:07:07,840
podemos definir una clase como privada el símbolo que utilizamos para definir un elemento como privado

82
00:07:08,110 --> 00:07:09,850
es el símbolo de menos.

83
00:07:10,000 --> 00:07:16,540
Es como aplicar este tipo de modificador a los atributos de una clase ya que la idea es que sea a través

84
00:07:16,540 --> 00:07:23,410
de los métodos jet set como se acceda a los atributos de un objeto pero no directamente a los atributos.

85
00:07:23,440 --> 00:07:28,780
Por lo tanto en la mayoría de los casos los atributos de una clase los vamos a definir como privados

86
00:07:29,260 --> 00:07:32,950
y los métodos jet set se van a definir como públicos.

87
00:07:32,950 --> 00:07:38,560
También podemos crear métodos privados que sólo podrán ser accedidos desde la misma clase donde se definen

88
00:07:38,860 --> 00:07:42,490
pero desde ninguna otra clase podrán ser accedidos.

89
00:07:42,490 --> 00:07:49,030
Por último es posible definir constructores privados con un objetivo similar ser utilizados únicamente

90
00:07:49,030 --> 00:07:55,670
por la clase en la cual se está definiendo y así evitar su acceso directo desde otras clases.

91
00:07:55,900 --> 00:08:01,140
Vamos a crear a continuación un ejercicio donde vamos a poner en práctica estos modificadores de acceso.
