| NextTimeInstantiatingFactorialSpreadsheetUse.java |
package lectures.class_dual_roles.instances;
import util.annotations.WebDocuments;
@WebDocuments({"Lectures/ClassDualRolesInstances.pptx", "Lectures/ClassDualRolesInstances.pdf", "Videos/ClassDualRolesInstances.avi"})
public class NextTimeInstantiatingFactorialSpreadsheetUse {
public static void main (String[] args) {
/*
* The previous class is being instantiated now before use by doing a new
* Each new creates a new copy of the instance variables declared in the class
* It an instance of the class and can be assigned
* to a variable whose type is the name of the class of the instance.
* Instances are called objects.
* The class of an object is the class instantiated to create the object.
*/
ALoopingFactorialSpreadsheet factorial4 = new ALoopingFactorialSpreadsheet();
/*
* Not all values in Java are objects.
* ints, doubles, char, boolean are primitive values.
* These are not instantiated and thus do not have classes.
* A primitive value is not an instance of any class, that is,
* does not have a class.
*
* (T/F) One of the roles of a class is to define a new type and provide
* a mechanism for creating a (possibly infinite) set of values
* (called instances) of that types.
*/
/*
*
* What do you expect from the following prints when you uncomment them
* An easy way comment and uncomment a line or a group of lines
* is to click on the first character of the line or select the lines
* and press CTRL/
*
*/
// System.out.println(factorial4 instanceof ALoopingFactorialSpreadsheet);
// System.out.println(new ALoopingFactorialSpreadsheet() instanceof ALoopingFactorialSpreadsheet);
// System.out.println("hello world" instanceof ALoopingFactorialSpreadsheet);
// System.out.println("hello world" instanceof String);
// System.out.println (factorial4.getClass());
// System.out.println ("hello world".getClass());
// System.out.println (5.getClass()); // 5 is a primitive
factorial4.setNumber(4);
/*
* (T/F) new ALoopingFactorialSpreadsheet() is an instance of ALoopingFactorialSpreadsheet.
* (T/F) "hello world" is an instance of ALoopingFactorialSpreadsheet.
* (T/F) "hello World" is an instance of a class.
* (T/F) 5 is an instance of a class.
* (T/F) 5 is a primitive value.
* (T/F) "hello World" is a primitive value.
*/
System.out.println(factorial4.getFactorial()
* factorial4.getFactorial());
/*
* Creating another instance of our new type.
* We can create an arbitrary number of factorial spreadsheets,
* possibly in a loop
*/
ALoopingFactorialSpreadsheet factorial2 = new ALoopingFactorialSpreadsheet();
/*
* A class can be instantiated an arbitrary number of times (modulo
* memory constraints).
*/
factorial2.setNumber(2);
System.out.println(factorial2.getFactorial()
* factorial2.getFactorial());
System.out.println (factorial2.getFactorial()/factorial2.getFactorial());
// ALoopingFactorialSpreadsheet.setNumber(3);
/*
* Is uncommenting the above statement legal?
*
* (T/F)An instance method can be invoked on a class, that is, it can be
* invoked by prefixing the method name with the name of the class + ".'
*
* (T/F)A static method can be invoked on a class, that is, it can be
* invoked by prefixing the method name with the name of the class + ".'.
*
* (T/F) A class C1 can call a static method declared in class C2 without
instantiating it.
* (T/F) A class C1 can call an instance method declared in class C2 without
instantiating it (assuming no inheritance).
*
*/
}
}
/*
* Go to:{PropertiesAnalyzer}
*/