Presentation is loading. Please wait.

Presentation is loading. Please wait.

Announcements Assignment 2 and Lab 4 due Wednesday.

Similar presentations


Presentation on theme: "Announcements Assignment 2 and Lab 4 due Wednesday."— Presentation transcript:

1 Announcements Assignment 2 and Lab 4 due Wednesday

2 Questions? Loops

3 Today in COMP 110 Classes & Methods

4 Classes Java programs consists of objects of various class types interacting with one another You have already been using classes System, String, Scanner, Math

5 Classes A class is a definition of a kind of object
It describes a general template or blueprint for creating objects of that class A class “Car” is a definition of what a “Car” is and what it can do

6 Classes & Objects Objects of the class Car might have the following attributes Make Model Year Owner Location All objects of the class Car have these attributes, but with potentially different values

7 Classes & Objects Class Car Camry object Focus object Make Model Year
Owner Location Camry object Make = Toyota Model = Camry Year = 2000 Owner = John Doe Location = Garage Focus object Make = Ford Model = Focus Year = 2001 Owner = Samantha Smart Location = School

8 Classes & Objects Both the “Camry” and “Ford” objects satisfy the definition of the class “Car” They are said to be instances of the “Car” class When we create an object of a certain class, we are said to instantiate it

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

10 Methods Classes also define the actions that objects of its type can perform These are called methods All objects of the same class have the same methods The class “Car” might have the following methods accelerate() brake() sell() start()

11 UML A UML class diagram can be useful in describing classes
UML stands for Universal Modeling Language

12 UML A UML class diagram for the class “Car” Class name Data
make: String model: String year: int owner: String - location: String + accelerate(double pedalPressure): void + brake(double pedalPressure): void + sell(): void + start(): void Class name Data Methods (actions)

13 Class Files & Separate Compilation
Each Java class definition goes in its own, SEPARATE .java file ClassName  ClassName.java The class “Car” must be saved in a file called “Car.java”

14 Class Files & Separate Compilation
What happens when you compile a .java file? .java file gets compiled into a .class file Car.java is compiled into Car.class Contains Java bytecode You can compile a Java class before you have a program that uses it

15 Defining Classes You have already been defining your own classes!
Every program you have written defines a class //define the class TipCalculator public class TipCalculator { }

16 The Student Class Student name: String year: int gpa: double
major: String credits: int gpaSum: double + getName(): String + getMajor(): String + printData(): void + increaseYear(): void + calculateGPA(double grade): void

17 Defining the Class Student
Class name public class Student { public String name; public int year; public double GPA; public String major; // ... public String getMajor() { return major; } public void increaseYear() { year++; // … Data (instance variables) Methods

18 Instance Variables The data members of a class are called instance variables public String name; public int year; public double gpa; public String major; public No restrictions on how these instance variables are used (more details later)

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

20 Using Instance Variables: Inside the Class Definition
public class Student { public String name; public int year; public double GPA; public String major; // ... public String getMajor() { return major; } public void increaseYear() { year++; // …

21 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 sam = new Student(); sam.name = "Samantha Smart"; sam.major = "Biology"; System.out.println(sam.name + " is majoring in " + sam.major); } “jack.name” and “sam.name” are two different instance variables because they belong to different objects

22 Methods Two kinds of methods Methods that return a value
Examples string.substring() string.charAt() Methods that return nothing Example System.out.println()

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

24 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() { year++; }

25 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); }

26 Methods All method definitions must appear inside the definition of the class to which they belong! public class Student { // … public String getMajor() { return major; } public void increaseYear() { year++;

27 Methods When you use a method such as keyboard.nextInt()
you are said to call or invoke the method

28 Calling Methods that Return Nothing
Syntax object.method(); Use them like Java statements Student jack = new Student(); jack.year = 1; jack.increaseYear(); System.out.println("Jack’s class year is " + jack.year); Output Jack’s class year is 2

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; }

30 The 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 the return type 30

31 Methods that Return a Value
public String getClassYear() { if(classYear == 1) return "Freshman"; else if(classYear == 2) return "Sophomore"; else if ... }

32 Calling Methods that Return a Value
Syntax object.method(); Use as a variable of the method’s return type Student jack = new Student(); jack.name = "Jack Smith"; 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 The Return Statement Can also be used in methods that return nothing
Terminates the method Syntax: return; public void increaseYear() { if(classYear >= 4) return; //exit the method classYear++; } 33

34 The Return Statement Typically, you want to write your methods to contain only one return statement It will make your programs easier to read

35 The Main Method The main method is a method like any other
public static void main(String[] args) { // … } The main method is not invoked by you, but invoked automatically by the system when you run a program

36 The Main Method Classes that have a main method can be run a program
Not all classes have a main method Some are used inside the main method of other classes

37 Local Variables Variables declared inside a method are called local variables As opposed to instance variables, which are declared in the class definition public class Student { public double gpa; //an instance variable public static void main(String[] args) { int size; //a local variable // … }

38 Local/Instance variables
Declared in a class Confined to the class Can be used anywhere in the class that declares the variable, including inside the class’ methods Local variables Declared in a method Confined to the method Can only be used inside the method that declares the variable

39 Programming Demo Counter class
A class used to count things Define a class that records a count as a non-negative whole number Include methods for the following Reset counter to 0 Increment the count Decrement the count Get the current count Display the current count

40 Counter Class No methods should allow the count to become negative
Write a program to test the class

41 Programming Demo Programming

42 Wednesday More about Classes


Download ppt "Announcements Assignment 2 and Lab 4 due Wednesday."

Similar presentations


Ads by Google