240 likes | 378 Views
CS 211 Java Basics. Today’s lecture. Review of Chapter 1 Go over homework exercises for chapter 1. Simple Java Program. public class HelloWorld { public static void main (String[] args ) { //our code will all go here… System.out.println ("Hello, World!"); } }.
E N D
Today’s lecture • Review of Chapter 1 • Go over homework exercises for chapter 1
Simple Java Program public class HelloWorld { public static void main (String[] args) { //our code will all go here…System.out.println("Hello, World!"); } } file: HelloWorld.java Each word of this should make sense by the semester's end! For now it is boilerplate code—just the template we'll use to write code.
Whitespace • Whitespace means the 'blank' characters: space, tab, newline characters. • White Space is (almost) irrelevant in Java. • Java does not care about indentation • However, indentation is highly recommended! • Java uses curly braces, { and } to replace indentation • Follow the indentation pattern you had for Python, for readability • The computer will only care about { }, however
Good Whitespace Example public class GoodSpacing { public static void main (String[] args) {int x = 5;int y = 12;System.out.println("x+y = "+ (x+y)); }} indentation levels for each block: class, method definitions, control structures…
Types! • Java is strongly typed: every expression has a specific type that is known at compile time. • Java has two kinds of types: • primitive types (containing literal values) • reference types (containing objects of some class). These are complex types. • Variable types must be declared before use
Type declaration public class GoodSpacing { public static void main (String[] args) {int x = 5;int y = 12;System.out.println("x+y = "+ (x+y)); }} x is declared to be of type integer args is declared to be a list of strings main is declared to return void (nothing) the println method returnsvoid
Primitive Types boolean: truth values: true, false char: acharacter in single-quotes: 'a' 'H' '\n' '5’ integers: byte, short, int, long floating point: float, double void is technically not a type, but is used to represent when a method doesn’t return a value
Specific Integer Types Java provides integral numbers of different 'widths' (different numbers of bits), and different ranges of values: byte (8 bits) -128 to 127short (16 bits) -32768to 32767int (32 bits) -2147483648 to 2147483647long (64 bits) (-263) to (263-1)char (16 bits) 0 to 65535 (all positive)(a character is actually stored in memory as an integer) You don’t have to memorize any of these ranges, just be aware they exist
Floating Point Numbers Approximating the real #s: called floating point numbers. internal binary representation: like scientific notation. S: sign bit. E: bias-adjusted exponent. M: adjusted fractional value. value = (-1)S * 2E * M Also representable: infinity (+/−), NaN ("not a number") float: 32-bit representation. (1 sign, 8 exp, 23 frac)double: 64-bit representation. (1 sign, 11 exp, 52 frac) sign exponent fraction
Reference Types strings: String language-defined: System, Math user-defined: Person, Address, Animal arrays: int[], String[], Person[], double[][] int[] myArray = {1, 5, 7}; int[] otherArray = newint[]; Person jill = new Person(); new is a keyword that we can use to create all reference types arrays and strings are special in Java; other ways to create without new
Creating Variables • Variables must be declared and initialized before use. • Declaration: creates the variable. It includes a type and a name. The variable can only hold values of that type.int x; char c; double[][] grid; Person p; • Initialization: assign an expr. of the variable's type to it.x=7+8; c='M'; grid={{0,1},{2,3}}; p= new Person(); • Both: we can declare and instantiate all at once:int x = 5; char c = 'S'; Person p = new Person();
Casting • a cast is a conversion from one type to another. We cast things by placing the type in parentheses in front of it:(int) 3.14 • One use: forcing floating-point division.int x=3, y=4; double z = ((double)x)/y;System.out.println(z);
Strings • Can be declared as String cat = “Fluffy”; String cat = new String(“Fluffy”); • Can be added with + operator (concatenation) “Hello” + “ “ + “world” • Can mix types String cat = “Hi” + 3 + ‘ ‘ + false; int number = 5 + 3;
Java Comments There are two main styles of comments in Java: • Single-Line: from//to the end of the line. • Multi-Line: all content between /*and*/, whether it spans multiple lines or part of one line. JavaDoc: convention of commenting style that helps generate code documentation/API. More on this later.
Expressions, Statements Expression: a representation of a calculation that can be evaluated to result in a single value. There is no indication what to do with the value.Statement: a command, or instruction, for the computer to perform some action. Statements often contain expressions.
Basic Expressions • literals (all our primitive types) • operation expressions:< <= > >= == != (relational ops)+ - * / % (math ops)& | && || ! (boolean ops) • parenthesized expressions (expr) • variables (can store primitive types or reference types) • method calls that return a value (are not void)
Programming TRAP • Only use == and !=for primitive types • We will learn how to compare reference types later
Expression Examples Legal:x++ (3>x) && (! true)x%2==1 (x<y)&&(y<z)numPeopledrawCard()(2+3)*4 y!=zIllegal:x>y>z 4 && false x=3 7(x+y)
Basic Statements • Declaration: announce that a variable exists. • Assignment: store an expression's result into a variable. • method invocations (may be stand-alone) • blocks: multiple statements in { }'s • control-flow: if-else, for, while, … (next lecture)
Statement Examples int x; // declare xx = 15; // assignment to xint y = 7; // decl./assign. of yx = y+((3*x)−5); // assign. with operatorsx++;// increment (x = x+1)System.out.println(x);// method invocation if (true):{ //if statementint x = 50; int y = 3; x = x + y; }
Print Statement • printlnis a method of the PrintStreamclass, that can print anything on a single line: System.out.println(“Hello World!); • System.out is the standard buffer for printing to the screen
User Input • Create a Scannerobject and get the next value: Scanner scan = new Scanner(System.in); intnum = scan.nextInt(); String string = scan.nextLine(); • System.in is the standard buffer for keyboard input