150 likes | 262 Views
Join the CSc2310 tutoring session to learn about classes, objects, instance methods, class methods, object creation, and method usage. Explore Java programming concepts like data manipulation, object-oriented organization, and class interactions. Discover how to initialize data using constructors, create and use objects effectively, and define methods for actions on data. Practice creating objects for students and tutors, understanding classes and their roles, and implementing methods to perform actions such as learning Java. Enhance your Java programming skills through practical examples and Q&A sessions.
E N D
The 10th and 11th tutoring sessionFall, 2012 • What is a class, what is an object and why we need classes • How to create objects • What is a instance method and what is a class method • How to create and use methods HaidongXue 5:30pm—8:30pm 10/9/2012 and 10/10/2012
CSc2310 Tutoring • Time: 5:30pm-8:30pm • Tutor: HaidongXue • Website: http://www.cs.gsu.edu/~hxue1/csc2310_Tutoring/index.html There are 2 sections: 1. Review • What is a class, what is an object and why we need classes • How to create objects • What is a instance method and what is a class method • How to create and use methods 2. Q&A • Answer your questions about java programming
Class and Object • What does a program do? • Manipulate data • There are many ways to organize data in a program, and a very convenient and popular way is Object Oriented, i.e.: using objects to organize data • Let’s set the tutoring room as a example
Assuming in this tutoring room, we have: A student Elena A tutor A student Haydon Robert • What are the data we have here? • What are the actions on those data? A student Kevin
Data and actions on data: • Data: • Name: Elena • Java Level: 100 • Data: • Name: Haydon • Java Level: 30000 • Teaching Experience: 2000 Elena • Data: • Name: Robert • Java Level: 120 Haydon Robert We can use 4 objects to organize all the data here. To avoid creating the variables for students 3 times, we can use classes • Data: • Name: Kevin • Java Level: 102 Kevin
Student Class Tutor Class • Data: • Name: Elena • Java Level: 100 • Data: • Name: Haydon • Java Level: 30000 • Teaching Experience: 2000 Elena • Data: • Name: Robert • Java Level: 120 Haydon Robert • By name, “class” means a type of objects • Thereby, we can divide the objects here into 2 classes: Student and Tutor • Then, we only need to define 1 student class and 1 tutor class • Data: • Name: Kevin • Java Level: 102 Kevin
Data: • Name: Elena • Java Level: 100 • Data: • Name: Haydon • Java Level: 30000 • Teaching Experience: 2000 Elena Haydon • Data: • Name: Robert • Java Level: 120 class Student{ String name; intjavaLevel; } Robert class Tutor{ String name; intjavaLevel; } • Data: • Name: Kevin • Java Level: 102 Kevin How to initialize those data for each object? Using Constructors
Constructors • A method of a class, with the same name as the class name • With no return type • They are automatically called when creating a object
Data: • Name: Elena • Java Level: 100 • Data: • Name: Haydon • Java Level: 30000 • Teaching Experience: 2000 Elena Haydon • Data: • Name: Robert • Java Level: 120 class Student{ String name; intjavaLevel; public Student( String n, int l ){ name=n; javaLevel=l; } } Robert constructor • Data: • Name: Kevin • Java Level: 102 class Tutor{ String name; intjavaLevel; intteachingExp; public Tutor( String n, intl, intexp){ name=n; javaLevel=l; teachingExp=exp; } } Kevin constructor
Data: • Name: Elena • Java Level: 100 • Data: • Name: Haydon • Java Level: 30000 • Teaching Experience: 2000 Elena Haydon class Student{ String name; intjavaLevel; public Student( String n, int l ){ name=n; javaLevel=l; } } • Data: • Name: Robert • Java Level: 120 Robert class Tutor{ String name; intjavaLevel; intteachingExp; public Tutor( String n, intl, intexp){ name=n; javaLevel=l; teachingExp=exp; } } • Data: • Name: Kevin • Java Level: 102 Kevin To create the objects in this tutoring room: Student elena= new Student(“Elena”, 100); Student robert= new Student(“Robert”, 120); Student kevin= new Student(“Kevin”, 102); Tutor haydon= new Tutor(“Haydon”, 30000, 2000); create objects
Methods • Methods are used to represent the actions on data • E.g.: A student here may learn java, and their java level may then increase • Those actions are defined by Methods
Data: • Name: Elena • Java Level: 100 • Actions: • Learn ( hours ) • Data: • Name: Haydon • Java Level: 30000 • Teaching Experience: 2000 Elena Haydon • Data: • Name: Robert • Java Level: 120 • Actions: • Learn ( hours ) Robert class Student{ String name; intjavaLevel; public Student( String n, int l ){ name=n; javaLevel=l; } public void learn( int hours){ javaLevel = javaLevel + hours; } } • Data: • Name: Kevin • Java Level: 102 • Actions: • Learn ( hours ) Kevin The “learn” action
class Student{ String name; intjavaLevel; public Student( String n, int l ){ name=n; javaLevel=l; } public void learn( int hours){ javaLevel = javaLevel + hours; } } • Data: • Name: Elena • Java Level: 100 • Actions: • Learn ( hours ) Elena • Data: • Name: Robert • Java Level: 120 • Actions: • Learn ( hours ) Robert • Data: • Name: Kevin • Java Level: 102 • Actions: • Learn ( hours ) What happened when a method is called? After Robert having learnt Java for 1 hour, whose Java level will increase? Kevin Remember that when you learn Java, only your Java skill increases When calling a method of an object, it does not affect other objects’ private data
Simulate today’s tutoring session class Student{ String name; intjavaLevel; public Student( String n, int l ){ name=n; javaLevel=l; } public void learn( int hours){ javaLevel = javaLevel + hours; } public void showStatus(){ System.out.println(name + " with Java level " + javaLevel); } } class Tutor{ String name; intjavaLevel; intteachingExp; public Tutor( String n, intl, intexp){ name=n; javaLevel=l; teachingExp=exp; } public void teach(Student s, int hours){ s.learn(hours); } } Your code: Tutor haydon = new Tutor( “Haydon”, 30000, 1000);
Please let me know your questions. I will be here till 8:30pm