6.092-2 More types, methods & conditionals ( Java Programming)
6.092: Intro to Java2: More types, Methods, ConditionalsOutline• �Lecture 1 Review�More types �Methods �Conditionals Types Kinds of values that can be stored and manipulated. boolean: Truth value (true or false).int: Integer (0, 1, -47).double: Real number (3.14, 1.0, -2.1).String: Text (“hello”, “example”).Variables Named location that stores a valueExample: String a = “a”;String b = “letter b”;a = “letter a”;String c = a + “ and “ + b;Operators Symbols that perform simple computationsAssignment: = Addition: + Subtraction: Multipllication * Division: /class GravityCalculator { public static void main(String[] args) { double gravity = -9.81; double initialVelocity = 0.0; double fallingTime = 10.0; double initialPosition = 0.0; double finalPosition = .5 * gravity * fallingTime * fallingTime;finalPosition = finalPosition +initialVelocity * fallingTime; finalPosition = finalPosition + initialPosition; System.out.println("An object's position after " + fallingTime + " seconds is " + finalPosition + “ m."); } } finalPosition = finalPosition + initialVelocity * fallingTime; finalPosition = finalPosition + initialPosition; OR finalPosition += initialVelocity * fallingTime; finalPosition += initialPosition; Questions from last lecture?Outline• �Lecture 1 Review�More types �Methods �Conditionals Division Division (“/”) operates differently on integers and on doubles! Example: double a = 5.0/2.0; //a = 2.5 intb = 4/2; //b = 2 int c = 5/2; //c = 2 double d = 5/2; //d = 2.0 Order of Operations Precedence like math, left to rightRight hand side of = evaluated firstParenthesis increase precedencedouble x = 3 /2 + 1; //x = 2.0 double y = 3 /(2 + 1); //y = 1.0 Mismatched Types Java verifies that types always match:String five = 5; //ERROR! test.java.2: incompatible types found: int required: java.lang.String String five = 5; Conversion by casting inta = 2; //a = 2double a = 2; //a = 2.0 (Implicit)int a = 18.7; //ERRORint a = (int)18.7; //a = 18double a = 2/3; //a = 0.0double a = (double)2/3; //a = 0.6666…Outline• �Lecture 1 Review�More types �Methods �Conditionals Methods{ } public static void main(String[] arguments) System.out.println(“hi”); Adding Methods public static void NAME() { STATEMENTS }To call a method:NAME(); class NewLine { public static void newLine() {System.out.println("");}public static void threeLines() {newLine(); newLine(); newLine();}public static void main(String[] arguments){ System.out.println("Line 1"); threeLines(); System.out.println("Line 2"); } } class NewLine { public static void newLine() {System.out.println("");}public static void main(String[] arguments){ System.out.println("Line 1"); threeLines(); System.out.println("Line 2"); public static void threeLines() {newLine(); newLine(); newLine();}} } public static void main(String[] arguments){ System.out.println("Line 1"); threeLines(); System.out.println("Line 2"); public static void threeLines() {newLine(); newLine(); newLine();}class NewLine { public static void ""newLine() { System.out.println(); } } } Parameterspublic static void NAME(TYPE NAME) { STATEMENTS } To call: NAME(EXPRESSION); class Square { public static void printSquare(int x){ System.out.println(x*x); } public static void main(String[] arguments){ int value = 2; printSquare(value); printSquare(3); printSquare(value*2); } } class Square2 { public static void printSquare(int x){ System.out.println(x*x); } public static void main(String[] arguments){ printSquare("hello"); printSquare(5.5); } } What’s wrong here? class Square3 { public static void printSquare(double x){ System.out.println(x*x); } public static void main(String[] arguments){ printSquare(5); } } What’s wrong here? Multiple Parameters[…] NAME(TYPE NAME, TYPE NAME) { STATEMENTS } To call: NAME(arg1, arg2); class Multiply { public static void times (double a, double b){ System.out.println(a * b); } public static void main(String[] arguments){ times (2, 2); times (3, 4); } } Return Values public static TYPE NAME() { STATEMENTS return EXPRESSION; } void means “no type” class Square3 { public static void printSquare(double x){ System.out.println(x*x); } public static void main(String[] arguments){ printSquare(5); } } class Square4 { public static double square(double x){ return x*x; } public static void main(String[] arguments){ System.out.println(square(5)); System.out.println(square(2)); } } Variable Scope Variables live in the block ({}) where they are defined (scope) Method parameters are like defining a new variable in the method class SquareChange { public static void printSquare(int x){ System.out.println("printSquare x = " + x); x = x * x; System.out.println("printSquare x = " + x); } public static void main(String[] arguments){ int x = 5; System.out.println("main x = " + x); printSquare(x); System.out.println("main x = " + x); } } class Scope { public static void main(String[] arguments){ int x = 5; if (x == 5){ int x = 6;int y = 72;System.out.println("x = " + x + " y = " + y);} System.out.println("x = " + x + " y = " + y); } } Methods: Building Blocks • �Big programs are built out of small methods �Methods can be individually developed, tested and reused �User of method does not need to know how it works�In Computer Science, this is called “abstraction” Mathematical FunctionsMath.sin(x)Math.cos(Math.PI /2)Math.pow(2, 3)Math.log(Math.log(x + y))Outline• �Lecture 1 Review�More types �Methods �Conditionals if statement if (CONDITION) { STATEMENTS } public static void test(int x){ if (x > 5){ System.out.println(x + " is > 5"); } } public static void main(String[] arguments){ test(6); test(5); test(4); } Comparison operators x > y: x is greater than y x < y: x is less than y x >= y: x is greater than or equal to x x <= y: x is less than or equal to y x == y: x equals y ( equality: ==, assignment: = ) Boolean operators&&: logical AND ||: logical OR if ( x > 6 && x < 9) { if (x > 6) { …if (x < 9) { }… } } else if (CONDITION) { STATEMENTS } else { STATEMENTS } public static void test(int x){ if (x > 5){ System.out.println(x + " is > 5"); } else { System.out.println(x + " is not > 5"); } } public static void main(String[] arguments){ test(6); test(5); test(4); } else if if (CONDITION) { STATEMENTS } else if (CONDITION) { STATEMENTS } else if (CONDITION) { STATEMENTS } else { STATEMENTS } public static void test(int x){ if (x > 5){ System.out.println(x + " is > 5"); } else if (x == 5){ System.out.println(x + " equals 5"); } else { System.out.println(x + " is < 5"); } } public static void main(String[] arguments){ test(6); test(5); test(4); } Questions?Assignment: FooCorporation Method to print pay based on base pay andhours worked Overtime: More than 40 hours, paid 1.5 times base pay Minimum Wage: $8.00/hour Maximum Work: 60 hours a week Reminder• �Write your own code �Homework due tomorrow (Wednesday) 3pm on Stellar. Conversion by method int to String: String five = 5; //ERROR!String five = Integer.toString (5);String five = “” + 5; //five = “5”String to int: int foo = “18”; //ERROR! int foo = Integer.parseInt (“18”); Comparison operators • �Do NOT call == on doubles! EVER.double a = Math.cos (Math.PI /2); double b = 0.0; a = 6.123233995736766E-17a == b will return FALSE!MIT OpenCourseWarehttp://ocw.mit.edu 6.092 Introduction to Programming in Java January (IAP) 2010 For information about citing these materials or our Terms of Use, visit: http://ocw.mit.edu/terms.
Description
In this lecture notes we are going to continue with more types, methods, conditionals . Types: Kinds of values that can be stored and manipulated.Variables: Named location that stores a value.Operators: Symbols that perform simple computations, and how to Add Methods and usage of Comparison operators and conditionals such as IF, IF..ELSE and nested IF.
“Level:Undergraduate Instructors:Evan Jones,Adam Marcus,Eugene Wu ,6.092-2 More types, methods, conditionals 6.092 Introduction to Programming in Java,Electrical Engineering and Computer Science, Engineering, Massachusetts Institute of Technology: MIT Open Course Ware,http://ocw.mit.edu (22-08-2011).License: Creative Commons BY-NC-SA: http://ocw.mit.edu/terms/#cc".
Presentation Transcript
Your Facebook Friends on WizIQ