1 / 26

Intro to Java Midterm Review

Intro to Java Midterm Review. Dan Deutsch. About Java. Compiled vs. Interpreted Java is compiled to Java Bytecode , not interpreted Bytecode is then interpreted when the program runs Python is interpreted, so it translates as the program runs on the computer The Java API

ike
Download Presentation

Intro to Java Midterm Review

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Intro to Java Midterm Review Dan Deutsch Daniel Deutsch

  2. About Java • Compiled vs. Interpreted • Java is compiled to Java Bytecode, not interpreted • Bytecode is then interpreted when the program runs • Python is interpreted, so it translates as the program runs on the computer • The Java API • The Java Application Programming Interface is a library of code that you can use in Java programs • It has things like the String class and the Scanner class Daniel Deutsch

  3. Primitives and Reserved Words • Primitives • Types already built into Java. Variables can be these types • They turn purple in jGrasp • Integer types: • byte, short, int, long • Floating point types: • float, double • Other: • boolean, char • Reserved words • You can’t use any of the words that Java has reserved to be “keywords” as a variable name • All of the primitives, public, private, protected, static, void, class, switch, case, default, for, while, do, continue, if, else, return, new, this, throw, throws, Daniel Deutsch

  4. Variable Names • Variables must start with a letter, underscore or $ • After the first letter, it can be a letter, an underscore, $ or a number • Good examples: • Num1, DAYS_IN_YEAR, $, money$$, _scanner • Bad examples: • 7even, hello world, private, num1* Daniel Deutsch

  5. Characters • Stored in memory as 8 bits • Indicated by single quotes • Each character maps to a number between 0 and 255 • ‘a’ = 97 • ‘A’ = 65 • ‘0’ = 48 • This means that ‘a’ > ‘A’ • char c1 = ‘a’;System.out.println(c1 + 2); • int c2 = c1 + 2;System.out.println(c2); • char c3 = (char) (c1 + 2);System.out.println(c3); 99 99 c Daniel Deutsch

  6. Arithmetic • Operators have an order of operations • () • - negation • *, /, % • +, - • = • Be careful of integer division!! Casting helps to get around this • int a = 5, b = 2;System.out.println(a / b); • System.out.println((double) a / b); • double c = 5.0;System.out.println(c / b); • System.out.println(5.0 / b); • double d = 8.825;int e = (int) d; • System.out.println(e); • System.out.println((double) (5 / 2)); 2 2.5 2.5 2.5 8 2.0 Daniel Deutsch

  7. Arithmetic --, *=, /=, +=, -=, %= • The mod operator • % gives you the remainder when dividing two numbers • int mod = 33 % 4; • Find the ones digit of the number 2358? • int ones = 2358 % 10; • The tens digit? • int tens = 2358 / 10; • tens = tens % 10; • Misc. operators • num++, num += 1, num = num + 1 • What’s the difference between num++ and ++num? • num++ executes then line, then increments by 1 • ++numincrements by 1, then executes line • intnum = 0;System.out.println(num++); • // num is now 1 • System.out.println(++num); 235 5 0 2 Daniel Deutsch

  8. Objects • Objects are instantiations of Classes • They have data associated with them and you can call methods on them • Scanner scanner = new Scanner(“Dan 37.4 java”); • // here we call the next() method on a scannerString d = scanner.next(); • Java saves the location in memory where the Object’s data is. Primitives actually save the value of the variable • int a = 5; • String s = “Dan”; • The Math class and the Character class provide static methods that you can call with the class name • double d = Math.floor(3.25); • You cannot instantiate them! • Math math = new Math(); Dan 3.0 5 a Dan s Daniel Deutsch

  9. Strings • Strings are Objects, not primitive types • Indicated with double quotes charAt char c = s.charAt(index); c Length String s = “abcdefghijk”; int length = s.length(); substring String s1 = s.substring(3); String s2 = s.substring(index, 6); defghijk 11 cdef indexOf int index = s.indexOf(‘c’);char bad = s.charAt(length); toLowerCase String lower = “UPPER”.toLowerCase(); 2 upper Crashes! toUpperCase Daniel Deutsch

  10. Strings • Escape characters • There are special characters which use two symbols to represent them • \t is a tab • \n is a newline character • \\ is the \ character String s = “1\t2\n\t3\t\\”; System.out.println(s); 1 2 3 \ Daniel Deutsch

  11. Strings • Covert a String to an int or double • String s = “72”; • int a = Integer.parseInt(s); • double d = Double.parseDouble(“38.08”); • int b = Integer.parseInt(“seven”); • Convert a number into a String • int a = 7; • String s = a + “”; • If you need to compare two Strings, never use ==. The == operator compares the values at the memory address. Objects store a location in memory where the data is stored, not the actual value of the variable. Use equals instead Crashes! • String s1 = “Java”, s2 = “Java”; • if (s1.equals(s2))System.out.println(“same!”); equalsIgnoreCase() Daniel Deutsch

  12. Scanner hasNexthasNextLinenext if (scanner.hasNext()) String d = s.next(); true • Scanner is a class that allows you to iterate over a stream of text, like System.in or a String • It’s located in java.util.Scanner, which you have to import “Dan” nextIntint a = s.nextInt(); 38 nextDouble double d = s.nextDouble(); 12.7 nextChardoes not exist. Do this instead: // user types “yes” char c = kb.next().charAt(0); initialization Scanner kb = new Scanner(System.in);Scanner s = new Scanner(“Dan 38 12.7”); ‘y’ Crashes! s.next();s.hasNext(); false Daniel Deutsch

  13. Scanner Example “First 3 24.8 12 Last” Scanner s = new Scanner(“First 3 24.8 12 Last”); 12 “First” s.next(); s.nextInt(); “3” s.next(); Last s.next(); s.nextInt(); crashes! s.hasNext(); false s.nextDouble(); 24.8 Daniel Deutsch

  14. Math Class • You can use the Math class to do useful math operations • You call the methods with the Math class pow double d1 = Math.pow(2, 3); floor double d5 = Math.floor(5.6); 8.0 5.0 round double d2 = Math.round(7.8); 8.0 sqrt double d6 = Math.sqrt(34); 5.83… ceildouble d3 = Math.ceil(2.1); double d4 = Math.ceil(3.0); 3.0 3.0 Daniel Deutsch

  15. Printf • The printf command allows you to format a print statement in very specific ways • You create a String that encodes the output format of the string • %d for integers • %f for floats • %s for Objects (e.g. Strings) • %% displays %, like the \ character works with normal Strings • You can specify how many spaces wide you want the result to be and how many points after the decimal you want to see • %.2f will have 2 digits after the decimal, padded with 0s. Dosen’t work with integers – why? • %8d will make sure the width of the number is at least 8 characters • %08d will pad the number with 0s if necessary • The newline character \n is not included, like System.out.print(); Daniel Deutsch

  16. Printf Examples int a = 7; System.out.printf(“%3d\n”, a); “ 7” double d2 = 1234567.8; System.out.printf(“%f\n”, d2); 1234567.800000 “007” System.out.printf(“%03d\n”, a); System.out.printf(“%2f\n”, d2); 1234567.800000 double d = 3.2; System.out.printf(“%04d\n”, d); crashes! “3.200” System.out.printf(“%.3f\n”, d); “03.200%” System.out.printf(“%06.3f%%\n”, d); System.out.printf(“My name is %s\n”, “Dan”); “My name is Dan” Daniel Deutsch

  17. If Statements if (a == 3) System.out.println(“equal”); System.out.println(“always runs”); a = 3; “equals” “always runs” a = 2; “always runs”; • If statements are useful when you want to change the logic of your program based on values of variables or properties of Objects • They must use expressions that evaluates to Booleans • If true, it will only execute the next statement unless curly braces are used to create code blocks, regardless of indentation • If statements can combine with else statements for more control. Ifthe if statement evaluates to false, the else statement runs. Otherwise only the if statement runs a = 3 a = 2 if (a == 3) System.out.println(“equal”); else System.out.println(“not equal”); Daniel Deutsch

  18. If Statements • If you have mutually exclusive options, you can use an if-else-if structure. If you include an else, exactly one of the options will be chosen b a c char choice = kb.next().charAt(0); if (choice = ‘a’) System.out.println(“a chosen”); else if (choice == ‘b’) System.out.println(“b chosen”); else System.out.println(“neither”); a b c char choice = kb.next().charAt(0); if (choice = ‘a’) System.out.println(“a chosen”); else if (choice == ‘b’) System.out.println(“b chosen”); Daniel Deutsch

  19. If Statement Examples a = 2, b = 3 a = 8, b = 5 if (a == 8 && b == 5) { System.out.println(“a is 8”); System.out.println(“b is 5”); } int a = 2, b = 3; if (a == 2 && b == 3)System.out.println(1); else if (!(a != 2 || b != 3)) System.out.println(2); This will never be called, no matter what a and b are. Why? a = 2, b = 3 a = 8, b = 5 if (a == 8 && b == 5) x++; y++; 1 (a == 2 && b == 3) is the same as !(a != 2 || b != 3) a = 8, b = 5 a = 8, b = 5 a = 2, b = 3 a = 8, b = 5 a = 2, b = 3 if (a == 8 && b == 5) System.out.println(“a is 8”); System.out.println(“b is 5”); Misleading indentation!Only executes next statement! Daniel Deutsch

  20. If Statement Examples if (a <= 5) { if (b <= 2)System.out.println(“tiny”); } else System.out.println(“huge”);System.out.println(“end”); if (a <= 5) if (b <= 2)Sysytem.out.println(“tiny”);else {System.out.println(“huge”);System.out.println(“end”);} Misleading indentation! Rewrite it Misleading indentation! Rewrite it a = 2, b = 1 a = 2, b = 5 a = 6, b = 1 a = 6, b = 1 a = 2, b = 1 a = 2, b = 3 if (a <= 5) { if (b <= 2)System.out.println(“tiny”); }else System.out.println(“huge”);System.out.println(“end”); This is the same thing!Just clearer (and better) { if (a <= 5) if (b <= 2)System.out.println(“tiny”); else { System.out.println(“huge”);System.out.println(“end”); } else goes withthe most recent if } Daniel Deutsch

  21. Switch Statements • Switch statements are interesting control structures. They are like if statements, but multiple clauses can be executed • Unless there is a break, the program will keep executing • The default case is for when no other case is selected c b a A char choice = kb.next().charAt(0);switch (choice) { case ‘a’: case ‘A’: x++; break; case ‘b’: y++; default: z++;} A a c b A a c A b a A a c b b c c b c A a b Daniel Deutsch

  22. For Loops • For loops are useful when code needs to be repeated and you know how many times it needs to execute. You may not know it will execute 5 times every time the code runs, but it will execute s.length() times • There are 3 parts that create the for loop • They are executed in the following order: 1. Initialization 2. condition 2.1 If true, the body 2.2 Otherwise, end 3. Afterthought 4. Go to step 2 for (inti = 0; i < s.length(); i++) initialization afterthought condition Daniel Deutsch

  23. For Loop Examples for (inti = 0; i< 10; i++) System.out.print(i + “ “); < > for (inti = 10; i 0; i--) System.out.print(i + “ “); … 9 2 0 1 i = 2 1 0 9 10 10 9 8 … 1 Nothing! 012345678910 String s = “I love Java”; for (inti = 0; i< s.length(); i += 2) System.out.print(s.charAt(i)); { for (inti = 0; i < 10; i++) System.out.println((i * 2) + “ “); System.out.println(“finished body”); a l v I a } 0 Finished body 2 Finished body 4 … 18 Finished body 0 2 4 … 18 Finished body for (int n = 1; n < 1000; n *= 2) System.out.print(n + “ “); 1 2 4 … 512 n = 1024 512 * 2 1 * 2 2*2 1 4 2 512 Daniel Deutsch

  24. While and Do-While Loops • While loops are useful when you don’t know how many times the loop will run. Could be based on user input • Do-while loops are useful when you don’t know how many times it will run, but it will run at least once do { char choice = kb.next().charAt(0); // display menu } while (choice != ‘q’); intnum = 0; while (num < 5) { if (kb.next().equals(“y”)) num++; } Daniel Deutsch

  25. File Structure • The class declaration goes first • Method declarations of the class go in the body • Any imports/package declarations go outside of the class imports import java.util.Scanner; Memorize this! class declaration public class MyClass { main method public static void main(String[] args) { // code goes here } public static int add(a, int b) { return a + b; other methods } } Daniel Deutsch

  26. Testing • White box testing: every line of code get executed. • The white box means you can see the code and make the test cases based on the code • Test boundary cases • Test invalid and valid cases • Regression testing: rewriting code or adding code and making sure that everything that worked before works now • Black box testing: try many values that are valid/invalid. You don’t know what the program is doing, so you try many cases Test -1, 0, 1, 9, 10, and 11. Probably values in between if (0 <= a && a <= 10) Daniel Deutsch

More Related