1

00:00:01,100  -->  00:00:07,580
Let's begin with looking at the July API We will also see how it is structured and we will actually

2

00:00:07,580  -->  00:00:14,080
explore the AP on articles website Bulos or discuss a little bit about third party appeals.

3

00:00:14,300  -->  00:00:22,930
And finally we will look at a gradual sedation by an item an effective Jalla Joe IPY is a library of

4

00:00:22,940  -->  00:00:26,410
hundred softball district classes.

5

00:00:26,480  -->  00:00:34,790
Angela ate for example has over 4200 classes and these classes are read by experts like Josh Knoblock

6

00:00:35,240  -->  00:00:43,090
who's the author of effective gello book and the API is already used by millions of programmers.

7

00:00:43,420  -->  00:00:49,360
So it's really very district court and we can safely use it without having to write any of that court

8

00:00:49,390  -->  00:00:50,370
ourselves.

9

00:00:51,820  -->  00:01:01,070
On from First up don't you know that July be-I is part of both JDK and Jerry enjoy AAPI or in any professional

10

00:01:01,070  -->  00:01:07,310
product classes are grouped into something called package's packages are basically directories on the

11

00:01:07,310  -->  00:01:15,540
file system and you use a particular class you have to load a package that contains the class hit are

12

00:01:15,540  -->  00:01:21,900
some packages within the July B.A. and some of the classes they contain are shown beneath them.

13

00:01:21,900  -->  00:01:28,610
For example John Howard utl package contains classes like our analyst on Hashima later you will understand

14

00:01:28,810  -->  00:01:37,250
why packages are named in this way with multiple keywords supported by Dart's next the question is why

15

00:01:37,250  -->  00:01:45,260
do we need packages instead of providing one horrendously large pile of classes packages provide meaningful

16

00:01:45,260  -->  00:01:46,740
organization.

17

00:01:46,850  -->  00:01:51,520
Just imagine browsing through all the photos in an art classes in the July IPA.

18

00:01:51,950  -->  00:01:53,620
So it's going to be very tedious.

19

00:01:53,950  -->  00:01:58,690
So structuring them in a meaningful way based on their functionality is definitely helpful.

20

00:01:59,480  -->  00:02:03,660
For example all classes that are present because doctors are grouped into that package.

21

00:02:03,710  -->  00:02:07,850
John why don't you do so any time you are looking for a particular data structure.

22

00:02:07,880  -->  00:02:09,910
Then we can go and look in the package.

23

00:02:09,910  -->  00:02:10,780
John what are you.

24

00:02:13,070  -->  00:02:15,490
Packages also help in name scoping.

25

00:02:15,950  -->  00:02:20,380
For example Dallas has two different classes by the same name called deed.

26

00:02:20,450  -->  00:02:22,710
One is inside the package I couldn't.

27

00:02:22,900  -->  00:02:27,800
The other is inside another package called Jawad askew in little packages.

28

00:02:27,800  -->  00:02:30,380
It would not be possible to have both these classes.

29

00:02:32,570  -->  00:02:39,790
An packages also help in security for example you may want to restrict parts of your class to be inaccessible

30

00:02:39,790  -->  00:02:45,660
outside of its package that is only classes within that package should access those parts.

31

00:02:47,150  -->  00:02:55,590
Not Let's quickly look at some commonly used packages in Java IPA hostess delegate line package it includes

32

00:02:55,590  -->  00:02:58,520
classes that are fundamental to Java.

33

00:02:58,590  -->  00:03:05,960
One of the classes in this package is a stringless which we will see pretty soon next is Djala that

34

00:03:05,960  -->  00:03:12,440
you package it mainly classes representing various sophisticated instructors.

35

00:03:12,500  -->  00:03:21,430
Later we will look at different classes and this package next is your package I will hear means input

36

00:03:21,470  -->  00:03:28,230
or clauses in this package are used for doing stuff like reading from a file or writing a file.

