21
06/27/22 IT 275 1 IDE (Integrated Development Environment) 1. A customized plain text editor 2. Compiler 3. Loader 4. Debugging tool JDK (Java Development Kit) = IDE+JRE Eclipse = IDE 1. vi (or emacs) 2. javac hello.java 3. java hello 4. ......

9/12/2015IT 2751 IDE ( Integrated Development Environment ) 1.A customized plain text editor 2.Compiler 3.Loader 4.Debugging tool JDK (Java Development

Embed Size (px)

Citation preview

Page 1: 9/12/2015IT 2751 IDE ( Integrated Development Environment ) 1.A customized plain text editor 2.Compiler 3.Loader 4.Debugging tool JDK (Java Development

04/19/23 IT 275 1

IDE (Integrated Development Environment)1. A customized plain text editor2. Compiler3. Loader4. Debugging tool

JDK (Java Development Kit) = IDE+JRE

Eclipse = IDE

1. vi (or emacs)2. javac hello.java3. java hello4. ......

Page 2: 9/12/2015IT 2751 IDE ( Integrated Development Environment ) 1.A customized plain text editor 2.Compiler 3.Loader 4.Debugging tool JDK (Java Development

04/19/23 IT 275 2

ProblemsSolutions cycle

Problems

System analyst, Project leader

Algorithms

Senior Programmers

Programs in JAVA (or any high level Programming Language)

compiler

AssemblyAssembler

Machine code

linkerResults

Customers

Programmers

SyntaxSemantics

(human)

IDE(computers)VM

Page 3: 9/12/2015IT 2751 IDE ( Integrated Development Environment ) 1.A customized plain text editor 2.Compiler 3.Loader 4.Debugging tool JDK (Java Development

04/19/23 IT 275 3

Procedure- v. Object- orientedTo solve a program is:

To find a way to manipulate data --

• We design procedures • Procedure-Oriented Programming

Statements + functions programs

To find objects to model the problem –

• We choose data (object) • Object-Oriented Programming

Classes + Objects programs(interfaces, methods, attributes…)

Page 4: 9/12/2015IT 2751 IDE ( Integrated Development Environment ) 1.A customized plain text editor 2.Compiler 3.Loader 4.Debugging tool JDK (Java Development

04/19/23 IT 275 4

Robotint street

int avenue

Direction direction

ThingBag backbag

...

...

Robot(City aCity, int aStreet, int aAvenue, Direction aDir)

void move()

void turnLeft()

void pickThing()

void putThing()

...

...

Services, methods

Attributes

UML class diagram for Robot

Class name

Constructor

Page 5: 9/12/2015IT 2751 IDE ( Integrated Development Environment ) 1.A customized plain text editor 2.Compiler 3.Loader 4.Debugging tool JDK (Java Development

04/19/23 IT 275 5

Modeling what?

Modeling Robots in a City with Software Classes.

Robotint street

int avenue

Direction direction

ThingBag backbag

...

...

Robot(City aCity, int aStreet, int aAvenue, Direction aDir)

void move()

void turnLeft()

void pickThing()

void putThing()

...

CityString name

int stree_No

int ave_No

...

...

....

City(...........)

....

....

....

....

Page 6: 9/12/2015IT 2751 IDE ( Integrated Development Environment ) 1.A customized plain text editor 2.Compiler 3.Loader 4.Debugging tool JDK (Java Development

6

import javax.swing.JOptionPane;public class time{ public static void main(String args[]){

int x,y,z; String X,Y;

X = JOptionPane.showInputDialog("Input x"); Y = JOptionPane.showInputDialog("Input y"); x = Integer.parseInt(X); y = Integer.parseInt(Y);

z = x*y;

JOptionPane.showMessageDialog( null, x + " * " + y + " = " + z, "The product of " + x + " and " + y, JOptionPane.PLAIN_MESSAGE ); System.exit(0); }}

classes methods

package

arguments

Variable declaration

class defined in the package

04/19/23IT 275

Anatomy of a Java Program

Page 7: 9/12/2015IT 2751 IDE ( Integrated Development Environment ) 1.A customized plain text editor 2.Compiler 3.Loader 4.Debugging tool JDK (Java Development

04/19/23 IT 275 7

Task: deliver X from (1,2) to (3,1) and step away

X0

1

2

3

4

0 1 2 3 4import becker.robot.*;public class DeliverX{

public static void main(String args[]){ // set up Initial situation City A = new City();

Thing X = new Thing(A,1,2);Robot karel = new Robot(A,0,0,

Direction.East); // direct the robot

karel.move();karel.move();karel.turnLeft(); karel.turnLeft();

karel.turnLeft(); karel.move();karel.pickThing();

karek.move(); karel.move();karel.turnLeft(); karel.turnLeft();karel.turnLeft();karel.move(); karel.putThing();karel.move();

}}

named Karel

Page 8: 9/12/2015IT 2751 IDE ( Integrated Development Environment ) 1.A customized plain text editor 2.Compiler 3.Loader 4.Debugging tool JDK (Java Development

04/19/23 IT 275 8

import becker.robot.*;

public class DeliverX{

public static void main(String args[]){ // set up Initial situation City A = new City();

Thing X = new Thing(A,1,2);Robot karel = new Robot(A,0,0,Direction.East);

// direct the robot karel.move();karel.move();karel.turnLeft(); karel.turnLeft();

karel.turnLeft(); karel.move();karel.pickThing();

karek.move(); karel.move();karel.turnLeft(); karel.turnLeft();karel.turnLeft();karel.move(); karel.putThing();karel.move();

}}

Anatomy of a Java Program

Page 9: 9/12/2015IT 2751 IDE ( Integrated Development Environment ) 1.A customized plain text editor 2.Compiler 3.Loader 4.Debugging tool JDK (Java Development

04/19/23 IT 275 9

Package: collection of classes// Java API: Java Application Programming Interface// (java., javax.)// GUI: Graphical User Interface //// using swing package, JOptionPane class// showMessageDialog method

import javax.swing.JOptionPane;

public class TestPane{

public static void main(String args[]){ JOptionPane.showMessageDialog(

null,"Welcome\nTo\nswing\nPackage");

System.exit(0); }}

Page 10: 9/12/2015IT 2751 IDE ( Integrated Development Environment ) 1.A customized plain text editor 2.Compiler 3.Loader 4.Debugging tool JDK (Java Development

04/19/23 IT 275 10

A Java Program:// Text-printing program.

public class Welcome1 {

// main method begins execution of Java application

public static void main( String args[] ) { System.out.println( "Welcome to Java Programming!" );

} // end method main

} // end class Welcome1

/**********************************************************(C) Copyright 1992-2003 by ...... * * ***********************************************************/

Page 11: 9/12/2015IT 2751 IDE ( Integrated Development Environment ) 1.A customized plain text editor 2.Compiler 3.Loader 4.Debugging tool JDK (Java Development

04/19/23 IT 275 11

Reusing Codes

1. Composition

2. Inheritance

A class has another class, “has a” relation

A class inherits another class, “is a” relation

A car has an engine

An SUV is a car

Page 12: 9/12/2015IT 2751 IDE ( Integrated Development Environment ) 1.A customized plain text editor 2.Compiler 3.Loader 4.Debugging tool JDK (Java Development

04/19/23 IT 275 12

Composition: has a

A DeliverX has a main, The main has a City, Thing, and a Robot

import becker.robot.*;public class DeliverX{

public static void main(String args[]){ // set up Initial situation City A = new City();

Thing X = new Thing(A,1,2);Robot karel = new Robot(A,0,0,

Direction.East); ...... }}

Page 13: 9/12/2015IT 2751 IDE ( Integrated Development Environment ) 1.A customized plain text editor 2.Compiler 3.Loader 4.Debugging tool JDK (Java Development

04/19/23 IT 275 13

Composition: has a

A BankAccount has a Client, has a List of BankTransaction

public class BankAccount { private Client client; private List<BankTransaction> transactions; // other fields ...}

Page 14: 9/12/2015IT 2751 IDE ( Integrated Development Environment ) 1.A customized plain text editor 2.Compiler 3.Loader 4.Debugging tool JDK (Java Development

04/19/23 IT 275 14

Classes:A class is a concept of something

Vehicle4 wheels, seats, engine, windows, color……

accelerate, start, stop, turn, lock, ...............

Truck…………

Sedan…………

SUV…………

Matrix…………

Focus…………

Page 15: 9/12/2015IT 2751 IDE ( Integrated Development Environment ) 1.A customized plain text editor 2.Compiler 3.Loader 4.Debugging tool JDK (Java Development

04/19/23 IT 275 15

Inheritance: From membership point of view

Vehicle

SUV Honda Pilot

Object

Number

IntegerDouble

Base concept

Derived concept

Java

Base class

Derived class

A SUV is a vehicle, but a vehicle may not be a SUV

Any SUV is a Vehicle

Page 16: 9/12/2015IT 2751 IDE ( Integrated Development Environment ) 1.A customized plain text editor 2.Compiler 3.Loader 4.Debugging tool JDK (Java Development

04/19/23 IT 275 16

Inheritance: From functionality point of view

SUV

Vehicle

Derived class

Base class

All vehicle can do, SUV can too

The SUV has every properties and function of the Vehicle

Page 17: 9/12/2015IT 2751 IDE ( Integrated Development Environment ) 1.A customized plain text editor 2.Compiler 3.Loader 4.Debugging tool JDK (Java Development

04/19/23 IT 275 17

UML (Unified Modeling Language) Diagram

Vehicle

Truck SedanSUV

MatrixFocusHonda Pilot

Matrix XRS

Page 18: 9/12/2015IT 2751 IDE ( Integrated Development Environment ) 1.A customized plain text editor 2.Compiler 3.Loader 4.Debugging tool JDK (Java Development

04/19/23 IT 275 18

A

- my_a: int

+get_a():int

B

- my_b: int

+get_b():int

B

- my_b: int

+get_a():int

+get_b():int

=

my_a is invisible to B

Page 19: 9/12/2015IT 2751 IDE ( Integrated Development Environment ) 1.A customized plain text editor 2.Compiler 3.Loader 4.Debugging tool JDK (Java Development

04/19/23 IT 275 19

Base class (superclass) & Derived class (extended subclass)

// A is a base classpublic class A { private int my_a;

Public A(int a) { my_a = a; }

public int get_a() { return my_a; }}

// B is a derived classPublic class B extends A { private int b;

public B(int a, int b) { super(a); this.b = b; }

public int get_b() { return b; }}

A a = new A(2); B b = new B(3,7);

I = a.get_a(); J = b.get_a(); K = b.get_b();

B inherits A’s functions andvariables.

Page 20: 9/12/2015IT 2751 IDE ( Integrated Development Environment ) 1.A customized plain text editor 2.Compiler 3.Loader 4.Debugging tool JDK (Java Development

04/19/23 IT 275 20

An enhanced robot

Robotint street

int avenue

Direction direction

ThingBag backback

Robot(City aCity, int aStreet, int anAvenue,

Direction aDir)

void move()

void turnLeft()

void pickThing()

void putThing()

ExperimentRobot

ExperimentRobot(City aCity, int aStreet,

int anAvenue, Direction aDir)

void turnAround();

void turnRight();

void move3();

=

ExperimentRobot

int street

int avenue

Direction direction

ThingBag backback

ExperimentRobot(City aCity, int aStreet,

int anAvenue, Direction aDir)

void move()

void turnLeft()

void pickThing()

void putThing()

void turnAround();

void turnRight();

void move3();

Page 21: 9/12/2015IT 2751 IDE ( Integrated Development Environment ) 1.A customized plain text editor 2.Compiler 3.Loader 4.Debugging tool JDK (Java Development

04/19/23 IT 275 21

Selection sort algorithm in Java

public static class SelectionSort {

public void sort(int a[]) { for (int i = 0; i<a.length-1; i++) { // select one for a[i]

int j = min(a,i); exchange(a,i,j); } }

// select the minimum between a[s] to the end private int min(int a[], int s) {int m = s; for (int i=s; i<a.length;i++)

if (a[i] < a[m]) m=i; return m; }

private void exchange(int[] a, int i, int j) { int temp = a[i];

a[i] = a[j]; a[j] = temp;

}

} // end of SelectionSort