Classes and Objects in JavaClasses and ObjectsMore ObjectsClasses contain data definitionsClasses contain methodsMethods contain statementsMethods may contain temporary dataClasses always contain constructorsDiagram of program structureSummaryWriting and running programsGetting startedA bad programA complete programThe EndJan 14, 2019Classes and Objects in Java2Classes and ObjectsA Java program consists of one or more classesA class is an abstract description of objectsHere is an example class:class Dog { ...description of a dog goes here... }Here are some objects of that class:3More ObjectsHere is another example of a class:class Window { ... }Here are some examples of Windows:4Classes contain data definitionsClasses describe the data held by each of its objectsExample:class Dog { String name; int age; ...rest of the class...}Data usually goes first in a classA class may describe any number of objectsExamples: "Fido", 3; "Rover", 5; "Spot", 3; A class may describe a single object, or even no objects at all5Classes contain methodsA class may contain methods that describe the behavior of objectsExample:class Dog { ... void bark() { System.out.println("Woof!"); }}Methods usually go after the dataWhen we ask a particular Dog to bark, it says “Woof!”Only Dog objects can bark; the class Dog cannot bark6Methods contain statementsA statement causes the object to do something(A better word would be “command”—but it isn’t)Example:System.out.println("Woof!");This causes the particular Dog to “print” (actually, display on the screen) the characters Woof!7Methods may contain temporary dataData described in a class exists in all objects of that classExample: Every Dog has its own name and ageA method may contain local temporary data that exists only until the method finishesExample:void wakeTheNeighbors( ) { int i = 50; // i is a temporary variable while (i > 0) { bark( ); i = i – 1; }}8Classes always contain constructorsA constructor is a piece of code that “constructs,” or creates, a new object of that classIf you don’t write a constructor, Java defines one for you (behind the scenes)You can write your own constructorsExample:class Dog { String name; int age; Dog(String n, int age) { name = n; this.age = age; }}(This part is the constructor)9Diagram of program structureA program consists of one or more classesTypically, each class is in a separate .java fileProgramFileFileFileFileClassVariablesConstructorsMethodsVariablesVariablesStatementsStatements10SummaryA program consists of one or more classesA class is a description of a kind of objectIn most cases, it is the objects that do the actual workA class describes data, constructors, and methodsAn object’s data is information about that objectAn object’s methods describe how the object behavesA constructor is used to create objects of the classMethods (and constructors) may contain temporary data and statements (commands)11Writing and running programsWhen you write a program, you are writing classes and all the things that go into classesYour program typically contains commands to create objects (that is, “calls” to constructors)Analogy: A class is like a cookie cutter, objects are like cookies.When you run a program, it creates objects, and those objects interact with one another and do whatever they do to cause something to happenAnalogy: Writing a program is like writing the rules to a game; running a program is like actually playing the gameYou never know how well the rules are going to work until you try them out12Getting startedQuestion: Where do objects come from?Answer: They are created by other objects.Question: Where does the first object come from?Answer: Programs have a special main method, not part of any object, that is executed in order to get things startedpublic static void main(String[ ] args) { Dog fido = new Dog("Fido", 5); // creates a Dog}The special keyword static says that the main method belongs to the class itself, not to objects of the classHence, the main method can be “called” before any objects are createdUsually, the main method gets things started by creating one or more objects and telling them what to do13A bad programpublic class Dog { String name; int age; Dog(String name, int age) { this.name = name; this.age = age; } public static void main(String[] args) { bark(); } void bark() { System.out.println("Woof!"); }}non-static method bark() cannot be referenced from a static context--------- new Dog("Fido", 5).bark();14A complete programclass Dog { String name; int age; Dog(String n, int age) { name = n; this.age = age; } void bark() { System.out.println("Woof!"); } void wakeTheNeighbors( ) { int i = 50; while (i > 0) { bark( ); i = i – 1; }}public static void main(String[ ] args) { Dog fido = new Dog("Fido", 5); fido.wakeTheNeighbors();}} // ends the class15The End“I invented the term ‘Object-Oriented’, and I can tell you I did not have C++ in mind.” --Alan Kay, creator of
View Full Document