CSE110
Principles of Programming
with Java
Lecture 16:
Classes and Objects
Javier Gonzalez-Sanchez
[email protected]
javiergs.engineering.asu.edu | javiergs.com
Office Hours: By appointment
Slide 2
Slide 2 text
static keyword
Slide 3
Slide 3 text
Javier Gonzalez-Sanchez | CSE110 | Summer 2020 | 3
static
class
static int variable1;
public static void sayHelloAll(){
}
int variable2;
public void sayHello (){
}
Slide 4
Slide 4 text
Javier Gonzalez-Sanchez | CSE110 | Summer 2020 | 4
static
• Non-static methods can use static and non-static
variables
• static methods can only use static variables.
• static variable = class variable
• Non-static variable =
instance/object variables/attributes.
Slide 5
Slide 5 text
Javier Gonzalez-Sanchez | CSE110 | Summer 2020 | 5
static
class
static int variable1;
public static void sayHelloAll(){
variable1 =0;
variable2 =0;
}
int variable2;
public void sayHello (){
variable1 =0;
variable2 =0;
}
Slide 6
Slide 6 text
Communication
Call and Create Methods
Slide 7
Slide 7 text
Javier Gonzalez-Sanchez | CSE110 | Summer 2020 | 7
Object-Oriented Paradigm
public class Student {
String name;
int finalGrade;
public void sayHello(){
// print name
}
public void drawSomething(){
// draw
}
}
public class MyProgram {
public static void main(String [] arg) {
Student john = new Student();
john.name = "John Doe";
john.sayHello();
jane.name = "Jane Doe";
jane.sayHello();
}
}
john jane
Slide 8
Slide 8 text
Javier Gonzalez-Sanchez | CSE110 | Summer 2020 | 8
Call Methods
• john.sayHello();
• john.sayHello("in French");
• int x = john.giveMeANumber();
• int result = john.addThisNumbers(2,2);
Slide 9
Slide 9 text
Javier Gonzalez-Sanchez | CSE110 | Summer 2020 | 9
Create Methods
• public void sayHello() { }
• public void sayHello(String language) {}
• public int giveMeANumber(){}
• public int addThisNumbers(int x, int y) {}
Slide 10
Slide 10 text
Javier Gonzalez-Sanchez | CSE110 | Summer 2020 | 10
Methods
• public or private
• static (optional)
• type (void, int, double, String, etc.)
• name
• (parameters)
• { body }
Slide 11
Slide 11 text
Javier Gonzalez-Sanchez | CSE110 | Summer 2020 | 11
Example
Slide 12
Slide 12 text
Javier Gonzalez-Sanchez | CSE110 | Summer 2020 | 12
Example
Slide 13
Slide 13 text
Javier Gonzalez-Sanchez | CSE110 | Summer 2020 | 13
Example
CSE110 - Principles of Programming
Javier Gonzalez-Sanchez
[email protected]
Summer 2020
Disclaimer. These slides can only be used as study material for the class CSE110 at ASU. They cannot be distributed or used for another purpose.