Notas de Aula
Prof. Andr Bernardi
Caracterstica Bsica
http://java.sun.com
Capacidade de execuo em diferentes
plataformas e sistemas operacionais,
sem a necessidade de recompilao do
cdigo fonte.
Ambiente Java
Ambiente Java
Java Application
// Welcome1.java - A first program in Java.
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
Compilao
http://java.sun.com/j2se/1.5.0/docs/api/
javac Welcome1.java
java Welcome1
Segundo exemplo
// Welcome4.java - Printing multiple lines in a dialog box
// import class JOptionPane
import javax.swing.JOptionPane;
public class Welcome4
{ // main method begins execution of Java application
public static void main( String args[] )
{
JOptionPane.showMessageDialog(null,
"Welcome\nto\nJava\nProgramming!" );
System.exit( 0 ); // terminate application
} // end method main
} // end class Welcome4
Terceiro Exemplo
Terceiro Exemplo
Quarto Exemplo
// Addition program that displays the sum of two numbers.
import java.util.Scanner; // program uses class Scanner
public class Addition
{
// main method begins execution of Java application
public static void main( String args[] )
{ // create Scanner to obtain input from command window
Scanner input = new Scanner( System.in );
int number1;
// first number to add
int number2;
// second number to add
int sum;
// sum of number1 and number2
System.out.print( "Enter first integer: " ); // prompt
number1 = input.nextInt(); // read first number from user
System.out.print( "Enter second integer: " ); // prompt
number2 = input.nextInt(); // read second number from user
sum = number1 + number2; // add numbers
System.out.printf( "Sum is %d\n", sum ); // display sum
} // end method main
} // end class Addition
Operadores
Operadores Aritmticos
Operadores Relacionais
Operadores
Operadores Lgicos
Regras de precedncia
Palavras reservadas
Estruturas de Controle
Estrutura Condicional
if ( studentGrade >= 60 )
System.out.println( "Passed" );
if ( studentGrade >= 60 )
System.out.println( "Passed" );
else
System.out.println( "Failed" );
Estrutura while
int product = 2;
while ( product <= 1000 )
product = 2 * product;
Estrutura for
for ( int counter = 1; counter <= 10; counter++ )
g.drawLine( 10, 10, 250, counter * 10 );
Estrutura switch
Estrutura do/while
int counter = 1;
do {
g.drawOval( 110 - counter * 10, 110 counter * 10, counter * 20,
counter * 20 );
++counter;
} while ( counter <= 10 ); // end do/while
Exerccios
1. Escreva um programa em Java que desenhe um Retngulo Na Tela,
com as seguintes personalizaes possveis:
Exerccios
2. Crie um programa em Java calcular e
imprimir os 20 primeiros nmeros primos.
Lembrar que um nmero primo aquele que
s divisvel por ele mesmo e por um.
3. Faa um aplicativo Java para calcular o
fatorial de um nmero, digitado pelo usurio.
Lembrar que :
n! = 1 * 2 * ... * (n-2) * (n-1) * n;
Mtodos
Outra denominao para funo
membro
Exerccio 1
1. Crie um mtodo em Java que calcule a
distncia D (em metros) alcanada por um
mssil lanado com uma velocidade inicial V
(em m/s) e um ngulo de tiro A (em graus).
Sabe-se da fsica bsica que a expresso para
esse clculo (desconsiderando o atrito do ar)
a seguinte:
V 2 .sin( 2 A)
D=
g
Exerccio 2
2. O comprimento do arco ABC de uma parbola
dada por ,
onde a a altura da parbola e b a distncia
entre A e C (veja figura acima). Implemente um
programa em Java que leia os valores a e b e
calcule o comprimento do arco da parbola
correspondente atravs do uso de uma funo
Strings e Caracteres
Strings e Caracteres
Os objetivos deste tpico so:
Criar e manipular conjuntos de caracteres
no modificveis, objetos da classe String
Criar e manipular conjuntos de caracteres
modificveis, objetos da classe StringBuffer
Criar e manipular Objetos da classe
Character
Compreender a utilizao da classe
StringTokenizer
Classe String
Classe String
Mtodos de Comparao
boolean equals(String); // true se iguais
boolean equalsIgnoreCase(String);
int compareTo(String);( <0, ==0, >0 )
boolean regionMatches(inicio, string,
inicio, cont); // true se iguais
boolean String.regionMatches(caseIgnore,
inicio, string, inicio, cont);
boolean String.startWith(String, offset);
boolean String.endWith(String);
Classe String
Localizando caracteres e substrings
int
int
int
int
indexOf(String);
indexOf(String, inicio);
indexOf(char);
indexOf(char, inicio);
int
int
int
int
lastIndexOf(String);
lastIndexOf(String, inicio);
lastIndexOf(char );
lastIndexOf(char, inicio);
Classe String
Extraindo substrings
String substring(indice);
String substring(inicio,
final);
Concatenando strings
String String.concat( String );
Classe String
Mtodos Variados
String replace(charFrom, charTo)
String toLowerCase()
String toUpperCase()
String trim()
String toString()
char[ ] toCharArray()
Classe StringBuffer
Construtores
StringBuffer();
StringBuffer(int);
StringBuffer(String);
StringBuffer(StringBuffer);
Classe StringBuffer
StringBuffer.charAt(int);
StringBuffer.setCharAt(posicao, char);
StringBuffer.getChars(inicio, fim,
destino, inicio);
StringBuffer.reverse();
Classe StringBuffer
StringBuffer.append(Object);
StringBuffer.append(String);
StringBuffer.append(char);
StringBuffer.append(char[]);
StringBuffer.append(char[], start, end );
StringBuffer.append(int);
StringBuffer.append(long);
StringBuffer.append(float);
StringBuffer.append(double);
Classe StringBuffer
StringBuffer.insert(pos,Object);
StringBuffer.insert(pos,String);
StringBuffer.insert(pos,char);
StringBuffer.insert(pos,charArray);
StringBuffer.insert(pos,int);
StringBuffer.insert(pos,long);
StringBuffer.insert(pos,float);
StringBuffer.insert(pos,double);
StringBuffer.insert(pos,String);
StringBuffer.deleteCharAt(pos);
StringBuffer.delete(inicio,fim);
Classe Character
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
boolean
Character.isDefined(char)
Character.isJavaIdentifierStart(char)
Character.isJavaIdentifierPart(char)
Character.isDigit(char)
Character.isLetter(char)
Character.isLetterOrDigit(char)
Character.isLowerCase(char)
Character.isUpperCase(char)
Character.isWhitespace(char)
Classe StringTokenizer
long StringTokenizer.countTokens()
boolean StringTokenizer.hasMoreTokens()
String StringTokenizer.nextToken()
// Exemplo
StringTokenizer strT;
strT = new StringTokenizer
(Uma frase com cinco palavras);
while(strT.hasMoreTokens())
System.out.println(strT.nextToken());
Exerccios
Graphics e Java 2D
Notas de Aula
Prof. Andr Bernardi
Introduo
Controle Color
JColorChooser
JColorChooser.showDialog(
Component, Titulo do dilogo", corInicial )
Controle Fonts
Controle Fonts
Desenhando Linhas,
Retngulos e ovais
public void drawLine( int x1, int y1, int x2, int y2 )
public void drawRect( int x, int y, int width, int height )
public void clearRect( int x, int y, int width, int height )
public void fillRect( int x, int y, int width, int height )
public void drawRoundRect( int x, int y, int width, int height,
int arcWidth, int arcHeight )
public void fillRoundRect( int x, int y, int width, int height,
int arcWidth, int arcHeight )
public void draw3DRect( int x, int y, int width, int height,
boolean b )
public void fill3DRect( int x, int y, int width, int height,
boolean b )
public void drawOval( int x, int y, int width, int height )
public void fillOval( int x, int y, int width, int height )
Desenhando Arcos
Exemplo - DrawSmiley
// Fig. 6.16: DrawSmiley.java
// Demonstrates filled shapes.
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;
public class DrawSmiley extends JPanel
{
public void paintComponent( Graphics g )
{
super.paintComponent( g );
// draw the face
g.setColor( Color.YELLOW );
g.fillOval( 10, 10, 200, 200 );
API Java2D
Java2D Shapes
java.awt.geom
Ellipse2D.Double
Rectangle2D.Double
RoundRectangle2D.Double
Arc2D.Double
Line2D.Double
API Java2D
g2d.setPaint( new GradientPaint( 5, 30,
Color.blue, 35, 100, Color.yellow, true ) );
g2d.fill( new Ellipse2D.Double( 5, 30, 65, 100 ) );
g2d.setPaint( Color.red );
g2d.setStroke( new BasicStroke( 10.0f ) );
g2d.draw( new Rectangle2D.Double( 80, 30, 65,
100 ) );
API Java2D
BufferedImage buffImage = new BufferedImage( 10, 10,
BufferedImage.TYPE_INT_RGB );
Graphics2D gg = buffImage.createGraphics();
gg.setColor( Color.yellow );
// draw in yellow
gg.fillRect( 0, 0, 10, 10 );
// draw a filled rectangle
gg.setColor( Color.black ); // draw in black
gg.drawRect( 1, 1, 6, 6 );
// draw a rectangle
gg.setColor( Color.blue ); // draw in blue
gg.fillRect( 1, 1, 3, 3 );
// draw a filled rectangle
gg.setColor( Color.red ); // draw in red
gg.fillRect( 4, 4, 3, 3 );
// draw a filled rectangle
API Java2D
g2d.setPaint( new TexturePaint( buffImage, new
Rectangle( 10, 10 ) ) );
g2d.fill( new RoundRectangle2D.Double(155, 30, 75, 100,
50, 50 ) );
g2d.setPaint( Color.white );
g2d.setStroke( new BasicStroke( 6.0f ) );
g2d.draw( new Arc2D.Double(240, 30, 75, 100, 0, 270,
Arc2D.PIE ) ); //Arc2D.CHORD Arc2D.OPEN
API Java2D
g2d.setPaint( Color.green );
g2d.draw( new Line2D.Double( 395, 30, 320, 150 ) );
g2d.setPaint( Color.yellow );
g2d.setStroke( new BasicStroke( 4,
BasicStroke.CAP_ROUND,
BasicStroke.JOIN_ROUND, 10, dashes, 0 ) );
g2d.draw( new Line2D.Double( 320, 30, 395, 150 ) );
API Java2D
BufferedImage(lagura, altura,
BufferedImage.TYPE_INT_RGB )
buffImage.createGraphics();
BasicStroke( 4, BasicStroke.CAP_ROUND,
BasicStroke.JOIN_ROUND, 10, dashes, 0 ) );
Classe GeneralPath
moveTo( x , y )
lineTo (x , y )
curveTo(x1, y1, x2, y2, x3, y3)
quadTo(x1, y1, x2, y2)
closePath()
Exerccio
Exerccios
Referencias
Java How to program 3, 4, 5 e 6 ed.
Deitel e Deitel
Sun
http://java.sun.com