Chapter 2

CHAPTER 2 Using Objects Basic Programming Terminology Computer program process values. Numbers (digits) Words (Strings) These values are different Stored differently in the computer

Every value has a type Tells you kind of operations you can do Example you cant multiply strings. Variables and Types Variable Used to store values Has a type, name, value Basic types:

Integer or int Floating point numbers - float or double Single character char Multiple character - String Number literal Value such as 13 or 1.3 Number Literals in java Number Type

Comment 6 int An integer has no fractional part. -6 int Integers can be negative. 0 int Zero is an integer

0.5 double A number with a fractional part - double 1.0 double Still a fractional part 1E6 double A number in exponential notation: 1 X 106

Always are double 2.9E-2 double Same as above 100,000 Error: Cant have commas 3 Error: Dont use fractions, use decimals. You Try It

What type of variable would you use. Your name The distance to the moon Your address Your social security number Your total salary Why Have Integers

Take less storage space Process faster Dont cause rounding errors When to use? When to use double Dont need fractional parts When you need fractional part Will discuss other types in chapter 4

Primitive types Expression Variables Variable declaration examples: String greeting = "Hello, World!"; printStream printer = System.out; int luckyNumber = 13; Type must match your value

int myNumber = 007; // error Variable Declarations in Java Variable Name Comment int width = 10; Declares an integer variable and initializes it to 10. int area = width*height; The initial value can depend on other variables. Note: width and height have

already been declared. age= 5; Error: the type is missing. This statement is not a declaration but an assignment. int age = 5; Error: You cannot initialize a number with a string. int width, height; Declares two integer variables in a single statement. double grade = 2.3;

Declares a double variable and initializes it to 2.3 String name ; Declares a variable but does not assign a value to it. Identifiers The name of variable, method, class Rules

Can use letter, digits, underscore (_), $ Cannot start with digit Cannot use spaces or symbols Cannot use reserve words (Appendix C) Convention Variable and method names Start with lowercase CamelCase ok and desirable Classes start with uppercase

Dont use $ in name Variable Name Variable name Comment farewellMessage Camel case good X Legal but bad form Greeting Watch out for case sensitive

6pack Error: Cannot start with a number Farewell message Error: cannot contain spaces Public Error: reserve word Chose descriptive names for variables. Variable Declaration Type of variable Initial value: Note:

quote marks. String greeting = Hello, Dave; Descriptive Variable Name Declaration ends with a semicolon. You Try It Create a variable for each of these.

Your name The distance to the moon Your address Your social security number Your total salary Assignment Change value of variable Example

int width = 10; width = 20; Must assign a value before using a variable. width = width + 10; Objects, Classes, & Methods Object: A value you an manipulate by calling one or more of its methods

Method: Sequence of instructions for the object Class: the type of the object Examples System.out Belongs to class PrintStream Method println Hello World Belongs to String class PrintStream Object

4 String Object String data = Class Hello length toUpperClass .. Internal Data Methods

Method Parameters Methods fundamental build blocks of Java Perform work by calling the method Parameter Input to a method Provides info needed by method

Two types of parameters Explicit (goes in parentheses) Implicit (goes in front of the method) Defines the object being used Method Parameters Example System.out.println(greeting); System.out Explicit

parameter Object println Method greeting Implicit parameter What to print Example

String data = Hello length toUpperClass .. Look at method length Takes no explicit input to perform operations Provides some output information In this case 5 Two More Methods toUpperCase

Converts all letter in string to upper case Example String String String river = Mississippi; creek = Chickamauga; bigRiver = river.toUpperCase(); river holds Mississippi bigRiver holds MISSISSIPPI Return Values

Used to provide information back to calling routine Provides the results Example int n = greeting.length(); You will assign the value of the length of the value referred to by the variable greeting More Complex String Methods String river = Mississippi; River.replace(ississi, our); Replace is the method

takes two values What to replace What to replace it with Example issipp our Missouri Method Definitions

Specifies the types of the explicit parameters Specifies the return type Example public int length() Method not return anything type void public void addNumbers() Method Definitions

You can have multiple methods with the same name. Method name is overloaded if a class has more than one method with the same name (but different parameter types) public void println(String output) public void println(int output) Constructing Object

Will use Rectangle as an example Important note: Not the drawing Numbers to define the drawing Need x and y coordinates of top left corner Need width Need height Rectangle box = new Rectangle(10,10,20,30); Constructing an Object

Rectangle box = new Rectangle(10,10,20,30); What is happening new makes a new Rectangle object Use the parameters 10,10,20,30 to initialize the data Returns the object to the variable box This process is called constructing

Constructing a Rectangle Type of Object Name of Variable to hold object The parameters need for the rectangle Rectangle box = new Rectangle (5, 10, 20, 30); Says its a new one. Create object. Will explain this one later. Two Kinds of Method

Accessor Methods Allows us to access data from an object Double width = box.getWidth(); Mutator Methods Change the method Box.translate(15,20); Moves

the object 15 in the x-direction Moves the object 20 in the y-direction API Documentation API: Application Programming Interface Lists the classes and methods of the Java library ex.html Documents all classes in the library

Thousands Appendix D = abbreviated version Importing If you want to use a class from the API, you have to import it. Import java.awt.Rectangle; Implementing a Test Program Steps

Provide a tester class Supply a main Inside the main method, construct 1+ objects Apply methods to the objects Display the results Display the values expected import java.awt.Rectangle; public class MoveTester { public static void main(String [] args) {

Rectangle box = new Rectangle(5,10,20,30); box.translate(15,25); System.out.print("x "); System.out.println(box.getX()); System.out.println("Expected: 20"); System.out.print("y ");; System.out.println(box.getY()); System.out.println("Expected: 35"); } } Object References Object reference describes the location of

