Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
48 views6 pages

Class 6: Lab Session On Classes and Objects

The document discusses using the BigInteger class and writing classes in Java. It provides examples of a Point class that uses Cartesian and polar coordinates to demonstrate encapsulation and how writing classes with well-defined interfaces allows flexibility. It also gives exercises to write classes for BigDecimal numbers, a polar Point class, and a Rectangle class using two Point objects.

Uploaded by

yekych
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
48 views6 pages

Class 6: Lab Session On Classes and Objects

The document discusses using the BigInteger class and writing classes in Java. It provides examples of a Point class that uses Cartesian and polar coordinates to demonstrate encapsulation and how writing classes with well-defined interfaces allows flexibility. It also gives exercises to write classes for BigDecimal numbers, a polar Point class, and a Rectangle class using two Point objects.

Uploaded by

yekych
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 6

Class 6: Lab Session on

Classes and Objects

1.00/1.001 - Introduction to
Computation and Problem Solving

Review of Key Ideas


class and object how these differ
the new operator
references to objects
constructor methods
invoking methods and accessing
public data members of objects-the
dot operator

1
Using the BigInteger Class
import java.math.*; // For BigInteger
import java.util.*; // For Random
public class BigIntTest {
public static void main(String[] args) {
BigInteger a= new BigInteger("1000000000000");
Random r= new Random(); // Random nbr generator
BigInteger b= new BigInteger(32, r); // Random
BigInteger c;
c= b.add(a); // c= b+a
BigInteger g= a;
BigInteger d= new BigInteger(32, 10, r); // Prime
BigInteger e;
e= c.divide(d); // e= c/d
if (d.isProbablePrime(10))
System.out.println("d is probably prime");
else
System.out.println("d is probably not prime");
BigInteger f= d.multiply(e); // f= d*e
}
}

Exercise 1: Existing Class


Use the BigDecimal class (floating point
numbers) to:
Construct BigDecimal a= 13 x 10500
Construct BigDecimal b randomly
Hint: Construct a random BigInteger, then use the
appropriate BigDecimal constructor. See Javadoc
Compute BigDecimal c= a + b
Compute BigDecimal d= c / a
Look up rounding type in Javadoc
Print out a, b, c, d after computing each one

2
Exercise 1: Existing Class (2)
Write the program in stages:
Construct a, print it. Compile and debug
Dont count the zeros!
After constructing b, print it. Compile and
debug
Do the addition and division. Compile and
debug

Exercise 2: Writing A Class


In homeworks, you will be writing your
own classes
Youve already seen classes in all our
examples, but theyre not typical
They just have a single method, main()
Most classes dont have a main() method
To build a program, youll write several
classes, one of which has a main()
method

3
Point Class
public class SimplePoint {
private double x, y; // Data members
public SimplePoint() { // Constructor
x= 0.0;
y= 0.0; }
// Methods
public double getX() { return x;}
public double getY() { return y;}
public void setX(double xval) { x= xval;}
public void setY(double yval) { y= yval;}
public void move(double deltaX, double deltaY) {
x += deltaX;
y += deltaY; }
} // End of class SimplePoint

// This isnt a program because it doesnt have main()


// but it can be used by classes with a main()

Point Class, main()


public class SimplePoint1 {
public static void main(String[] args) {
SimplePoint a= new SimplePoint();
SimplePoint b= new SimplePoint();
double xa= a.getX();
double ya= a.getY();
System.out.println("a= (" + xa + " , " + ya + ")");
a.move(-9.0, 7.5);
System.out.println("a= (" + a.getX() +
" , " + a.getY() + ")");
}
}

4
Exercise 2
Write a different SimplePoint class that
uses polar coordinates instead of
Cartesian coordinates
Implement the same public methods as the
previous SimplePoint class
Use r and theta as the private data fields
Recall that:
x = r cos(theta)
y = r sin(theta)
r = sqrt(x2 + y2)
theta= tan-1(y/x)
Use the Java Math class (capital M)
Use Math.atan2( ) for the arctan function
Use the same main() as before

Why Do This?
By building a class with public methods
but private data, you only commit to an
interface, not an implementation
If you need to change implementation, you can
do so without breaking any code that depends
on it, as long as the interface (set of methods)
stays the same
Changing coordinate systems, computational
methods, etc., is quite common, as in this
example. This allows flexibility as software
grows and changes

5
Exercise 3-Using Point Class
Create a new class called Rectangle that
has two Point objects in it, one for the
upper left corner and one for the lower
right corner
Write a setUpperLeft() and
setLowerRight() method that has double
values as arguments
Write a getArea() method that returns the
area of the rectangle as a double

Java is a trademark or registered trademark of Sun Microsystems, Inc. in the United


States and other countries.

You might also like