37

00:03:29,950  -->  00:03:36,220
Next is dollar dot net package it includes classes to handle networking related to us like downloading

38

00:03:36,220  -->  00:03:44,140
a web page another commonly used one is not as your package and that's used for retrieving and storing

39

00:03:44,140  -->  00:03:46,150
data in databases.

40

00:03:46,210  -->  00:03:48,170
So these are some commonly used packages.

41

00:03:48,170  -->  00:03:54,280
And there are many more as the course progresses be learn about several classes that go into some of

42

00:03:54,280  -->  00:03:55,300
these packages.

43

00:03:56,280  -->  00:04:04,460
Not Let's go ahead and briefly explore the Java API on Oracle's Web site just go ahead and google for

44

00:04:04,460  -->  00:04:11,100
Djala eight API and just click on the first link which is hosted on Oracle's website.

45

00:04:11,120  -->  00:04:18,060
So it's the Java API documentation so this is the API documentation.

46

00:04:18,060  -->  00:04:20,990
And here there are different frames here in the top frame.

47

00:04:21,000  -->  00:04:27,460
You can see all the packages listed here are these are all the packages.

48

00:04:27,560  -->  00:04:30,100
And beneath that you can see all the classes.

49

00:04:30,230  -->  00:04:34,170
So by default it shows all the packages and all the classes.

50

00:04:34,430  -->  00:04:36,260
And here you have some description.

51

00:04:36,560  -->  00:04:39,970
So let's just go ahead and click on one of the packages.

52

00:04:40,010  -->  00:04:45,560
So here you can see a dot like package which is the R which has all the fundamental classes Angello

53

00:04:45,610  -->  00:04:47,120
that I will package.

54

00:04:47,120  -->  00:04:52,740
Now if you click on one of the packages it will show all the classes in that particular package.

55

00:04:52,970  -->  00:04:58,910
And it also shows the interfaces interfaces will be discussed later when covering object oriented concepts

56

00:04:58,910  -->  00:04:59,800
.

57

00:04:59,810  -->  00:05:04,180
So here are all the classes that you can see in Jawa dot line package.

58

00:05:04,220  -->  00:05:10,750
So let's just go ahead and click on string and Asuna also knows you play constraint class.

59

00:05:10,910  -->  00:05:15,330
You will see that all the description of the string class or here.

60

00:05:15,470  -->  00:05:18,280
So this contains all the details about the string class.

61

00:05:18,410  -->  00:05:26,340
Ok so here is the signature of the string class and some description about the string class what what

62

00:05:26,340  -->  00:05:27,670
this class does.

63

00:05:28,020  -->  00:05:32,980
And then if you scroll down you can see the fields that are used within this class.

64

00:05:33,060  -->  00:05:34,870
So this is one feat.

65

00:05:35,100  -->  00:05:42,510
And here is a summary of all the constructors so you can see that there are off constructors and stringless

66

00:05:43,230  -->  00:05:44,880
with different parameters.

67

00:05:44,880  -->  00:05:50,520
So these are all overloaded constructors and if you further scroll down it will show all the methods

68

00:05:50,520  -->  00:05:51,650
that this class has.

69

00:05:51,750  -->  00:05:58,450
OK so these are all the matters that the class has so it just gives the name of the method the method

70

00:05:58,460  -->  00:06:03,360
signatures here are and the written type on a short description about the matter.

71

00:06:03,670  -->  00:06:07,180
So same holds for all the constrictors too.

72

00:06:07,270  -->  00:06:14,430
It has a short description about each of the constructors and if you click on one of these matters so

73

00:06:14,430  -->  00:06:18,590
it gives you the all the details about that particular matter.

74

00:06:18,600  -->  00:06:18,860
OK.

75

00:06:18,870  -->  00:06:21,330
So this is the this includes the entire description.

76

00:06:21,330  -->  00:06:24,100
This is an odd description about this particular matter.

