Presentation is loading. Please wait.

Presentation is loading. Please wait.

COMP 110 Classes Luv Kohli October 1, 2008 MWF 2-2:50 pm Sitterson 014.

Similar presentations


Presentation on theme: "COMP 110 Classes Luv Kohli October 1, 2008 MWF 2-2:50 pm Sitterson 014."— Presentation transcript:

1 COMP 110 Classes Luv Kohli October 1, 2008 MWF 2-2:50 pm Sitterson 014

2 Announcements Lab 4 due 2

3 Questions? 3

4 Today in COMP 110 Briefly go over Program 2 Classes 4

5 Program 2 5 12.7+3.3 0123456789 Operand 1Operand 2Operator

6 Program 2 6 12.7+3.3 0123456789 Assume the String above is in the variable calculation. int firstSpace = calculation.indexOf(‘ ’); int lastSpace = calculation.lastIndexOf(‘ ’); double operand1 = Double.parseDouble(calculation.substring(0, firstSpace)); double operand2 = Double.parseDouble(calculation.substring(lastSpace + 1)); char operator = calculation.charAt(firstSpace + 1);

7 Program 2 Now you can determine which calculation to perform using a switch or if/else double result = 0.0; switch (operator) { case ‘+’: result = operand1 + operand2; break; case ‘-’: result = operand1 – operand2; break; // and so on } 7

8 Exponent ^ double result = 0.0; switch (operator) { case ‘^’: result = 1.0; for (int count = 0; count < (int) operand2; count++) result *= operand1; break; case ‘-’: result = operand1 – operand2; break; // and so on } 8

9 == generally bad for floating-point Floating-point numbers are imprecise ◦ After doing many computations, value may not be exactly the same ◦ 5.0 * 3.0 might be different from 1.0 + 2.0 + 3.0 + 4.0 + 5.0 Okay for this assignment for the divide by 0 extra credit 9

10 num++ vs. ++num num++ is NOT num + 1 num++ does num = num + 1 So does ++num, BUT, there is a difference int num1 = 5; System.out.println(num1++); // outputs num1 (5), then increments num1 int num2 = 5; System.out.println(++num2); // increments num2, then outputs num2 (6) 10

11 Class A class is the definition of a kind of object ◦ A blueprint for constructing specific objects 11 Class Name: Automobile Data: amount of fuel speed license plate Methods (actions): accelerate: How: Press on gas pedal. decelerate: How: Press on brake pedal.

12 Objects, Instantiation 12 Object Name: patsCar amount of fuel: 10 gallons speed: 55 miles per hour license plate: “135 XJK” Object Name: suesCar amount of fuel: 14 gallons speed: 0 miles per hour license plate: “SUES CAR” Object Name: ronsCar amount of fuel: 2 gallons speed: 75 miles per hour license plate: “351 WLF” Instantiations, or instances, of the class Automobile

13 UML (Universal Modeling Language) 13 Automobile - fuel: double - speed: double - license: String + accelerate(double pedalPressure): void + decelerate(double pedalPressure): void Class name Data Methods (actions)

14 Objects Important: classes do not have data; individual objects have data Classes specify what kind of data objects have 14

15 Class files and separate compilation Each Java class definition goes in its own, SEPARATE.java file ClassName  save the file as ClassName.java Student.java includes the class Student 15

16 Class files and separate compilation What happens when you compile a.java file? ◦.java file gets compiled into a.class file  Contains Java bytecode  Same filename except for.class instead of.java  (note to self: show this) You can compile a Java class before you have a program that uses it 16

17 class Student 17 Class Name: Student - Name - Year - GPA - Major - Credits - GPA sum + getName + getMajor + printData + increaseYear How: increase year by 1 + calcGpa How: average grades

18 class Student 18 Class Name: Student - name: String - year: int - gpa: double - major: String - credits: int - gpaSum: double + getName(): String + getMajor(): String + printData(): void + increaseYear(): void + calcGpa(double grade): void

19 Defining a class public class Student { public String name; public int classYear; public double GPA; public String major; //... public String getMajor() { return major; } public void increaseYear() { classYear++; } 19 Class name Data (instance variables) Methods

20 Creating an object Create an object jack of class Student Student jack = new Student(); Scanner keyboard = new Scanner(System.in); Create an object keyboard of class Scanner 20 Create an object Return memory address of object Assign memory address of object to variable

21 Instance variables Data defined in the class are called instance variables public String name; public int classYear; public double GPA; public String major; 21 public: no restrictions on how these instance variables are used (more details later – public is actually a bad idea here) type: int, double, String… variables

22 Using instance variables: inside the class definition 22 public class Student { public String name; public int classYear; public double GPA; public String major; //... public String getMajor() { return major; } public void increaseYear() { classYear++; }

23 Using public instance variables outside a class public static void main(String[] args) { Student jack = new Student(); jack.name = “Jack Smith”; jack.major = “Computer Science”; System.out.println(jack.name + “ is majoring in ” + jack.major); Student apu = new Student(); apu.name = “Apu Nahasapeemapetilon”; apu.major = “Biology”; System.out.println(apu.name + “ is majoring in ” + apu.major); } jack.name and apu.name are two different instance variables because they belong to different objects 23

24 Methods Two kinds of methods ◦ Methods that return a value  Examples: String’s.substring() method, String’s.indexOf() method, etc. ◦ Methods that return nothing  Example: System.out.println() 24

25 Methods public String getMajor() { return major; } public void increaseYear() { classYear++; } 25 returns a String returns nothing return type

26 Defining methods that return nothing Method heading: keywords ◦ public: no restriction on how to use the method (more details later) ◦ void: the method returns nothing Method body: statements executed when the method is called (invoked) ◦ Must be inside a pair of braces public void increaseYear() { classYear++; } 26

27 Method printData As usual, inside a block (defined by braces), you can have multiple statements public void printData() { System.out.println(“Name: ” + name); System.out.println(“Major: ” + major); System.out.println(“GPA: ” + gpa); } 27

28 Calling methods that return nothing object, followed by dot, then method name, then () Use them as Java statements Student jack = new Student(); jack.classYear = 1; jack.increaseYear(); System.out.println(“Jack’s class year is ” + jack.classYear); 28

29 Defining methods that return a value Method heading: keywords ◦ public: no restriction on how to use the method (more details later) ◦ Type: the type of value the method returns Method body: statements executed ◦ Must be inside a pair of braces ◦ Must have a return statement public String getMajor() { return major; } 29

30 return statement A method that returns a value must have at least one return statement Terminates the method, and returns a value to the caller Syntax: ◦ return Expression; Expression can be any expression that produces a value of type specified by the return type in the method heading 30

31 Methods that return a value public String getClassYear() { if (classYear == 1) return “Freshman”; else if (classYear == 2) return “Sophomore”; else if... } 31

32 Calling methods that return a value object, followed by dot, then method name, then () (same as before) Use them as a value of the type specified by the method’s return type Student jack = new Student(); jack.major = “Computer Science”; String m = jack.getMajor(); System.out.println(“Jack’s full name is ” + jack.getName()); System.out.println(“Jack’s major is ” + m); 32

33 return statement Can also be used in methods that return nothing Terminates the method Syntax: ◦ return; public void increaseYear() { if (classYear >= 4) return; classYear++; } 33

34 Friday More about classes 34


Download ppt "COMP 110 Classes Luv Kohli October 1, 2008 MWF 2-2:50 pm Sitterson 014."

Similar presentations


Ads by Google