1

00:00:01,110  -->  00:00:09,210
Not look at a feature that was introduced in Jollof by Karl Marx before Jolliffe I meant it could only

2

00:00:09,210  -->  00:00:12,130
be invoked with fixed number of arguments.

3

00:00:12,480  -->  00:00:18,030
That is you may have a method that has three parameters and so you can look at that exactly the arguments

4

00:00:18,030  -->  00:00:18,800
.

5

00:00:18,900  -->  00:00:24,230
But that needn't be the case from giallo 5 onwards from Delphi onwards.

6

00:00:24,360  -->  00:00:30,900
Methods can have a special type of parameter called quarks which is shorthand for variable length arguments

7

00:00:32,760  -->  00:00:37,740
and as the name suggests this parameter can become variable number of arguments.

8

00:00:37,950  -->  00:00:44,340
There is even though it's a single parameter it can take either 0 or 1 or even more than one argument

9

00:00:44,420  -->  00:00:45,560
as in.

10

00:00:45,960  -->  00:00:50,020
Also it's got to be the last parameter of the method.

11

00:00:50,040  -->  00:00:52,930
It can also be the only parameter of the method.

12

00:00:53,280  -->  00:00:58,260
So it could be the only parameter of a method or if the matter has more than one parameter then the

13

00:00:58,260  -->  00:01:02,190
broader experimenter must be the last one.

14

00:01:02,190  -->  00:01:09,600
Now let's look at the syntax of a broad experimenter and also have the invocation looks like syntax

15

00:01:09,620  -->  00:01:11,500
in most three dots are ellipses.

16

00:01:11,550  -->  00:01:18,450
Following the parameter type and here is an example as you can see the parameter type and is followed

17

00:01:18,450  -->  00:01:21,220
by three dots.

18

00:01:21,310  -->  00:01:30,780
Now when it comes to any location the corresponding argument can be an array of any size or it can also

19

00:01:30,780  -->  00:01:35,310
be a sequence off any number of comma separated arguments.

20

00:01:35,310  -->  00:01:41,340
As you can see the values run butare are simply being passed as comma separated values in this because

21

00:01:41,340  -->  00:01:44,480
the compiler automatically can merge them into an array.

22

00:01:45,000  -->  00:01:50,040
So basically the arguments are getting passed as an array whether you do it explicitly or not.

23

00:01:50,340  -->  00:01:54,610
This also means that the blot on experimentor in the method definition is also an order.

24

00:01:55,080  -->  00:02:00,400
So when we compile the compiler automatically converts of what I've spent ometer into an array.

25

00:02:00,990  -->  00:02:07,050
So that in the method the watch parameter is treated as any normality.

26

00:02:07,380  -->  00:02:10,530
Finally the last argument could be omitted altogether.

27

00:02:11,010  -->  00:02:17,310
So in one example the method for is invoked with only the boolean argument internally and MPO it will

28

00:02:17,310  -->  00:02:20,360
be passed without blocks barometer.

29

00:02:20,370  -->  00:02:23,350
So basically the number of parameters has been fixed.

30

00:02:23,520  -->  00:02:29,580
It's just that the parts parameter gives the flexibility in passing either 0 or more argument values

31

00:02:29,580  -->  00:02:30,380
.

32

00:02:30,570  -->  00:02:37,200
It just gives an illusion that the method is infinitely overloaded.

33

00:02:37,520  -->  00:02:38,850
Dumps of restrictions.

34

00:02:38,850  -->  00:02:43,920
I just want to reiterate that the water experimentor must be the last barometer when the method has

35

00:02:43,920  -->  00:02:51,030
more than one parameter and the restriction is that a metric cannot how more than one product barometer

36

00:02:51,040  -->  00:02:51,350
.

37

00:02:51,640  -->  00:02:53,240
OK.

38

00:02:53,850  -->  00:03:00,630
Next is the question itself why products can't we simply use an array as parameter which can also take

39

00:03:00,630  -->  00:03:03,690
really the moral values.

40

00:03:04,200  -->  00:03:05,500
Of course we can do that.

41