77

00:06:24,630  -->  00:06:27,310
And here is the matter signature.

78

00:06:27,390  -->  00:06:28,710
So that's the API.

79

00:06:28,710  -->  00:06:34,830
So you just browse it on you will be using a lot of this as you double up in products.

80

00:06:34,830  -->  00:06:36,950
This is what you will rely on.

81

00:06:37,050  -->  00:06:46,650
Now here that you are you can actually change this just make it 7 and it will show you the Java 7 API

82

00:06:47,070  -->  00:06:50,680
documentation you can if you change it to six it will show you that.

83

00:06:51,090  -->  00:06:53,570
So that's supported That's the API.

84

00:06:54,060  -->  00:06:58,490
And let's just head back with us Fife's on finished the rest of the lesson.

85

00:07:00,260  -->  00:07:05,770
So something looked at the July API but when we're looking professional projects you will need several

86

00:07:05,860  -->  00:07:10,710
advanced features that may not be supported by the standard July API alone.

87

00:07:11,700  -->  00:07:18,120
Luckily I was blessed with tons of third party appeals most of which are open source so you can freely

88

00:07:18,120  -->  00:07:25,580
use them and even customize them as per your needs this they're going to show the different components

89

00:07:25,730  -->  00:07:32,650
that commonly make up a complex e-commerce website the diagram also shows the third party job be ice

90

00:07:32,650  -->  00:07:32,780
.

91

00:07:32,790  -->  00:07:39,230
These components may use on the abs are shown in parenthesis for example you can see that there are

92

00:07:39,230  -->  00:07:45,850
projects like Apache Commons on Google go to and these projects include specialized libraries for using

93

00:07:45,910  -->  00:07:52,430
advanced data structures or to perform routine programming tasks like string manipulation often says

94

00:07:52,440  -->  00:07:57,950
libraries and group features that are not supported by standard July IPA or even if they're supported

95

00:07:57,950  -->  00:07:58,280
.

96

00:07:58,280  -->  00:08:02,340
These libraries may be providing more efficient alternatives.

97

00:08:02,390  -->  00:08:08,090
Google Goolwa is mostly over by Google engineers and it is very good we are not going to discuss any

98

00:08:08,090  -->  00:08:13,490
of these abs but you can look at the resources section just to learn about what these libraries have

99

00:08:13,490  -->  00:08:14,400
to offer.

100

00:08:15,990  -->  00:08:17,760
Next is it from effective Java.

101

00:08:17,810  -->  00:08:26,710
I am 47 and it says that no I use the libraries according to this item here are some benefits that good

102

00:08:26,750  -->  00:08:33,970
AP ice pro-ID focus on writing new logic without having to reinvent the wheel.

103

00:08:34,410  -->  00:08:40,380
So it's a lot of time as you don't have to write the functionality yourself and deal with any potential

104

00:08:40,380  -->  00:08:42,120
bugs that may come out of it.

105

00:08:43,940  -->  00:08:47,540
Yes also tend to improve their performance over time.

106

00:08:47,760  -->  00:08:52,860
There is performance of existing functionality would be improved in newer versions of the API.

107

00:08:54,470  -->  00:08:55,780
You you know over time.

108

00:08:55,790  -->  00:08:57,980
AP has also gained new functionality.

109

00:08:58,770  -->  00:09:04,560
So you should make yourself familiar with important parts of both standard API and also other third

110

00:09:04,560  -->  00:09:05,790
party API.

111

00:09:06,420  -->  00:09:11,970
So try to be the API documentation for all the classes to be covered in this course although we will

112

00:09:11,970  -->  00:09:14,140
cover all the important details.

113

00:09:14,640  -->  00:09:16,050
So that's about it.

114

00:09:16,050  -->  00:09:20,480
And in the next few lessons we will focus exclusively on packages.

115

00:09:20,490  -->  00:09:21,160
Thank you.
