1 JAVA INTRODUCTION Lecture1 Dr. Rehab Ghaly 2 About me • My name is : Dr. Rehab Ghaly • Disruptive Thinker, passionate about the future of the technology. • Linking the academic studies with market directions and enthusiastic researcher with rounded experiences and proven records in enabling undergraduate , postgraduate students and commercial customers by the know and the how through delivering academic and hands-on courses at different universities to power , inspire and create the right medium for innovation and creativity. • Member of Middlesex London Insights lab. • Member of SAS Institute Academic Associates 3 Expectations • You are here to learn and build your future. • Passing the course or not is your choice. • I assume you can write a program in some language, understand variables, control structures, functions/subroutines. • If you pervious experience with C++ that will be great ..if not , Don’t panic ! 4 Administrative Details • Communication Channels: • Email: rehab_s_mahmoud@cic-cairo.com 5 Administrative Details (cont.) • Attendance is required, and… • …you are responsible for everything said in class. • I encourage you to ask questions in class. • …you are supposed to ask questions. Don’t guess, ask a question! • Don’t rely on single source of information • Come in with more resources and don’t for get to ask Google. • For technical and scientific questions , ask me & TA 6 Course Etiquette • Etiquette is “conduct in polite society” • No cell phones • No random comings and goings • If you are sleepy, go home • If you want to read email or surf the Web or trade your stocks… please do it elsewhere 7 Course Objectives • We will examine object oriented program design using Java, so we will go through the following topics: • Object Oriented Software Development • Introduction to Java • Simple Java Statements • Variables, Declarations, Assignment Statements, Simple I/0, Creating Objects • Control Statements, Boolean Expressions, Loops, Arrays, Strings 8 Grading Policy • MT Exam (20 ) • Practical and Exercises (30) • Final Exam (50) 9 10 What Is Programming and Program Development Life Cycle ? • Programming is a process of problem solving • Step 1: Analyze the problem – Understand the Overall problem Input – Define problem requirements • Does program require user interaction? – If yes , What Is the Input ? • What is the Expected output? – Design steps (algorithm) to solve the problem Algorithm: Step-by-step problem-solving process Output Processing What Is Programming and Program Development Life Cycle ? • Step 2: Implement the algorithm – Implement the algorithm in code – Verify that the algorithm works • Step 3: Maintenance – Use and modify the program if the problem domain changes If the problem is complex, divide it into sub-problems Analyze each sub-problem as above Example • Write a program to find theArea of a rectangle The area of the Rectangle are given by the following formula: Area =Rect L ength * Rect Width. I nput: Rectangle Length , Rectangle Width. Processing : Area = Rect Length * Rect Width. Output : Print Out The area. To sum It up……. Then Think Write Code 14 15 Introduction to java • Java is a popular programming language, created in 1995. • It is owned by Oracle, • It is used for: • Mobile applications (specially Android apps) • Desktop applications • Web applications • Games • Database connection • And much, much more! 16 Introduction to java • Why Use Java? • Java works on different platforms (Windows, Mac, Linux, etc.) • It is one of the most popular programming language in the world • It is easy to learn and simple to use • It is open-source and free • It is fast and powerful • Java is an object oriented language which gives a clear structure to programs • As Java is close to C++ and C#, it makes it easy for programmers to switch to Java or vice versa 17 18 19 20 21 22 23 Example explained • Every line of code that runs in Java must be inside a class. In our example, we named the class Welcome • A class should always start with an uppercase first letter. • Note: Java is case-sensitive: "MyClass" and "myclass" has different meaning. • The name of the java file must match the class name. • When saving the file, save it using the class name and add ".java" to the end of the filename. 24 The main Method • The main() method is required and you will see it in every Java program: • Any code inside the main() method will be executed. • For now, just remember that every Java program has a class name which must match the filename, and that every program must contain the main() method. 25 Programming Errors • Syntax Errors – Detected by the compiler • Runtime Errors – Causes the program to abort • Logic Errors – Produces incorrect result 26 27 Interacting With User: Displaying Messages on Screen • Inside the main() method, we can use the println() method to print a line of text to the screen: • Note: The curly braces {} marks the beginning and the end of a block of code. • Note: Each code statement must end with a semicolon. Interacting With User: Displaying Messages on Screen • we use To be Display text on The screen : • System.out.print () • System.out.println () Interacting With User: Displaying Messages on Screen EX. He said that “Iam From Egypt” but lives in “KSA” – System.out.print(“ He Said That \“Iam From Egypt \” but lives in \“KSA\” “) EX. The Files located in D:\javaprorg\tryoutput – System.out.print(“The Files located in D:\\javaprorg\\tryoutput “) EX. Sunday Monday Tuesday Wednesday – System.out.print(“Sunday \t Monday \t Tuesday \t Wednesday\t Thursday“) Thursday 30 31 Java Comments • Comments can be used to explain Java code, and to make it more readable. It can also be used to prevent execution when testing alternative code. • Single-line comments start with two forward slashes (//). • Any text between // and the end of the line is ignored by Java (will not be executed). 32 Java Multi-line Comments • Multi-line comments start with /* and ends with */. • Any text between /* and */ will be ignored by Java. 33 Single or multi-line comments? • It is up to you which you want to use. Normally, we use // for short comments, and /* */ for longer. 34 Java Variables 35 Java Variables • Variables are containers for storing data values. • In Java, there are different types of variables, for example: • String - stores text, such as "Hello". String values are surrounded • • • • by double quotes int - stores integers (whole numbers), without decimals, such as 123 or -123 float - stores floating point numbers, with decimals, such as 19.99 or -19.99 char - stores single characters, such as 'a' or 'B'. Char values are surrounded by single quotes boolean - stores values with two states: true or false 36 Declaring (Creating) Variables • To create a variable, you must specify the type and assign it a value: • Syntax type variable = value; • Where type is one of Java's types (such as int or String), and variable is the name of the variable (such as x or name). The equal sign is used to assign values to the variable. 37 Example • Create a variable called name of type String and assign it the value "John": String name = "John"; System.out.println(name); 38 Example • Create a variable called myNum of type int and assign it the value 15: int myNum = 15; System.out.println(myNum); 39 Example • You can also declare a variable without assigning the value, and assign the value later: • Example int myNum; myNum = 15; System.out.println(myNum); 40 Example • Change the value of myNum from 15 to 20: int myNum = 15; myNum = 20; // myNum is now 20 System.out.println(myNum); 41 Final Variables • However, you can add the final keyword if you don't want others (or yourself) to overwrite existing values (this will declare the variable as "final" or "constant", which means unchangeable and read-only): • Example final int myNum = 15; myNum = 20; // will generate an error: cannot assign a value to a final variable 42 Other Types • A demonstration of how to declare variables of other types: • Example int myNum = 5; float myFloatNum = 5.99f; char myLetter = 'D'; boolean myBool = true; String myText = "Hello"; 43 Display Variables • The println() method is often used to display variables. • To combine both text and a variable, use the + character: • Example String name = "John"; System.out.println("Hello " + name); 44 Display Variables • You can also use the + character to add a variable to another variable: • Example String firstName = "John "; String lastName = "Doe"; String fullName = firstName + lastName; System.out.println(fullName); 45 Display Variables • For numeric values, the + character works as a mathematical operator (notice that we use int (integer) variables here): • Example int x = 5; int y = 6; System.out.println(x + y); // Print the value of x + y 46 Declare Many Variables • To declare more than one variable of the same type, use a comma-separated list: • Example int x = 5, y = 6, z = 50; System.out.println(x + y + z); 47 Java Identifiers • All Java variables must be identified with unique names. • These unique names are called identifiers. • Identifiers can be short names (like x and y) or more descriptive names (age, sum, totalVolume). • Note: It is recommended to use descriptive names in order to create understandable and maintainable code: • Example // Good int minutesPerHour = 60; // OK, but not so easy to understand what m actually is int m = 60; 48 The general rules for constructing names for variables (unique identifiers) are: • Names can contain letters, digits, underscores, and dollar signs • Names must begin with a letter • Names should start with a lowercase letter and it cannot contain whitespace • Names are case sensitive ("myVar" and "myvar" are different variables) • Reserved words (like Java keywords, such as int or boolean) cannot be used as names 49 Java Data Types 50 Example • int myNum = 5; // Integer (whole number) • float myFloatNum = 5.99f; // Floating point number • char myLetter = 'D'; // Character • boolean myBool = true; // Boolean • String myText = "Hello"; // String 51 Data types are divided into two groups • Primitive data types - includes byte, short, int, long, float, double, boolean and char • Non-primitive data types – such as String, Arrays and Classes (you will learn more about these in a later lecture) 52 Primitive Data Types • A primitive data type specifies the size and type of variable values, and it has no additional methods. • There are eight primitive data types in Java: 53 54 Numbers • Primitive number types are divided into two groups: • Integer types • stores whole numbers, positive or negative (such as 123 or -456), without decimals. • Valid types are byte, short, int and long. Which type you should use, depends on the numeric value. • Floating point types • represents numbers with a fractional part, containing one or more decimals. • There are two types: float and double. • Even though there are many numeric types in Java, the most used for numbers are int (for whole numbers) and double (for floating point numbers). 55 Integer Types • Byte • The byte data type can store whole numbers from -128 to 127. • This can be used instead of int or other integer types to save memory when you are certain that the value will be within -128 and 127: • Example • byte myNum = 100; • System.out.println(myNum); 56 Short • The short data type can store whole numbers from -32768 to 32767: • Example • short myNum = 5000; • System.out.println(myNum); 57 Int • The int data type can store whole numbers from - 2147483648 to 2147483647. • In general, the int data type is the preferred data type when we create variables with a numeric value. • Example • int myNum = 100000; • System.out.println(myNum); 58 Long • The long data type can store whole numbers from - 9223372036854775808 to 9223372036854775807. • This is used when int is not large enough to store the value. • Note that you should end the value with an "L": • Example • long myNum = 15000000000L; • System.out.println(myNum); 59 Floating Point Types • You should use a floating point type whenever you need a number with a decimal, such as 9.99 or 3.14515. 60 Float • The float data type can store fractional numbers from 3.4e−038 to 3.4e+038. • Note that you should end the value with an "f": • Example • float myNum = 5.75f; • System.out.println(myNum); 61 Double • The double data type can store fractional numbers from 1.7e−308 to 1.7e+308. • Note that you should end the value with a "d": • Example • double myNum = 19.99d; • System.out.println(myNum); 62 Use float or double? • The precision of a floating point value indicates how many digits the value can have after the decimal point. • The precision of float is only six or seven decimal digits, while double variables have a precision of about 15 digits. Therefore it is safer to use double for most calculations. 63 Scientific Numbers • A floating point number can also be a scientific number with an "e" to indicate the power of 10: • Example • float f1 = 35e3f; • double d1 = 12e4d; • System.out.println(f1); • System.out.println(d1); 64 Booleans • A boolean data type is declared with the boolean keyword and can only take the values true or false: • Example • boolean isJavaFun = true; • boolean isFishTasty = false; • System.out.println(isJavaFun); // Outputs true • System.out.println(isFishTasty); // Outputs false 65 Characters • The char data type is used to store a single character. The character must be surrounded by single quotes, like 'A' or 'c': • Example • char myGrade = 'B'; • System.out.println(myGrade); 66 Characters • Alternatively, you can use ASCII values to display certain characters: • Example • char a = 65, b = 66, c = 67; • System.out.println(a); • System.out.println(b); • System.out.println(c); 67 Strings • The String data type is used to store a sequence of characters (text). • String values must be surrounded by double quotes: • Example • String greeting = "Hello World"; • System.out.println(greeting); 68 Strings • The String type is so much used and integrated in Java, that some call it "the special ninth type". • A String in Java is actually a non-primitive data type, because it refers to an object. • The String object has methods that are used to perform certain operations on strings. • Don't worry if you don't understand the term "object" just yet. • We will learn more about strings and objects in a later lecture. 69 Non-Primitive Data Types • Non-primitive data types are called reference types because they refer to objects. • The main difference between primitive and nonprimitive data types are: • Primitive types are predefined in Java. Non-primitive types are • • • • created by the programmer and is not defined by Java (except for String). Non-primitive types can be used to call methods to perform certain operations, while primitive types cannot. A primitive type has always a value, while non-primitive types can be null. A primitive type starts with a lowercase letter, while non-primitive types starts with an uppercase letter. The size of a primitive type depends on the data type, while nonprimitive types have all the same size. 70 Non-Primitive Data Types cont. • Examples of non-primitive types are Strings, Arrays, Classes, Interface, etc. You will learn more about these in a later chapter. 71 THANKS