an object The new operator returns a reference to a new object Rectangle box = new Rectangle(); Multiple object variables can refer to the same object Rectangle box = new Rectangle(5, 10, 20, 30); Rectangle box2 = box; box2.translate(15, 25); Primitive type variables object Object References Object and Number References

Object and Number References int luckyNumber = 13; int luckyNumber2 = luckyNumber; luckyNumber2 = 12; Copying Object References Rectangle box = new Rectangle(5, 10, 20, 30); Copying Object References Rectangle box = new Rectangle(5, 10, 20, 30); Rectangle box2 = box; Copying Object References Rectangle box = new Rectangle(5, 10, 20, 30); Rectangle box2 = box; Box2.translate(15, 25);

Graphical Applications Display drawing inside a window Shows information inside a frame Frame window with a text bar To Show a Frame Construct an object of the JFrame Class; Set the size

frame.setTitle(First frame); Set the default close operation frame.setSize(300,400); Set the title of the frame JFrame frame = new Jframe();

frame.setDefaultCloseOperation(Jframe.EXIT_ ON_CLOSE); Make the frame visible import javax.swing.JFrame; public class EmptyFrameViewer2 { public static void main(String [] args) { JFrame frame = new JFrame(); frame.setSize(300,400); frame.setTitle("My first frame"); frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);

frame.setVisible(true); } } Drawing on a Component Cannot draw directly on a frame Must construct a component object Add the component object to the frame Component import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Rectangle; import javax.swing.JComponent; public class RectangleComponent extends JComponent

{ public void paintComponent(Graphics g) { Graphics2D g2 = (Graphics2D) g; Rectangle box = new Rectangle (5,10,50,50); g2.draw(box); box.translate(15,25); g2.draw(box); } } Rectangle Viewer import javax.swing.JFrame; public class RectangleViewer { public static void main(String [] args) { JFrame frame = new JFrame(); frame.setSize(300,400);

frame.setTitle("Two Rectangles"); frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); RectangleComponent component = new RectangleComponent(); frame.add(component); frame.setVisible(true); } Ellipses, Lines, Text, and Color To draw an ellipse, you specify its bounding box Like a rectangle

Specify x and y starting position Specify the height Specify the width Ellipse2D.Double ellipse = new Ellipse2D.Double(x,y,width,height); Use same draw method as rectangles Draw Lines

Specify the two end points Line2D.Double segment = new Line2D.Double(x1,y1,x2,y2); Can define from point Point2D.Double from = new Point2D.Double(x1,y1) Can define to point Point2D.Double to = new Point2D.Double(x1,y1) Line2D.Double segment = new Line2D.Double(from,to); DrawText

Used to put text inside a drawing Label some of the parts Use the drawString method Specify the string and the x and y positions of the base point of 1st character g2.drawString(Message, 50,100); Colors

Initially all drawing is in black Must change the color Predefined colors (page 67) Can define own colors. g2.setColor(Color:RED); g2.draw(circle); g2.fill(circle);

Recently Viewed Presentations

  • Budget advisory: Summary of final 2007-08 K-12 budget

    Budget advisory: Summary of final 2007-08 K-12 budget

    Budget advisory: Summary of final 2007-08 K-12 budget ACSA Governmental Affairs Brett McFadden, Mgt. Services Executive August 30, 2007 The 2007-08 State Budget: Overview After several years of steady of growth, the state's economic engine begins to slow in the...
  • Introdução a Segurança da Informação

    Introdução a Segurança da Informação

    Gestão de Tecnologias Windows/Unix Segurança em redes e telecomunicações Controle de acesso Arquitetura e modelos de segurança Criptografia Outros Recursos Academia Latino Americana de Segurança da Informação Parceria Módulo / Microsoft Composta por: Estágio Básico (4 módulos) Graduação Cada disciplina...
  • Choose a category. You will be given the

    Choose a category. You will be given the

    Choose a category. You will be given the answer. You must give the correct question. Click to begin.
  • Who 'Dat?

    Who 'Dat?

    More Characters from the . Odyssey. 200. She holds off the suitors with a weaving trick. Penelope. 400. This suitor is the first to die because he was the ringleader. ... Odysseus is able to make his shot go through...
  • Las nacionalidades hispanas - WHS Spanish, Mr. Barile

    Las nacionalidades hispanas - WHS Spanish, Mr. Barile

    Las nacionalidades hispanas Ser = to be (permanent) Usa el verbo ser con las nacionalidades. Yo soy Nosotros somos Tú eres Vosotros sois Él Ellos Ella es Ellas son Usted Ustedes Nosotros somos peruanos.


    The profit arising out of the Client Code Modification transactions, where in client code was modified later, should be considered as the profit of the assessee and hence the same should be assessed in its hands as Income from Undisclosed...
  • Marketing Functions -

    Marketing Functions -

    The Seven Marketing Functions. Involves two-way interactions between the business and the customer. Ex: Buying my first car at the dealership OR buying a house with my realtor . Selling. Deciding how much to charge for goods & services to...
  • God After Darwin -

    God After Darwin -

    God After Darwin 2. Evolution and God's Self-Emptying, Suffering Love July 30, 2006 9 to 9:50 am in the Parlor All are welcome! O God our heavenly Father, you have blessed us and given us dominion over all the earth:...