00:03:05,730  -->  00:03:11,740
But the main advantage of products is that it provides us with more simpler unflexible in rockish mechanism

42

00:03:12,600  -->  00:03:13,600
.

43

00:03:13,860  -->  00:03:16,000
That is if you don't how many values to pass.

44

00:03:16,050  -->  00:03:22,770
You can simply pass a mask coalmines operator values and if there is nothing to pass you simply need

45

00:03:22,770  -->  00:03:24,590
not pass anything at all.

46

00:03:24,780  -->  00:03:30,210
That is you don't have to pass null on an empty at it the compiler automatically passes an empty threat

47

00:03:30,210  -->  00:03:30,890
.

48

00:03:31,110  -->  00:03:37,890
So that's just a cleaner syntax on it because if you have a large number of values to pass you can simply

49

00:03:37,890  -->  00:03:40,870
gather them into an array and pass it to them.

50

00:03:41,160  -->  00:03:43,250
So that's a main advantage of blocks.

51

00:03:43,260  -->  00:03:49,350
It gives us a more simpler and flexible invocation mechanism.

52

00:03:49,350  -->  00:03:54,420
There's a method called Print def which was introduced in Jollof I understood a very nice example of

53

00:03:54,420  -->  00:03:55,910
using Bartok's.

54

00:03:56,100  -->  00:04:01,260
It's basically used to print formatted text and disseminate the print L.N. and then statements that

55

00:04:01,260  -->  00:04:02,750
we already know.

56

00:04:03,120  -->  00:04:09,180
First parameter is the text to be appended while the second isn't what x parameter type of the second

57

00:04:09,180  -->  00:04:14,050
parameter here is object which is a class in Java and we can look at it later.

58

00:04:14,670  -->  00:04:16,370
Let's look at this example in location.

59

00:04:16,410  -->  00:04:21,600
That's printing data but here the first argument is the text to be printed.

60

00:04:21,880  -->  00:04:26,550
Well second third and fourth arguments correspond to the warhawks parameter.

61

00:04:26,550  -->  00:04:30,010
You can also see three person dead symbols in the first argument.

62

00:04:30,180  -->  00:04:36,300
Basically at runtime the printf method would replace the three person dead symbols with a three argument

63

00:04:36,300  -->  00:04:42,830
values 1 1 and 1978 that are pastor's input to the experimenter.

64

00:04:42,870  -->  00:04:47,220
So basically person does ambos so s placeholders here.

65

00:04:47,220  -->  00:04:52,180
So that's one good example from the Java library itself.

66

00:04:52,200  -->  00:04:55,230
Next we know that this is a definition of Main method.

67

00:04:55,860  -->  00:05:03,710
No it blocks it's perfectly valid to replace the input array parameter of what water barometer.

68

00:05:03,820  -->  00:05:09,120
Next there are certain rules that we need to be at off when it comes to using broad method as an overloaded

69

00:05:09,120  -->  00:05:10,500
method.

70

00:05:11,430  -->  00:05:14,280
Let's look at the first rule using an example.

71

00:05:15,180  -->  00:05:18,820
Let's see if we have this what method call foo.

72

00:05:19,470  -->  00:05:24,430
Then we cannot have an overloaded non-God method that looks like this.

73

00:05:24,720  -->  00:05:30,680
So it would be an invalid order as you can see the signature is exactly identical Savatage.

74

00:05:30,770  -->  00:05:34,570
Barometer is simply an array to.

75

00:05:35,370  -->  00:05:41,280
Next if you have a bunch of overloaded methods and if one of them is a wad oximeter then doing method

76

00:05:41,290  -->  00:05:46,050
invocation the blocks method will be the last one to be matched.

77

00:05:47,130  -->  00:05:48,700
Let's actually look at a simpler time off.

78

00:05:48,700  -->  00:05:55,880
This second rule variegata method will be the last one to be matched Spoonman.

79

00:05:56,010  -->  00:05:58,720
That's how I've been added to the basics class.

80

00:05:59,040  -->  00:06:04,680
And since there are overloaded methods both of them have the same name and they have been named S-box

81

