Console Output, Variables, Literals, and Introduction to Type CS0007: Introduction to Computer Programming Review A General-Purpose Programming Language is… a programming language designed to be used for writing software in a wide variety of application domains. A programming language is platform-specific if… once compiled, it can only be guaranteed to be able to run on the machine it was compiled for. A High-Level Programming Language is… a language that is easily read and written by humans, and is needed to be translated before a machine can use it. It provided a high level of abstraction from the details of the workings of the computer’s hardware Compilation is… the process of translating high-level language into machine language for platform-specific languages or some other intermediate code representation for other languages. A program called a compiler does this. Review The Java Virtual Machine (JVM) is… a program that reads instructions from Java Byte Code and executes them for the platform that the JVM is installed on. Steps to create and run Java Program: 1. 2. 3. 4. Write the source code in the Java programming language. Run the source code through the Java Compiler (Interpreter) Run the resulting Java Byte Code through the JVM The programs executes! Procedural Programming is… a programming methodology in which a program was made up of one of more procedures. Review Object-Oriented Programming (OOP) is… a programming methodology in which a programs parts are abstracted into the interaction between Objects. An object is… an abstraction of a real-world (or sometimes not) entity that consists of data (attributes) and the procedures that act upon the objects data (methods). Encapsulation refers to… the combining of data and code into a single object. Data Hiding refers to… the object’s ability to hide its data from outside the object. The Java Console The console or console screen is a screen where the input and output is simple text. This is a term from the days when computer terminals were only text input and output. Now when using the console for output, it is said that you are using the standard output device. Thus when you print to the console, you are using standard output. In Java, you can write to the console, using the methods included in the Java API. Java API The Java Application Programmer Interface (API) is a standard library of prewritten classes for performing specific operations. These classes are available to all Java programs. There are TONS of classes in the Java API. That do MANY different tasks. If you want to perform an operation, try either Googling it before implementing it from scratch. Often you will get a link to the Java API that will reference the class and method/data attribute you need. Example: “Java Round” Other times, you will get an example Example: “Java Ceiling” Print and Println Like stated before, you can perform output to the Java console using the Java API. Two methods to do this are print, and println. print – print some text to the screen println – print some text to the screen and add a new line character at the end (go to the next line). These two methods are methods in the out class, which itself is contained in the System class. This creates a hierarchy of objects. System has member objects and methods for performing system level operations (such as sending output to the console) out is a member of the System class and provides methods for sending output to the screen. System, out, print, and println are all in the Java API. Because of this relationship of objects, something as simple as printing to the screen is a relatively long line of code. We’ve seen this before… Dissecting println System.out.println(“Hello World!”); The dot operator here tells the compiler that we are going to use something inside of the class/object preceding it. So System.out says that we are using the out object in the System class. The text displayed is inside of the parentheses. This is called an argument We will talk more about arguments when we go over functions, but for now, just know that whatever is in the parentheses will be printed to the console for the print and println methods. The argument is inside of double quotes, this makes it a string literal. A String is a type in Java that refers to a series of characters We will go over literals, types, and strings later Console Output Examples 1 & 2 New Topics: print println Escape Sequences What would be the problem with this?: System.out.println("He said "Hello" to me"); The compiler does not know that the "s aren’t ending and starting a new string literal. But, we want double quotes in our string…How do we fix this? Answer: Escape Sequences Escape Sequences allow a programmer to embed control characters or reserved characters into a string. In Java they begin with a backslash and then are followed by a character. Control Characters are characters that either cannot be typed with a keyboard, but are used to control how the string is output on the screen. Reserved Characters are characters that have special meaning in a programming language and can only be used for that purpose. Escape Sequences Common escape Sequences: \n – Newline – Advances the cursor to the next line \t – Horizontal Tab – Advances the cursor to the next tab stop \\ – Backslash – The backslash character \’ – Single Quote – The single quote Character \” – Double Quote – The double quote Character Even though they are written as two characters, the character represented by an escape sequence is only one character in memory. Escape Sequence Examples New Topics: Escape Sequences Variables A variable is a named storage location in the computer’s memory. If we want to hold some value in memory for later use, we need to use as variable. Variables have 3 characteristics: Name – the name we use in our code to refer to the memory location. Type – characteristic that defines what legal values the variable can hold. Value – what is actually held inside of the memory location. Variable - Naming Variables and all other identifiers follow the same naming rules: 1. 2. 3. 4. 5. The first character must begin with an alphabetic character (A-Z or a-z), an underscore (_), or a dollar sign ($). After the first character you must use an alphabetic character (A-Z or a-z), a numeric character (0-9), an underscore (_), or a dollar sign ($). Identifiers are case-sensitive. Identifiers cannot include spaces. Identifiers cannot be reserved words. Variables – Naming: Legal or Illegal? miles Legal 3dGraph Illegal – cannot start with a numeric character firstName3 Legal _miles Legal firstName#3 Illegal – cannot have a pound (#) symbol first name Illegal – cannot have a space in an identifier class Illegal – cannot be a reserved word Variables - Naming The name of the variable should describe what it holds, this produces self-documenting programs. For example: If you have a variable that holds the number of miles a car traveled you could call it miles. But what if the variable holds something that is normally two words, like “first name”? I can’t use a space… Answer: Camel Casing Camel Casing is combining names that normally would be two words into one, and capitalizing the start of a new word. Example: Instead of first name, use firstName. Variables by convention start with a lowercase letter. Identifiers for class names by convention start with an uppercase letter. Data Type Again, Data Type or just (Type) refers to the values that a variable can hold. We have type for multiple reasons, namely: So the compiler knows how much memory to free up for the variable So the compiler knows the legal operations that can be done to/with the variable. For example the int data type holds positive and negative integers. We will be introducing new types both shortly and probably throughout the semester Variable Example New Topics: Variable Declaration Variable Assignment Variable Output Variable Declaration Line 4 looks like: int number; This is called a variable declaration. A variable declaration is a statement that tells the compiler the variables name, and what data type it is. You MUST declare a variable before you can use it. General form of a variable declaration that is of a primitive data type dataType variableName; dataType – the data type of the variable. variableName – the identifier for the variable. Assignment Line 9 looks like: number = 5; This is called an assignment statement. An assignment statement stores a value on the right side of the = to the variable on the left. For this reason the = is called the assignment operator in Java. This stores the value 5 into the memory location named number. 5 here is called an integer literal. A Literal is a value that is explicitly written in the code of the program. Literals have type just like variables, that is why 5 is an integer literal. Question… If the types on either side of an assignment statement are not the same, the result is a type-mismatch error. This happens because Java is a strongly-typed language. A programming language is strongly-typed if it only allows operations to be executed on operands of the same type. Variable Usage Line 9 looks like: System.out.println(number); This prints out the value stored in the variable number (5 in this case) When a variable is used NOT on the left hand side of a assignment statement, the value stored in the variable is used. Question... Primitive Data Types There are many types of data, you can even define your own type. int is known as a primitive data type. A primitive data type is a built-in data type that is a basic building block for all other types and DO NOT create objects. byte, short, int, long are all integer data types. float and double are floating-point (decimal) data types. Primitive Numeric Data Types Data Type Size Range byte 1 byte Integers in the range of -128 to +128 short 2 bytes Integers in the range of -32,768 to +32,767 int 4 bytes Integers in the range of -2,147,483,648 to +2,147,483,647 long 8 bytes Integers in the range of -9,223,372,036,854,775,808 to +9,223,372,036,854,775,807 float 4 bytes Floating-point numbers in the range of ±3.4x10-38 to ±3.4x1038 with 7 digits of accuracy double 8 bytes Floating-point numbers in the range of ±1.7x10-308 to ±1.7x10308 with 15 digits of accuracy Notes on Type You want to choose a type based on what the variable should do Why would you not use double for a variable that counts the number of times the user clicks on something? Why would you not use int for a variable that calculates the exact weight a bridge can hold? One good thing about types in Java is that the sizes of these variables are the same on EVERY computer. Not the case in other languages.