1 / 29

OOP with Java

OOP with Java. Classes and Objects. Classes. When you design a class, think about the objects that will be created from that class type. Think about: Things that the object knows Things that the object does. What’s the difference between a class and an object?.

jock
Télécharger la présentation

OOP with Java

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. OOP with Java Classes and Objects

  2. Classes • When you design a class, think about the objects that will be created from that class type. Think about: • Things that the object knows • Things that the object does

  3. What’s the difference between a class and an object? • A class is not an object (but it’s used to construct them) • A class is a blueprint for an object.

  4. Example: An entry in your address book • Each entry has the same blank fields (instance variables) • When you fill out an entry you are creating an object and the entries you make represent its state • Methods of the class are the things you do to a particular entry: getName(), setName(), changeName() could all be a methods for your class entries. • So each entry can do the same thing (methods) but each entry knows things unique to that entry

  5. Instance and Local Variables • Instance variables are declared inside a class but not within a method. class Dog{ private String name; private double height=10.2; } • Local Variables are declared within a method. class AddThing{ int a, b=12; public int add(){ inttotal=a+b; return total; } } • Local Variables MUST be initialized before use! class Foo{ public void go(){ intx; int z= x+3; } }

  6. Declaring Classes • This is a class declaration class MyClass { // field, constructor, and // method declarations } class bodycontains all the code that provides for the life cycle of the objects created from the class: constructors for initializing new objects, declarations for the fields that provide the state of the class and its objects, and methods to implement the behavior of the class and its objects

  7. Class Declaration • In general, class declarations can include these components, in order: • Modifiers such • Access modifiers: public, protected, and private • Modifier requiring override: abstract • Modifier restricting to one instance: static • Modifier prohibiting value modification: final • The class name, with the initial letter capitalized by convention. • The name of the class's parent (superclass), if any, preceded by the keyword extends. A class can only extend (subclass) one parent. • A comma-separated list of interfaces implemented by the class, if any, preceded by the keyword implements. A class can implement more than one interface. • The class body, surrounded by braces, {}.

  8. Access Modifiers • public modifier—the field is accessible from all classes. • private modifier—the field is accessible only within its own class.

  9. Member Variables w/ Access Modifiers • Member variables in a class—these are called fields/instance variables. • Variables in a method or block of code—these are called local variables. • Variables in method declarations—these are called parameters. Field declarations are composed of three components, in order: • Zero or more modifiers, such as public and private • The field's type. • The field's name.

  10. Methods public double calculateAnswer(double wingSpan, intnumberOfEngines, double length, double grossTons) { //do the calculation here } • The only required elements of a method declaration are the method's return type, name, a pair of parentheses (), and a body between braces{}. • The signature of the method declared above is: calculateAnswer(double, int, double, double)

  11. Method • More generally, method declarations have six components, in order: • Modifiers—such as public, private, and others • The return type—the data type of the value returned by the method, or void if the method does not return a value. • The method name—the rules for field names apply to method names as well, but the convention is a little different. • The parameterlist in parenthesis—a comma-delimited list of input parameters, preceded by their data types, enclosed by parentheses, (). If there are no parameters, you must use empty parentheses. • An exception list—to be discussed later. • The method body, enclosed between braces—the method's code, including the declaration of local variables, goes here.

  12. Constructors • A constructor is a set of instructions designed to initialize an instance. • Constructors have one purpose in life: to create an instance of a class. • Dog pet= new Dog(); • A class contains constructors that are invoked to create objects from the class blueprint. • Constructor declarations look like method declarations—except that they use the name of the class and have no return type

  13. Constructors You can write a constructor for your class , But if you don't, the compiler writes one for you! Here's what the compiler's default constructor looks like: public Duck () { }

  14. Constructor

  15. Constructor

  16. Constructor The compiler gets involved with constructor-making only if you don't say anything at all about constructors.

  17. Calling of methods , constructors and passing of information • Calling of methods : name of methods and your arguments (if there are any information to be passed) • Calling of constructors happen with the new keyword. • Similar to methods, you can also pass information as long as the parameters (type and name) is define along with the constructors.

  18. this keyword • Within an instance method or a constructor, this is a reference to the current object • The most common reason for using the this keyword is because a field is shadowed by a method or constructor parameter. public class Point { public int x = 0; public int y = 0; //constructor public Point(int x, int y) { this.x = x; this.y = y; } }

  19. Creating Objects • Declaration: The code set in bold are all variable declarations that associate a variable name with an object type. • Instantiation: The new keyword is a Java operator that creates the object. • Initialization: The new operator is followed by a call to a constructor, which initializes the new object. Point originOne = new Point(23, 94);

  20. Instantiating a class • The new operator: instantiates a class by allocating memory for a new object and returning a reference to that memory. • This reference is usually assigned to a variable of the appropriate type, Point originOne = new Point(23, 94);

  21. Initializing an Object public class Point { public int x = 0; public int y = 0; //constructor public Point(int a, int b) { x = a; y = b; } }

  22. Calling objects variables • Referencing an objects fields. • Object fields are accessed by their name • Code that is outside the object's class must use an object reference or expression, followed by the dot (.) operator, followed by a simple field name, as in: objectReference.fieldName

  23. Calling objects methods • method's simple name to the object reference, with an intervening dot operator (.) • Also, you provide, within enclosing parentheses, any arguments to the method. • If the method does not require any arguments, use empty parentheses. objectReference.methodName(argumentList); or: objectReference.methodName();

  24. The Garbage Collector • The Java platform allows you to create as many objects as you want, and you don't have to worry about destroying them. • The Java runtime environment (JRE) deletes objects when it determines that they are no longer being used. This process is called garbage collection. • References that are held in a variable are usually dropped when the variable goes out of scope. • Or, you can explicitly drop an object reference by setting the variable to the special value null.

  25. Assignment • Study and research on Nested Classes • Why use nested classes? • Scope of the inner and outer classes • Simple example of nested classes, and explain in your own words

  26. Overloading a Method This means that methods within a class can have the same name if they have different parameter lists • public class DataArtist { • ... • public void draw(String s) { • ... • } • public void draw(inti) { • ... • } • public void draw(double f) { • ... • } • public void draw(inti, double f) { • ... • } • } END

More Related