00:06:04,830  -->  00:06:09,010
since it's a lot Arc's demo and since it's overloading them also.

82

00:06:09,030  -->  00:06:11,410
So when it blocks or whatever.

83

00:06:11,670  -->  00:06:14,430
OK so these are the two methods.

84

00:06:14,480  -->  00:06:16,590
Let's look at the input parameters here.

85

00:06:16,600  -->  00:06:24,330
So this this one does not have an ox parameter so it has a boolean parameter on three regular parameters

86

00:06:24,330  -->  00:06:24,900
.

87

00:06:24,900  -->  00:06:27,180
Second one is a warhawks method.

88

00:06:27,240  -->  00:06:31,240
The second method has what x parameter so it has a boolean parameter.

89

00:06:31,320  -->  00:06:33,730
And here is the what x parameter.

90

00:06:33,870  -->  00:06:38,500
OK and here we are printing in the first metor we are saying inside quarks or not.

91

00:06:38,520  -->  00:06:42,860
But without what on X and the second we are saying insert Warlock's or not.

92

00:06:42,900  -->  00:06:44,370
But with what ARX.

93

00:06:44,380  -->  00:06:48,180
OK and we're also printing the length of the input parameter.

94

00:06:48,210  -->  00:06:52,010
Ok since this is an array we are printing done lento.

95

00:06:52,220  -->  00:06:55,810
OK now let's look at the invocation statements here.

96

00:06:55,980  -->  00:06:57,950
So we have three invoke mission statements.

97

00:06:58,180  -->  00:07:03,480
OK one of them is passing through and the ralliers one to 3 and the second one is passing through on

98

00:07:03,690  -->  00:07:08,660
one to 8 values here and the fourth one is just passing on the boolean argument.

99

00:07:08,740  -->  00:07:16,440
OK and so in the first case it were frustrated as we discussed earlier that it would first try to find

100

00:07:16,440  -->  00:07:19,200
an exact match in this because there is an exact match.

101

00:07:19,340  -->  00:07:23,400
One boolean on the 2:59 bluesman fit here.

102

00:07:23,490  -->  00:07:29,620
So in this case the first order of the method gets invoked in the second and the third case.

103

00:07:29,670  -->  00:07:36,090
Since there is no exact match the the second overloaded method will be picked which is a white box which

104

00:07:36,090  -->  00:07:37,110
is a warhawks method.

105

00:07:37,170  -->  00:07:43,140
OK hon will the length of the array in this case it would be 8 iron in the second case in that in the

106

00:07:43,140  -->  00:07:44,970
last example it would be zero.

107

00:07:45,160  -->  00:07:48,660
OK so let's just go ahead and compile and execute this.

108

00:07:48,690  -->  00:07:52,120
So I'm in the basics directory.

109

00:07:52,910  -->  00:08:00,180
OK so as you can see here with the first invocation it is inserted but ours a lot but without what varargs

110

00:08:00,180  -->  00:08:00,290
.

111

00:08:00,300  -->  00:08:06,360
So that's the first method and for the second invocation where you are passing 8 ralliers comma separated

112

00:08:06,360  -->  00:08:07,060
values.

113

00:08:07,170  -->  00:08:09,170
So it is in sidewards overload.

114

00:08:09,230  -->  00:08:14,190
Read watch on it bench the lines of the array which is on the final one where you are passing just a

115

00:08:14,190  -->  00:08:17,950
boolean at Bernd's zero as the last.

116

00:08:18,030  -->  00:08:20,100
OK so that's about it.

117

00:08:20,100  -->  00:08:24,630
So that's the autoloading feature retrospect do what oximeter.

118

00:08:24,690  -->  00:08:26,460
OK so just go ahead and play with it.

119

00:08:26,460  -->  00:08:30,050
You can also pass arrays here instead of just call my separated values.

120

00:08:30,120  -->  00:08:36,120
So just go ahead and play with it and you can also find the updated program and the resources section

121

00:08:36,120  -->  00:08:36,720
.

122

00:08:36,720  -->  00:08:37,300
All right then.

123

00:08:37,320  -->  00:08:38,670
Thank you.
