Upload
brent-pope
View
216
Download
1
Embed Size (px)
Citation preview
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. ......
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
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…)
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
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(...........)
....
....
....
....
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
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
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
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); }}
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 ...... * * ***********************************************************/
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
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); ...... }}
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 ...}
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…………
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
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
04/19/23 IT 275 17
UML (Unified Modeling Language) Diagram
Vehicle
Truck SedanSUV
MatrixFocusHonda Pilot
Matrix XRS
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
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.
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();
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