java-development-for-beginners-learnit / 02 - Java Basics /003 First application Hello World App_en.srt
| 1 | |
| 00:00:05,000 --> 00:00:09,000 | |
| They will create our first application in Java language. | |
| 2 | |
| 00:00:09,000 --> 00:00:10,000 | |
| Be prepared to have fun. | |
| 3 | |
| 00:00:11,000 --> 00:00:16,000 | |
| Also in this lesson, you will learn what our console applications, how to compile Java code to get | |
| 4 | |
| 00:00:16,000 --> 00:00:19,000 | |
| bytecode and how to execute your first program from console. | |
| 5 | |
| 00:00:20,000 --> 00:00:21,000 | |
| Let's start. | |
| 6 | |
| 00:00:22,000 --> 00:00:28,000 | |
| So what a console applications console application is an application that takes input and displays output | |
| 7 | |
| 00:00:28,000 --> 00:00:36,000 | |
| at command line console with access to three basic data streams, standard input, standard output and | |
| 8 | |
| 00:00:36,000 --> 00:00:37,000 | |
| standard error. | |
| 9 | |
| 00:00:38,000 --> 00:00:42,000 | |
| These applications don't have any graphical user interface. | |
| 10 | |
| 00:00:42,000 --> 00:00:45,000 | |
| They are primarily used nowadays in learning purposes. | |
| 11 | |
| 00:00:46,000 --> 00:00:51,000 | |
| So console application is a lightweight application which might be easily run in console. | |
| 12 | |
| 00:00:51,000 --> 00:00:57,000 | |
| During this course, we'll learn tools which we have in GDP to create powerful applications, but the | |
| 13 | |
| 00:00:57,000 --> 00:00:59,000 | |
| same as learning as a human languages. | |
| 14 | |
| 00:01:00,000 --> 00:01:02,000 | |
| The first thing you learn is alphabet. | |
| 15 | |
| 00:01:02,000 --> 00:01:03,000 | |
| After that, no letters. | |
| 16 | |
| 00:01:03,000 --> 00:01:08,000 | |
| You can create words from words who can create sentences from sentences. | |
| 17 | |
| 00:01:08,000 --> 00:01:09,000 | |
| You can build a story. | |
| 18 | |
| 00:01:10,000 --> 00:01:15,000 | |
| The same is here will start from console applications to learn alphabet and words. | |
| 19 | |
| 00:01:16,000 --> 00:01:22,000 | |
| Here is what we are going to do today as a software engineer will create with you files with Java. | |
| 20 | |
| 00:01:22,000 --> 00:01:25,000 | |
| Extension will call this files source code. | |
| 21 | |
| 00:01:25,000 --> 00:01:30,000 | |
| This is exactly files where programming code written in Java will be stored. | |
| 22 | |
| 00:01:31,000 --> 00:01:35,000 | |
| After that will ask Java Compiler to compile source code to bytecode. | |
| 23 | |
| 00:01:35,000 --> 00:01:38,000 | |
| Java program will do this task. | |
| 24 | |
| 00:01:38,000 --> 00:01:44,000 | |
| Java will produce files with class extension and Java will execute our program. | |
| 25 | |
| 00:01:45,000 --> 00:01:46,000 | |
| What do you need to understand? | |
| 26 | |
| 00:01:46,000 --> 00:01:50,000 | |
| And remember that Shivam doesn't execute Java files. | |
| 27 | |
| 00:01:51,000 --> 00:01:54,000 | |
| Jivin executes class files properly. | |
| 28 | |
| 00:01:54,000 --> 00:01:58,000 | |
| This will help you in the future when you will troubleshoot issues in your real life project. | |
| 29 | |
| 00:01:59,000 --> 00:02:05,000 | |
| So now let's take a look how to create your first program, how to compile it and run theme. | |
| 30 | |
| 00:02:05,000 --> 00:02:07,000 | |
| Please don't be afraid. | |
| 31 | |
| 00:02:07,000 --> 00:02:11,000 | |
| You won't use common line to write your programs on a regular basis. | |
| 32 | |
| 00:02:11,000 --> 00:02:16,000 | |
| In the next, lessons will run special desktop applications designed to create programs. | |
| 33 | |
| 00:02:17,000 --> 00:02:22,000 | |
| But now I'd like to ask you again to open a common line wherever you want on your computer. | |
| 34 | |
| 00:02:22,000 --> 00:02:27,000 | |
| For example, for this lesson I created folder where I will create a program together with you. | |
| 35 | |
| 00:02:28,000 --> 00:02:32,000 | |
| Let's type seemed easier to open a common line probably using right now. | |
| 36 | |
| 00:02:32,000 --> 00:02:34,000 | |
| And you must be kidding me. | |
| 37 | |
| 00:02:35,000 --> 00:02:36,000 | |
| Why do we do this? | |
| 38 | |
| 00:02:36,000 --> 00:02:41,000 | |
| Why don't we just start work with applications which help us to create programs? | |
| 39 | |
| 00:02:41,000 --> 00:02:44,000 | |
| The answer is there are a few points to consider. | |
| 40 | |
| 00:02:45,000 --> 00:02:52,000 | |
| The first one you need to learn how to work with console at least some basics because sometimes not | |
| 41 | |
| 00:02:52,000 --> 00:02:57,000 | |
| always, but sometimes depending on which built tool you will use, probably you would need to work | |
| 42 | |
| 00:02:57,000 --> 00:02:58,000 | |
| with console. | |
| 43 | |
| 00:02:58,000 --> 00:03:04,000 | |
| And sometimes as software engineers you would need to write scripts which will call command line comments. | |
| 44 | |
| 00:03:04,000 --> 00:03:06,000 | |
| Real life example. | |
| 45 | |
| 00:03:06,000 --> 00:03:11,000 | |
| You would like to compile all Java files in your project in one archive, which will be deployed to | |
| 46 | |
| 00:03:11,000 --> 00:03:13,000 | |
| the Web server afterwards. | |
| 47 | |
| 00:03:13,000 --> 00:03:19,000 | |
| Right after compiling, you would like to run specific files, desk classes to be sure that tests are | |
| 48 | |
| 00:03:19,000 --> 00:03:22,000 | |
| not failing in case tests are succeed. | |
| 49 | |
| 00:03:23,000 --> 00:03:27,000 | |
| You finish your build process in case there are failures in the tests. | |
| 50 | |
| 00:03:27,000 --> 00:03:28,000 | |
| You don't proceed with your build. | |
| 51 | |
| 00:03:28,000 --> 00:03:33,000 | |
| That is one of the examples where knowledge of common line comments might come in handy. | |
| 52 | |
| 00:03:33,000 --> 00:03:36,000 | |
| The second point to consider Guice. | |
| 53 | |
| 00:03:36,000 --> 00:03:38,000 | |
| You had just started learning Java. | |
| 54 | |
| 00:03:38,000 --> 00:03:44,000 | |
| You need to understand what compilation process is, what is compilation error and how it is different | |
| 55 | |
| 00:03:44,000 --> 00:03:46,000 | |
| from runtime exception. | |
| 56 | |
| 00:03:46,000 --> 00:03:53,000 | |
| That's why I ask all my students to create program in Notepad and to run it and console at least once | |
| 57 | |
| 00:03:53,000 --> 00:03:59,000 | |
| in their lives in some conference on the first level of interview process of junior software engineers | |
| 58 | |
| 00:03:59,000 --> 00:04:04,000 | |
| where you have quizzes and tests, sometimes there are also questions related to common line. | |
| 59 | |
| 00:04:06,000 --> 00:04:12,000 | |
| We opened the common line to create file with Java extension, why we cannot just do mouse right click | |
| 60 | |
| 00:04:12,000 --> 00:04:19,000 | |
| and create file because you need to enable showing the file extension first in different Windows version. | |
| 61 | |
| 00:04:19,000 --> 00:04:21,000 | |
| It is done in a slightly different way. | |
| 62 | |
| 00:04:21,000 --> 00:04:26,000 | |
| And from default options, you can create file with the extension, which doesn't work for us. | |
| 63 | |
| 00:04:27,000 --> 00:04:32,000 | |
| So let's create file from console because it is easier and it's the same way to create file from the | |
| 64 | |
| 00:04:32,000 --> 00:04:35,000 | |
| terminal on different Windows versions actually. | |
| 65 | |
| 00:04:35,000 --> 00:04:36,000 | |
| Now at least a few ways. | |
| 66 | |
| 00:04:36,000 --> 00:04:38,000 | |
| How to create file from command prompt. | |
| 67 | |
| 00:04:38,000 --> 00:04:40,000 | |
| But let me show one to you. | |
| 68 | |
| 00:04:41,000 --> 00:04:43,000 | |
| Type the following notepad. | |
| 69 | |
| 00:04:44,000 --> 00:04:46,000 | |
| Hello World Dot Java. | |
| 70 | |
| 00:04:47,000 --> 00:04:50,000 | |
| When dialogue is popped up, click yes. | |
| 71 | |
| 00:04:53,000 --> 00:05:00,000 | |
| Now we see file with Java extension created here in case you have Mac just type like this. | |
| 72 | |
| 00:05:01,000 --> 00:05:04,000 | |
| Dutch Hello, World Dot Jalaa. | |
| 73 | |
| 00:05:05,000 --> 00:05:06,000 | |
| The file will be created. | |
| 74 | |
| 00:05:07,000 --> 00:05:15,000 | |
| Let's write our first program, we'll cover right now basic syntax so each Java file can have only one | |
| 75 | |
| 00:05:15,000 --> 00:05:17,000 | |
| public class or interface. | |
| 76 | |
| 00:05:18,000 --> 00:05:21,000 | |
| We'll cover more modifiers during all be topic. | |
| 77 | |
| 00:05:21,000 --> 00:05:28,000 | |
| But for now, just try to understand that in case class is public, client can access it from anywhere, | |
| 78 | |
| 00:05:29,000 --> 00:05:32,000 | |
| including our game, which needs to access this class. | |
| 79 | |
| 00:05:32,000 --> 00:05:36,000 | |
| The name of public class should be the same as the name of a Java file. | |
| 80 | |
| 00:05:36,000 --> 00:05:37,000 | |
| This is true. | |
| 81 | |
| 00:05:38,000 --> 00:05:42,000 | |
| In either case you would have compilation error Gervais's case sensitive. | |
| 82 | |
| 00:05:43,000 --> 00:05:49,000 | |
| So hello world written with Capital H at the beginning is completely different from Hello World with | |
| 83 | |
| 00:05:49,000 --> 00:05:50,000 | |
| H lowercase. | |
| 84 | |
| 00:05:51,000 --> 00:05:55,000 | |
| Java is a case sensitive because it uses a C style syntax case. | |
| 85 | |
| 00:05:55,000 --> 00:06:01,000 | |
| Sensitivity is useful because it lets you infer what the name means based on its case. | |
| 86 | |
| 00:06:01,000 --> 00:06:07,000 | |
| For example, the Java standard for class names is uppercase in the first letter of each word, for | |
| 87 | |
| 00:06:07,000 --> 00:06:11,000 | |
| example, like integer string, etc.. | |
| 88 | |
| 00:06:12,000 --> 00:06:18,000 | |
| The standard for variable and method names is lowercase, the first letter of the first word and uppercase | |
| 89 | |
| 00:06:18,000 --> 00:06:19,000 | |
| and all other first letters. | |
| 90 | |
| 00:06:21,000 --> 00:06:26,000 | |
| No print, learn, Czech error, etc. | |
| 91 | |
| 00:06:28,000 --> 00:06:35,000 | |
| And the standard for constants is all uppercase was on this course, some constant like this. | |
| 92 | |
| 00:06:36,000 --> 00:06:43,000 | |
| So after hello, world, let's put curly braces here in Java, curly braces define SCOP. | |
| 93 | |
| 00:06:44,000 --> 00:06:51,000 | |
| Here is the scope of the class, in a few seconds, you'll see the scope of the method each otoscope | |
| 94 | |
| 00:06:51,000 --> 00:06:57,000 | |
| includes in their scope, zazz variable declared in the class scope is visible in the method scope, | |
| 95 | |
| 00:06:58,000 --> 00:07:02,000 | |
| but variables declared in the method scope not visible in Glasgow. | |
| 96 | |
| 00:07:03,000 --> 00:07:07,000 | |
| Now we need to create an entry point for our program by convention. | |
| 97 | |
| 00:07:07,000 --> 00:07:12,000 | |
| This method is publicly accessible, so let's type here public. | |
| 98 | |
| 00:07:12,000 --> 00:07:13,000 | |
| It is static. | |
| 99 | |
| 00:07:14,000 --> 00:07:17,000 | |
| We'll cover more what static is during or P topic. | |
| 100 | |
| 00:07:18,000 --> 00:07:19,000 | |
| It does return nothing. | |
| 101 | |
| 00:07:19,000 --> 00:07:24,000 | |
| That's why return type is void and it has name main by convention. | |
| 102 | |
| 00:07:25,000 --> 00:07:32,000 | |
| This method takes as a parameter array of strings in the next lessons will cover in details what arrays | |
| 103 | |
| 00:07:32,000 --> 00:07:33,000 | |
| are as of now. | |
| 104 | |
| 00:07:33,000 --> 00:07:36,000 | |
| Consider array of strings as a sequence of strings. | |
| 105 | |
| 00:07:37,000 --> 00:07:40,000 | |
| A parameter is a variable in the method definition. | |
| 106 | |
| 00:07:40,000 --> 00:07:46,000 | |
| When the method is called, the arguments are the data you pass into the methods parameters. | |
| 107 | |
| 00:07:46,000 --> 00:07:49,000 | |
| Hope this doesn't bring even more confusion. | |
| 108 | |
| 00:07:49,000 --> 00:07:54,000 | |
| I just want you also to learn the right wording to make your colleagues understand you. | |
| 109 | |
| 00:07:55,000 --> 00:08:02,000 | |
| Public static void main method, which takes array of strings, is our entry point to each Java program. | |
| 110 | |
| 00:08:02,000 --> 00:08:09,000 | |
| JVM knows that it should call exactly this method and begin program execution from this point. | |
| 111 | |
| 00:08:10,000 --> 00:08:17,000 | |
| Let's define scope of this method here in this method will write code which will print hello world text | |
| 112 | |
| 00:08:17,000 --> 00:08:24,000 | |
| to console output will write a system not out how to represent output. | |
| 113 | |
| 00:08:24,000 --> 00:08:31,000 | |
| Stream output stream has such behavior as printing to console print, to learn method prints to console | |
| 114 | |
| 00:08:31,000 --> 00:08:33,000 | |
| and terminate the line. | |
| 115 | |
| 00:08:33,000 --> 00:08:41,000 | |
| Each statement in Java ends with semicolon Prindle and can take strings as arguments that's postering | |
| 116 | |
| 00:08:41,000 --> 00:08:42,000 | |
| Hello World into it. | |
| 117 | |
| 00:08:43,000 --> 00:08:48,000 | |
| In Java, string literals are written inside double quotes and one more new word. | |
| 118 | |
| 00:08:49,000 --> 00:08:49,000 | |
| Literal. | |
| 119 | |
| 00:08:50,000 --> 00:08:54,000 | |
| Literal is a notation for representing a fixed value in source code. | |
| 120 | |
| 00:08:55,000 --> 00:08:57,000 | |
| Here we have string literal. | |
| 121 | |
| 00:08:57,000 --> 00:08:58,000 | |
| Now let's save this file. | |
| 122 | |
| 00:09:01,000 --> 00:09:09,000 | |
| Let's go back to the console and now let's compile our program, Javadoc Hello, world, that Java. | |
| 123 | |
| 00:09:10,000 --> 00:09:17,000 | |
| If you don't see any messages, that means compilation was successful and you can notice that new file | |
| 124 | |
| 00:09:17,000 --> 00:09:24,000 | |
| is appeared in our folder, this file has the same name as our Java file, but has different extension. | |
| 125 | |
| 00:09:24,000 --> 00:09:28,000 | |
| This file contains byte code for our Java virtual machine. | |
| 126 | |
| 00:09:29,000 --> 00:09:31,000 | |
| Now let's execute bytecode on our game. | |
| 127 | |
| 00:09:32,000 --> 00:09:33,000 | |
| Let's step Java. | |
| 128 | |
| 00:09:34,000 --> 00:09:36,000 | |
| Hello, world and press enter. | |
| 129 | |
| 00:09:37,000 --> 00:09:43,000 | |
| In this case, you don't need to specify extension for the file since Java expects only class files | |
| 130 | |
| 00:09:44,000 --> 00:09:45,000 | |
| and you see output here. | |
| 131 | |
| 00:09:46,000 --> 00:09:48,000 | |
| Hello world congratulations. | |
| 132 | |
| 00:09:49,000 --> 00:09:51,000 | |
| You have just written your first console application. | |
| 133 | |
| 00:09:52,000 --> 00:09:53,000 | |
| What are common mistakes? | |
| 134 | |
| 00:09:54,000 --> 00:10:00,000 | |
| You can see compilation error after calling Java and you can see runtime errors. | |
| 135 | |
| 00:10:00,000 --> 00:10:02,000 | |
| Let me reproduce it with you. | |
| 136 | |
| 00:10:02,000 --> 00:10:05,000 | |
| Let's pretend your name your public class incorrectly. | |
| 137 | |
| 00:10:06,000 --> 00:10:08,000 | |
| Not the same as Java filename. | |
| 138 | |
| 00:10:09,000 --> 00:10:15,000 | |
| Let's put capital G at the end and also let's pretend you did a typo in main method name. | |
| 139 | |
| 00:10:16,000 --> 00:10:17,000 | |
| Let's save the file. | |
| 140 | |
| 00:10:19,000 --> 00:10:20,000 | |
| Let's call Jack now. | |
| 141 | |
| 00:10:23,000 --> 00:10:31,000 | |
| We see compilation error, so code is not compiled to bytecode, always read these error messages, | |
| 142 | |
| 00:10:32,000 --> 00:10:34,000 | |
| they can help you to fix issues. | |
| 143 | |
| 00:10:35,000 --> 00:10:41,000 | |
| For example, like here, public class, hello world should be declared in the file with the same name. | |
| 144 | |
| 00:10:41,000 --> 00:10:44,000 | |
| We will just rename our public class. | |
| 145 | |
| 00:10:45,000 --> 00:10:51,000 | |
| Let's compile it one more time, but not forget to save the file before compilation process. | |
| 146 | |
| 00:10:52,000 --> 00:10:58,000 | |
| So now everything is OK and we don't see any compilation errors, and by the way, to call comments, | |
| 147 | |
| 00:10:58,000 --> 00:11:01,000 | |
| which I just used, I use up Arrow. | |
| 148 | |
| 00:11:02,000 --> 00:11:03,000 | |
| Let's run it again. | |
| 149 | |
| 00:11:04,000 --> 00:11:06,000 | |
| And here we have one time exception. | |
| 150 | |
| 00:11:07,000 --> 00:11:09,000 | |
| What does it mean, compile it? | |
| 151 | |
| 00:11:09,000 --> 00:11:12,000 | |
| But error happened during the program execution. | |
| 152 | |
| 00:11:13,000 --> 00:11:20,000 | |
| You try to find humane method, but couldn't hope this information will help you to troubleshoot issues | |
| 153 | |
| 00:11:20,000 --> 00:11:21,000 | |
| in case you will have once. | |
| 154 | |
| 00:11:22,000 --> 00:11:25,000 | |
| Let's recap one more time what we have learned today. | |
| 155 | |
| 00:11:26,000 --> 00:11:28,000 | |
| And now you know what console applications are. | |
| 156 | |
| 00:11:29,000 --> 00:11:31,000 | |
| You understand basic Java syntax. | |
| 157 | |
| 00:11:31,000 --> 00:11:34,000 | |
| You learn how to create hello world application in Java. | |
| 158 | |
| 00:11:34,000 --> 00:11:38,000 | |
| Also, you saw what compilation errors and the runtime errors are. | |
| 159 | |
| 00:11:39,000 --> 00:11:41,000 | |
| You can compile and execute your programs from the console. | |
| 160 | |
| 00:11:42,000 --> 00:11:43,000 | |
| And here's your homework. | |
| 161 | |
| 00:11:44,000 --> 00:11:48,000 | |
| Try to repeat everything what we did during the lesson by yourself. | |
| 162 | |
| 00:11:48,000 --> 00:11:54,000 | |
| Also, I'd like you to write that or shall file, which will compile your source code and we'll start | |
| 163 | |
| 00:11:54,000 --> 00:11:59,000 | |
| your Java application, try to do it by yourself with help of the Internet if needed. | |
| 164 | |
| 00:12:00,000 --> 00:12:06,000 | |
| And we'll check your homework in the next lesson together and read Java Code Convention from the link | |
| 165 | |
| 00:12:06,000 --> 00:12:06,000 | |
| here. | |
| 166 | |
| 00:12:06,000 --> 00:12:09,000 | |
| Pay extra attention to naming convention. | |
| 167 | |
| 00:12:10,000 --> 00:12:16,000 | |
| Java naming convention is a rule to follow as you decide what to name your intent to file, such as | |
| 168 | |
| 00:12:16,000 --> 00:12:22,000 | |
| class baggage, variable, constant method, etc. but it's not forced to follow. | |
| 169 | |
| 00:12:22,000 --> 00:12:25,000 | |
| So it's known as convention, not neutral. | |
| 170 | |
| 00:12:26,000 --> 00:12:32,000 | |
| These conventions, as suggested by several Java communities such as Sun Microsystems and Netscape, | |
| 171 | |
| 00:12:33,000 --> 00:12:39,000 | |
| all the classes, interfaces, packages, methods and fields of Java programming language and given, | |
| 172 | |
| 00:12:39,000 --> 00:12:45,000 | |
| according to the Java naming conventions, if you fail to follow these conventions, it may generate | |
| 173 | |
| 00:12:45,000 --> 00:12:46,000 | |
| confusion. | |