G12-WEEK1-LESSON2-OBJECTS-AND-CLASSES.pdf
Document Details
Uploaded by ParamountHeisenberg
UP Diliman
Tags
Full Transcript
OBJECTS AND CLASSES Prepared by: Glenn Jr. F. Madrid TOPICS ▪Constructing Objects Using Constructors ▪Accessing Objects via Reference Variables OBJECTIVES: To create objects using constructors. To access objects via object reference variables. To define a reference variable using a referenc...
OBJECTS AND CLASSES Prepared by: Glenn Jr. F. Madrid TOPICS ▪Constructing Objects Using Constructors ▪Accessing Objects via Reference Variables OBJECTIVES: To create objects using constructors. To access objects via object reference variables. To define a reference variable using a reference type. To access an object’s data and methods using the object member access operator (.) To define data fields of reference types and assign default values for an object’s data fields To distinguish between object reference variables and primitive data type variables Constructing Objects Using Constructors CONSTRUCTOR ▪ A constructor is invoked to create an object using the new operator. ▪ Constructors are a special kind of method. They have three peculiarities: ▪ A constructor must have the same name as the class itself. ▪ Constructors do not have a return type—not even void. ▪ Constructors are invoked using the new operator when an object is created. Constructors play the role of initializing objects. Overload Constructors ▪ The constructor has exactly the same name as its defining class. ▪ Like regular methods, constructors can be overloaded (i.e., multiple constructors can have the same name but different signatures), making it easy to construct objects with different initial data values. ▪ It is a common mistake to put the void keyword in front of a constructor. Example: In this example, Circle() is a method, not a constructor. Constructing Objects ▪Constructors are used to construct objects. ▪To construct an object from a class, invoke a constructor of the class using the new operator, as follows: Example: ▪new Circle() creates an object of the Circle class using the first constructor defined in the Circle class ▪new Circle(25) creates an object using the second constructor defined in the Circle class. No-arg constructor ▪A class normally provides a constructor without arguments default constructor ▪class may be defined without constructors. ▪In this case, a public no-arg constructor with an empty body is implicitly defined in the class. ▪This constructor, called a, is provided automatically only if no constructors are explicitly defined in the class. Accessing Objects via Reference Variables ▪An object’s data and methods can be accessed through the dot (.) operator via the object’s reference variable Reference Variables ▪Objects are accessed via the object’s reference variables, which contain references to the objects. Such variables are declared using the following syntax: Reference Type ▪A class is essentially a programmer-defined type. A class is a reference type, which means that a variable of the class type can reference an instance of the class. ▪The following statement declares the variable myCircle to be of the Circle type: The variable myCircle can reference a Circle object. Below statement creates an object and assigns its reference to myCircle: You can write a single statement that combines the declaration of an object reference variable, the creation of an object, and the assigning of an object reference to the variable with the following syntax: Example: The variable myCircle holds a reference to a Circle object. Object vs. Object reference variable ▪ An object reference variable that appears to hold an object actually contains a reference to that object. An object reference variable and an object are different, but most of the time the distinction can be ignored. ▪ Therefore, it is fine, for simplicity, to say that myCircle is a Circle object rather than use the longer-winded description that myCircle is a variable that contains a reference to a Circle object. Array object ▪Arrays are treated as objects in Java. ▪Arrays are created using the new operator. ▪An array variable is actually a variable that contains a reference to an array. Accessing an Object’s Data and Methods ▪ In OOP terminology, an object’s member refers to its data fields and methods. ▪ After an object is created, its data can be accessed and its methods can be invoked using the dot operator (.), also known as the object member access operator: objectRefVar.dataField references a data field in the object. objectRefVar.method(arguments) invokes a method on the object. Example: ▪myCircle.radius references the radius in myCircle, and myCircle.getArea() invokes the getArea method on myCircle. ▪Methods are invoked as operations on objects. ▪The data field radius is referred to as an instance variable, because it is dependent on a specific instance. ▪The method getArea is referred to as an instance method, because you can invoke it only on a specific instance. ▪ The object on which an instance method is invoked is called a calling object. Usually you create an object and assign it to a variable, and then later you can use the variable to reference the object. Occasionally an object does not need to be referenced later. In this case, you can create an object without explicitly assigning it to a variable using the syntax: new Circle(); The statement creates a Circle object. anonymous object System.out.println("Area is " + new Circle(5).getArea()); ▪creates a Circle object and invokes its getArea method to return its area. ▪An object created in this way is known as an anonymous object Reference Data Fields ▪ The data fields can be of reference types. Example: ▪ The following Student class contains a data field name of the String type. String is a predefined Java class. Null Value ▪If a data field of a reference type does not reference any object, the data field holds a special Java value, null. ▪null is a literal just like true and false. ▪While true and false are Boolean literals, null is a literal for a reference type. The default value of a data field is null for a reference type, 0 for a numeric type, false for a boolean type, and \u0000 for a char type. However, Java assigns no default value to a local variable inside a method. The following code displays the default values of the data fields name, age, isScienceMajor, and gender for a Student object: The following code has a compile error, because the local variables x and y are not initialized: NullPointerException ▪NullPointerException is a common runtime error. It occurs when you invoke a method on a reference variable with a null value.