White Space Characters:
Spaces, tabs, line feed, carriage return
=================================================================
Java is blank insensitive
a sequence of white spaces = a single space (unless in a string).
=================================================================
Java is Case Sensitive
Variables are typed
Variables have a standard default value (0 for numbers)
but programs doesn't compile if you use a varaible without initializing
yourself.
double y=5/3; --> gives a 1 (integer division)
cast operators : (operator) variable
y = (double) 5/3;
x=(y=5); same as x=y=5; or {y=5; x=5;
In Java assignment statements produce values i.e. y=5 produces the value 5
===============================================================
// Methods do not need to be in order.
public class Example
{
public static void main (String argv [])
{
int script=6, acting=9, directing=5;
displayMovieRating (script, acting, directing);
}
public static void displayMovieRating (int s, int a, int d)
{
System.out.print("The Movie Rating is ");
System.out.println (s+a+d);
}
}
===================================================================
// Methods do not need to be in same class
public class Movie
{
public static int movieRating (int s, int a, int d)
{ return s+a+d ; }
}
public class Example
{
public static void main (String argv [])
{
int script=6, acting=9, directing=5;
System.out.print("The Movie Rating is ");
System.out.println (Movie. movieRating (script, acting,
directing));
}
}
================================================================
// Java is a Polymorphic Language
// can have many methods with same name in same class.
public class Example
{
public static void main (String argv[])
{
int a =9, b=8, c=5;
double x=9.0, y=8.0, z=5.0;
movieRating (a, b, c);
movieRating (x, y, z);
}
public static void movieRating (int s, int a, int d)
{
System.out.print("The Movie Rating is ");
System.out.println (s+a+d);
}
public static void movieRating (double s, double a, double d)
{
System.out.print("The Movie Rating is ");
System.out.println (s+a+d);
}
}
======================================================
System.out.print("The Movie Rating is ");
System.out.println (s+a+d);
------------------------------------------------------
System.out.println ("The rating is " + (s+a+d));
=======================================================
What about? Is it equivalent?
System .out.println ("The rating is " + s+a+d);
=======================================================
public class Movie
{
public static final int wScript=5, wActing=4, wDirecting=1;
public static int movieRating (int s, int a, int d)
{
return wScript * s + wActing * a + wDirecting * d;
}
}
------------------------------
// instance variables
public class Movie
{
public int script, acting, directing;
public static int rating (Movie m)
{
return m.script + m.acting + m.directing;
}
}
public class Example
{
public static void main (String argv[])
{
Movie m = new Movie();
m.script = m.acting = m.directing = 5;
System.out.println (Movie.rating (m));
}
}
------------------------------------------------------------------
Some Notes :
if (grade > 70)
System.out.println("Pass");
else
System.out.println("Fail");
or
using operator ?:
System.out.println (grade > 70 ? "Pass" : "Fail");
System.out.println ("The Character ("+ 'a' +") has the code value " +
((int) 'a'));
gives :
The character (a) has the code value 97 unicode of 'a'
differences between : "a", 'a' ?
===========================================================
public class Escape
{
public static void main (String args[])
{
System.out.println("Single quotes :" + " \ 'A' ");
System.out.println("Double quotes :" + " \ "B\" ");
System.out.println("backslash : \\");
System.out.println("Text seperated \t by tab");
System.out.println("double \n \n spaced text");
System.out.println("***** \r ###");
}
}
------------------------
An applet
import java.applet.Applet;
import java.awt.Graphics;
public class HiThere extends Applet
{
public void paint(Graphics g)
{
g.drawString ("Hi there!", 25, 25);
}
}
==================================================================
1 // Class average program with
2 // sentinel-controlled repetition.
3 import java.io.*;
4
5 public class Average {
6 public static void main (String args[]) throws IOException
7 {
8 double average; // number with decimal point
9 int counter, grade, total;
10
11 // initialization phase
12 total=0;
13 counter=0;
14
15 // processing phase
16 System.out.print( "Enter letter grade, z to end : " );
17 System.out.flush();
18 grade = System.in.read();
19
20 while (grade != 'Z') {
21 if (grade == 'A')
22 total = total + 4;
23 if (grade == 'B')
24 total = total + 3;
25 if (grade == 'C')
26 total = total + 2;
27 if (grade == 'D')
28 total = total + 1;
29 if (grade == 'F')
30 total = total + 0;
31
32 System.in.skip (1);
33 counter = counter + 1;
34 System.out.print( "Enter letter grade, z to end : " );
35 System.out.flush();
36 grade = system.in.read();
37 }
38
39 // termination phase
40 if (counter !=0) {
41 average = (double) total / counter ;
42 System.out.println ("Class average is " + average );
43 }
44 else
45 System.out.print( "No grades were entered" );
46 }
47 }
================================================================
// Constructors
public class Movie
{
public int script, acting, directing;
public Movie()
{
script=5, acting=5, directing=5;
}
public int rating()
{ return script + acting + directing; }
}
public class Example
{
public static void main (String argv [])
{
Movie m = new Movie();
System.out.println ("The rating is" + m.rating ());
}
}
==========================================================
// Another constructor
public Movie (int s, int a, int d)
{ script=s, acting=a, directing=d; }
* default constructor ( initializes parameters to zero).
===========================================================
* private instance varaibles
public class Example
{
private int minutes;
public Example() { minutes=75; }
public Example(int d) { minutes=d ; }
// getter function
public int getMinutes() { return minutes ; }
// setter function
public void setMinutes (int d) { minutes=d; }
}
Notes : in another class:
Example x();
x.minutes = 6; // OK?
x.setMinutes(6); // OK?
============================================================
* inheritance
public class Parent {
public int minutes;
public Parent ()
{
System.out.println ("Calling constructor");
minutes=75;
}
public int getMinutes() { return minutes; }
public void setMinutes (int d) { minutes=d; }
}
public class Movie extends Parent
{
public int script, acting, directing;
public Movie()
{
script=5, acting=5, directing=5;
}
public Movie (int s, int a, int d)
{ script=s; acting=a; directing=d; }
public int rating()
{ return script + acting + directing ; }
}
public class comedy extends Movie {
public int rating () { retun 10 + acting + directing ; }
}
====================================================================
* Absract classes (cannot have instances)
public abstact class Parent
{
public int minutes;
public Parent() { minutes=75 ; }
public int getMinutes () { return minutes ; }
public void setMinutes (int d) { minutes=d; }
public abstact int rating();
}
Parent x=new Parent(); // illegal
Parent x; // OK
x=new Movie();
x.rating(); // error, not member method of Parent
to fix : ?
===================================================================
constructors calling other constructors within same class
public class Movie extends Parent {
public int script, acting, directing;
public Movie() { script=5; acting=5; directing=5; }
public Movie (int s, int a, int d)
{ script=s, acting=a, directing=d; }
public Movie (int s, int a, int d, int m)
{
this (s,a,d); // no need to repeat code.
minutes=m;
}
public int rating() { return script = acting = directing ; }
}
============================================================
constructor calling constructor in superclass
public class Parent {
public int minutes;
public Parent() { minutes=75; }
public Parent (int m)
{ minutes=m; }
. . .
}
public class Movie extends Parent {
. . .
public Movie (int m)
{ super (m);
}
-================================================================
* array intializer statement
int numbers [] = {10,20,30};
or
int numbers [] = new int [3];
numbers[0]=10;
numbers[1]=20;
numbers[2]=30;
Movie movies[] new Movie [3];
movies[0] = new Movie();
movies[0].script=6
..
..
or
Movie movies[]={new Movie(5,2,3),
new Movie (5,5,5),
new Movie (1,2,3);
===========================================================
* public class Example {
public static void main (String argv[])
{
int Counter, sum=0;
int numbers[]= { 10,20,30 };
for (counter=0; counter < numbers.length; ++counter)
sum = sum + numbers[counter];
System.out.print("The average of " + numbers.length);
System.out.println("numbers is" + sum/numbers.length);
}
}
-------------------
public abstract class Attraction {
// First, define instance variables:
public int minutes;
public string title, poster;
// Define constructors;
public Attraction (int m) { minutes = m; }
// Define getters and setters:
public int getMinutes () {return minutes ; }
public vois setMinutes (int d) { minutes=d ; }
// Define rating as an abstract nmethod:
public abstract int rating ();
// Define category sa an abstract method:
public abstract String category ();
// Define displayAttraction:
public void displayAttraction () {
System.out.println(
category() + " rated at "
+ rating() + " lasts "
+ getMinutes() + " Minutes "
);
}
}
public class Movie extends Attraction {
// First, define instance variables:
public int script, acting, directing;
// Define zero-parameter constructor:
public Movie () { script=5; acting=5; directing=5; }
// Define one-parameter constructor:
public Movie (int m) { super(m); }
// Define three-parameter constructor:
public Movie (int s, int a, int d) {
script = s; acting = a; directing = d;
}
// Define four-parameter constructor:
public Movie (int s, int a, int d, int m) {
this (s, a, d);
minutes m;
}
// Define rating:
public int rating () { return script + acting + directing ; }
// Define category:
public String category () { return " Movie " ; }
}
public class Symphony extends Attraction {
// First, define instance variables:
public int music, playing, conducting;
// Define zero-parameter constructor:
public Symphony () { music=5; playing=5; conducting=5; }
// Define one-parameter constructor:
public Symphony (int m) { super(m); }
// Define three-parameter constructor:
public Symphony (int s, int a, int d) {
music = s; playing = a; conducting = d;
}
// Define four-parameter constructor:
public Symphony (int s, int a, int d, int m) {
this (s, a, d);
minutes m;
}
// Define rating:
public int rating () { return music + playing + conducting ; }
// Define category:
public String category () { return " Symphony " ; }
}
================================================
* equals method determines if two instances are the same.
public class Example {
public static void main (String argv[])
{
Movie m1=new Movie(7,7,7);
Movie m2=new Movie(7,7,5);
System.out.println(m1.equals(m2));
m2=m1;
System.out.println(m1.equals(m2));
}
}
=================================================================
* I/O from files
--> import java.io.*; // import the I/O package
file: "input.data" contains 2 4 6
10 5 7
3 16 2
--> FileInputStream inputFile = new FileInputStream ("input.data");
// to avoid whitespaces, read tokens
--> StreamTokenizer tokens = new StreamTokenizer(inputFile);
methods:
tokens.nextToken( ) : gets first token and assigns it to nval
instance variable (it it is a number)
or to sval (if it is a string)
nextToken is a value returning
function; it returns the value of instance
variables TT_EOF or TT_WORD or
TT_NUMBER, depending on what was read.
instance variables:
tokens.nval is type double, use cast if need an
integer, i.e. (int) tokens.nval
====================================================================
import java.io.*;
public class Demonstrate {
public static void main(String argv[]) throws IOException {
FileInputStream inputFile = new FileInputStream("input.data");
StreamTokenizer tokens = new StreamTokenizer (inputFile);
while (tokens.nextToken() != tokens.TT_EOF) {
System.out.println("Integer : " + (int) tokens.nval) ;
}
}
}
------------------------ Sample Data ----------------------------
4 7 3
-------------------------- Result ----------------------------
Integer : 4
Integer : 7
Integer : 3
=====================================================================
import java.io.*;
public class Demonstrate {
public static void main(String argv[]) throws IOException {
FileInputStream inputFile = new FileInputStream("input.data");
StreamTokenizer tokens = new StreamTokenizer (inputFile);
while (tokens.nextToken() != tokens.TT_EOF) {
int x = (int) tokens.nval;
tokens.nexttoken(); int y = (int) tokens.nval;
tokens.nexttoken(); int z = (int) tokens.nval;
Movie m = new Movie(x,y,z);
System.out.println("Rating: " + m.rating()) ;
}
}
}
------------------------ Sample Data ----------------------------
4 7 3
8 8 7
2 10 5
-------------------------- Result ----------------------------
Rating: 14
Rating: 23
Rating: 17
-----------------------------------------------------------------
==========================================================
public class Example {
public static void main (String argv[])
{
int counter, sum=0;
Parent attractions[] = { new Movie (4,3,5),
new Movie (5,5,5),
new Symphony (5.6.4) } ;
for ( counter=0; counter < attractions.length; ++ counter)
{ sum=sum + attractions[counter].rating() ; }
System.out.print("Average rating of" + attractions.length);
System.out.println("atttractions is " + sum/attractions.length);
}
}
import java.io.*;
public class Demonstrate {
public static void main(String argv[]) throws IOException {
FileInputStream inputFile = new FileInputStream("input.data");
StreamTokenizer tokens = new StreamTokenizer (inputFile);
int next = 0;
while ((next = tokens.nextToken()) != tokens.TT_EOF) {
switch (next) {
case tokens.TT_WORD: break;
case tokens.TT_NUMBER:
int x = (int) tokens.nval;
tokens.nexttoken(); int y = (int) tokens.nval;
tokens.nexttoken(); int z = (int) tokens.nval;
Movie m = new Movie(x,y,z);
System.out.println("Rating: " + m.rating()) ;
break;
}
inputFile.close();
}
}
------------------------ Sample Data ----------------------------
"Apocalypse Now" 4 7 3
"The String" 8 8 7
"Bedtime for Bonzo" 2 10 5
-------------------------- Result ----------------------------
Rating: 14
Rating: 23
Rating: 17
-----------------------------------------------------------------