Week 1 Power Point Slides

advertisement
JAVA IN INDUSTRY

Develop desktop applications



JGrasp, NetBeans, Eclipse, and many others
ACORNS, ELK, WOLF, SoundEditor
Java Server Pages (JSP): Respond to client side requests
for Web-pages and JavaScript AJAX requests

Applets: Applications that run from within a browser and can
be dragged to run as a stand alone application

Network Services: Server side programs that listen for client
side requests

Cloud Computing: Applications that reside on distributed
groups of remote computers
Check Out: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
JAVA TERMINOLOGY REVIEW

public static void main(String[] args)





public
static
void
main
String[] args





Variable
Identifier
Command line
Class, Object
Constructor
Instance variable




public, private
Primitive variable
Reference variable
Scope and Visibility
OTHER RESERVED WORDS
PrimitiveData Types








final
import
package
return
null
new
class, this
break, continue

Integer






Fraction



byte
char
short
int
long
float
double
Boolean (boolean)


true
false
Note: Java reserved words are always lower case
BASIC CONSTRUCTS

All programs, no matter how complex, consist of:
Sequence blocks
 Decision statements (if, switch, case, default)
 Loops (four kinds)

 do/while
– posttest
 while – pretest
 for – counter controlled
 for/each
Expressions and operators
 Arrays, initializer list

COMMON COMPILATION ERRORS












Cannot resolve symbol zzz
Variable x might not have been initialized
'Class' or 'interface' expected
Not a statement
Non-static method doIt() cannot be called from a static
context
; expected
Cannot return a value from a method of type void
Method does not return a value
Missing return statement
Unreachable statement
Return type required
Possible loss of precision
COMMON RUNTIME EXCEPTIONS/MESSAGES
NullPointerException
 ArithmeticException
 ArrayIndexOutOfBoundsException
 StringIndexOutOfBoundsException
 Could not find main class
 NumberFormatException

DEVELOPMENT ENVIRONMENTS

For Beginners




Jgrasp, BlueJ, DrJava
Easy to learn and use
Limited plugin and language support
For large scale projects typical of industry





Development environment for many languages besides Java
Extensive plugin support
Fully featured: including integrated profiler and version control
NetBeans: Created by Sun/Oracle; easier to use than Eclipse
Eclipse: Created by IBM; more plugins than NetBeans
Note: We will use the Eclipse IDE in this class
DEBUGGING



When a problem is not obvious
Ensure a program really works for all cases
Glass Box debugging
 Test every statement and every path
 Thoroughly test the loops
 Force the program through error paths
Black Box debugging: Functional tests and quality assurance
In Eclipse (Debug View)
Insert print statements
 Comment out lines
 Set a breakpoint: Execute one statement at a time
 Over, into, out, to cursor
 By condition or count
 See what happened
 Cursor over a variable
 In debug view, type window, then expressions

DEVELOPING AN APPLET
A web-based application that runs within a browser
public class MyApplet extends javax.swing.Japplet // Inheritance
{
public void init() // Initialization
{
// Add code here to instantiate variables and configure the interface
// Set the size, and color the background
// Set an icon if desired
}
public @Override void paint(Graphics g) // Control what displays
{
super.paint(g);
// Add code here to draw onto the Applet window
} }
JAVA GRAPHICS





Measured in pixels
The (0,0) point is at the
upper left corner
x-axis values increase as
positions go to the right
The y-axis values increase
as positions descend
vertically
If part of a shape is beyond
the bounds, that part will
not display
POLYGON CLASS

Create a polygon
int[] xs = {10,30,100,120,300};
int[] ys = {200,250,270,300,350};
Polygon poly = new Polygon(xs, ys, xs.length);

Move polygon: x horizontally, y vertically
poly.translate(x, y);

Get polygon width and height:
poly.getBounds().width & poly.getBounds().height

Draw and Fill polygon (draw only paints the outline) :
g2d.draw(poly) and g2d.fill(poly);
POLYGON EXAMPLE
(xPoints[0], yPoints[0])
(xPoints[5], yPoints[5])
(xPoints[1], yPoints[1])
(xPoints[3], yPoints[3])
(xPoints[4], yPoints[4])
(xPoints[2], yPoints[2])
int[] xPoints = {100, 300, 250, 200, 120, 70};
int[] yPoints = {80, 100, 160, 130, 150, 95};
Polygon poly = new Polygon(xPoints, yPoints, xPoints.length);
poly.translate(-70, -80); // Move to the top left corner)
g.setColor(Color.RED);
g2d.fill(poly);
GRAPHICS CLASS
Draw lines, circles, rectangles,
polygons, colors, text
public @Override void paint(Graphics g)
{ Graphics2D g2d = (Graphics2D)g;
g2d.setColor(new Color(255,0,0));
Line2D.Float line = new Line2D.Float(20,10,700,250);
g2d.draw(line);
g2d.setColor(new Color(0,255,0,128));
g2d.fill(new Rectangle(300,100,50,100));
g2d.setColor(Color.LIGHT_GRAY);
g2d.fill(new Ellipse2D.Float(500,150,100,150));
int[] xPoints = {10,30,100,120,300};
int[] yPoints = {200,250,270,300,350};
g2d.setColor(Color.MAGENTA);
g2d.fill(new Polygon(xPoints, yPoints, 5));
Font font = new Font("Times New Roman",Font.BOLD,25);
g2d.setFont(font);
g2d.setColor(Color.BLACK);
g2d.drawString("Meaningless Shapes", 300,500);
}
Download