Java basics
Download
1 / 77

Java basics - PowerPoint PPT Presentation


  • 72 Views
  • Uploaded on

Java basics. Chapter 2 Spring 2005 CS 101 Aaron Bloomfield. DisplayForecast.java. // Authors: J. P. Cohoon and J. W. Davidson // Purpose: display a quotation in a console window public class DisplayForecast { // method main(): application entry point

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about ' Java basics' - ulric-perez


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Java basics

Java basics

Chapter 2

Spring 2005

CS 101

Aaron Bloomfield


Displayforecast java
DisplayForecast.java

// Authors: J. P. Cohoon and J. W. Davidson

// Purpose: display a quotation in a console window

public class DisplayForecast {

// method main(): application entry point

public static void main(String[] args) {

System.out.print("I think there is a world market for");

System.out.println(" maybe five computers.");

System.out.println(" Thomas Watson, IBM, 1943.");

}

}

// Authors: J. P. Cohoon and J. W. Davidson

// Purpose: display a quotation in a console window

public class DisplayForecast {

// method main(): application entry point

public static void main(String[] args) {

System.out.print("I think there is a world market for");

System.out.println(" maybe five computers.");

System.out.println(" Thomas Watson, IBM, 1943.");

}

}

// Authors: J. P. Cohoon and J. W. Davidson

// Purpose: display a quotation in a console window

public class DisplayForecast {

// method main(): application entry point

public static void main(String[] args) {

System.out.print("I think there is a world market for");

System.out.println(" maybe five computers.");

System.out.println(" Thomas Watson, IBM, 1943.");

}

}

// Authors: J. P. Cohoon and J. W. Davidson

// Purpose: display a quotation in a console window

public class DisplayForecast {

// method main(): application entry point

public static void main(String[] args) {

System.out.print("I think there is a world market for");

System.out.println(" maybe five computers.");

System.out.println(" Thomas Watson, IBM, 1943.");

}

}

// Authors: J. P. Cohoon and J. W. Davidson

// Purpose: display a quotation in a console window

public class DisplayForecast {

// method main(): application entry point

public static void main(String[] args) {

System.out.print("I think there is a world market for");

System.out.println(" maybe five computers.");

System.out.println(" Thomas Watson, IBM, 1943.");

}

}

// Authors: J. P. Cohoon and J. W. Davidson

// Purpose: display a quotation in a console window

public class DisplayForecast {

// method main(): application entry point

public static void main(String[] args) {

System.out.print("I think there is a world market for");

System.out.println(" maybe five computers.");

System.out.println(" Thomas Watson, IBM, 1943.");

}

}

// Authors: J. P. Cohoon and J. W. Davidson

// Purpose: display a quotation in a console window

public class DisplayForecast {

// method main(): application entry point

public static void main(String[] args) {

System.out.print("I think there is a world market for");

System.out.println(" maybe five computers.");

System.out.println(" Thomas Watson, IBM, 1943.");

}

}

// Authors: J. P. Cohoon and J. W. Davidson

// Purpose: display a quotation in a console window

public class DisplayForecast {

// method main(): application entry point

public static void main(String[] args) {

System.out.print("I think there is a world market for");

System.out.println(" maybe five computers.");

System.out.println(" Thomas Watson, IBM, 1943.");

}

}

// Authors: J. P. Cohoon and J. W. Davidson

// Purpose: display a quotation in a console window

public class DisplayForecast {

// method main(): application entry point

public static void main(String[] args) {

System.out.print("I think there is a world market for");

System.out.println(" maybe five computers.");

System.out.println(" Thomas Watson, IBM, 1943.");

}

}

// Authors: J. P. Cohoon and J. W. Davidson

// Purpose: display a quotation in a console window

public class DisplayForecast {

// method main(): application entry point

public static void main(String[] args) {

System.out.print("I think there is a world market for");

System.out.println(" maybe five computers.");

System.out.println(" Thomas Watson, IBM, 1943.");

}

}

// Authors: J. P. Cohoon and J. W. Davidson

// Purpose: display a quotation in a console window

public class DisplayForecast {

// method main(): application entry point

public static void main(String[] args) {

System.out.print("I think there is a world market for");

System.out.println(" maybe five computers.");

System.out.println(" Thomas Watson, IBM, 1943.");

}

}

// Authors: J. P. Cohoon and J. W. Davidson

// Purpose: display a quotation in a console window

public class DisplayForecast {

// method main(): application entry point

public static void main(String[] args) {

System.out.print("I think there is a world market for");

System.out.println(" maybe five computers.");

System.out.println(" Thomas Watson, IBM, 1943.");

}

}

Three comments

A class like a method must have a name

Three statements make up the action of method main()

Method main() is part of class DisplayForecast

A class like a method must have a name

A class defines an object form. An object can have methods and attributes

Keyword class indicates a class definition follows

We will discuss static and void later

Java allows a statement to be made up of multiple lines of text

Semicolons delimit one statement from the next

// indicates rest of the line is a comment

Comments are used to document authors, purpose, and program elements

public, static, and void are keywords. They cannot be used as names

public means the method is shareable

Programs are read by people – make sure they are readable.

Use whitespace, comments, and indentation to aidunderstanding

A method is a named piece of code that performs some action or implements a behavior

An application program is required to have a public static void method named main().


Indentation
Indentation

// Authors: J. P. Cohoon and J. W. Davidson

// Purpose: display a quotation in a console window

public class DisplayForecast {

// method main(): application entry point

public static void main(String[] args) {

System.out.print("I think there is a world market for");

System.out.println(" maybe five computers.");

System.out.println(" Thomas Watson, IBM, 1943.");

}

}

Method main() is part of DisplayForecast

Statements are part of method main()

Indentation indicates subcomponents


Good whitespacing
Good whitespacing

// Authors: J. P. Cohoon and J. W. Davidson

// Purpose: display a quotation in a console window

public class DisplayForecast {

// method main(): application entry point

public static void main(String[] args) {

System.out.print("I think there is a world market for");

System.out.println(" maybe five computers.");

System.out.println(" Thomas Watson, IBM, 1943.");

}

}

Whitespace

Whitespace separates program elements

Whitespace between program elements is ignored by Java


Bad whitespacing
Bad whitespacing

  • The same program without any whitespacing or comments:

    public class DisplayForecast2 { public static void main (String[] args) { System.out.print("I think there is a world market for"); System.out.println(" maybe five computers."); System.out.println(" Thomas Watson, IBM, 1943."); } }


A whitespacing aside ioccc
A whitespacing aside: IOCCC

  • The International Obfuscated C Code Contest

    • Online at http://www.ioccc.org

  • C has very terse syntax

    • So the contest tries to make it terser!

  • One common method is by modifying the whitespace


A whitespacing aside ioccc1

X X

X X X X

X X X X

X X X X

X X X X

X X X X

X X X X

X X X X X X

X XX X X XX X

X XXX X XXXXXXXXX X XXX X

X XXX X XXXX XXXX X XXX X

X XXXX X XX ainma(){ archa XX X XXXX X

X XXXX X oink[9],*igpa, X XXXX X

X XXXXXX atinla=etcharga(),iocccwa XXXXXX X

X XXXX ,apca='A',owla='a',umna=26 XXXX X

X XXX ; orfa(; (atinla+1)&&(!((( XXX X

X XX atinla-apca)*(apca+umna-atinla) XX X

X X >=0)+((atinla-owla)*(owla+umna- X X

X atinla)>=0))); utcharpa(atinla), X

X X atinla=etcharga()); orfa(; atinla+1; X X

X X ){ orfa( igpa=oink ,iocccwa=( X X

X X (atinla- XXX apca)*( XXX apca+umna- X X

X atinla)>=0) XXX XXX ; (((( X

X atinla-apca XXXXX XXXXXXX XXXXX )*(apca+ X

X umna-atinla XXXXXX )>=0) XXXXXX +((atinla- X

X owla)*(owla+ XXXX umna- XXXX atinla)>=0)) X

X &&"-Pig-" XX "Lat-in" XX "COb-fus" X

X "ca-tion!!"[ X (((atinla- X apca)*(apca+ X

X umna-atinla) X >=0)?atinla- X apca+owla: X

X atinla)-owla X ]-'-')||((igpa== X oink)&&!(*( X

X igpa++)='w') X )||! X (*( X igpa X ++)=owla); * X

X (igpa++)=(( X ( XXX XXX X atinla-apca X

X )*(apca+ X umna XXX - XXX X atinla)>=0) X

X ?atinla- X apca XXX + XXX owla X :atinla), X

X atinla= X X X X etcharga()) X

X ; orfa( X atinla=iocccwa?(( X (atinla- X

X owla)*(owla+ X umna-atinla)>=0 X )?atinla- X

X owla+apca: X atinla): X atinla; ((( X

X atinla-apca)* X (apca+umna- X atinla)>=0)+( X

X (atinla-owla)* X (owla+ X umna-atinla)>= X

X 0)); utcharpa( XX XX atinla),atinla X

X =etcharga()); XXXXXXX orfa(*igpa=0, X

X igpa=oink; * igpa; utcharpa( X

X *(igpa++))); orfa(; (atinla+1)&&(!((( X

X atinla-apca )*(apca+ X

X umna- XXXXX XXXXX atinla)>=0 X

X )+(( XXXXX atinla- X

XX owla)*( owla+umna- XX

XX atinla)>=0))); utcharpa XX

XX (atinla),atinla= XX

XX etcharga()); } XX

XXXX } XXXX

XXXXXXXXX

A whitespacing aside: IOCCC

a(X){/*/X=- a(X){/*/X=-

-1;F;X=- -1;F;X=-

-1;F;}/*/ -1;F;}/*/

char*z[]={"char*z[]={","a(X){/*/X=-","-1;F;X=-","-1;F;}/*/","9999999999 :-| ",

"int q,i,j,k,X,O=0,H;S(x)int*x;{X+=X;O+=O;*x+1?*x+2||X++:O++;*x=1;}L(n){for(*",

"z[i=1]=n+97;i<4;i++)M(256),s(i),M(128),s(i),M(64),N;X*=8;O*=8;}s(R){char*r=z",

"[R];for(q&&Q;*r;)P(*r++);q&&(Q,P(44));}M(m){P(9);i-2||P(X&m?88:O&m?48:32);P(",

"9);}y(A){for(j=8;j;)~A&w[--j]||(q=0);}e(W,Z){for(i-=i*q;i<9&&q;)y(W|(1<<i++&",

"~Z));}R(){for(k=J[*J-48]-40;k;)e(w[k--],X|O);}main(u,v)char**v;{a(q=1);b(1);",

"c(1);*J=--u?O?*J:*v[1]:53;X|=u<<57-*v[u];y(X);K=40+q;q?e(O,X),q&&(K='|'),e(X",

",O),R(),O|=1<<--i:J[*J-48+(X=O=0)]--;L(q=0);for(s(i=0);q=i<12;)s(i++),i>4&&N",

";s(q=12);P(48);P('}');P(59);N;q=0;L(1);for(i=5;i<13;)s(i++),N;L(2);}",0};

b(X){/*/X=- b(X){/*/X=-

-1;F;X=- -1;F;X=-

-1;F;}/*/ -1;F;}/*/

int q,i,j,k,X,O=0,H;S(x)int*x;{X+=X;O+=O;*x+1?*x+2||X++:O++;*x=1;}L(n){for(*

z[i=1]=n+97;i<4;i++)M(256),s(i),M(128),s(i),M(64),N;X*=8;O*=8;}s(R){char*r=z

[R];for(q&&Q;*r;)P(*r++);q&&(Q,P(44));}M(m){P(9);i-2||P(X&m?88:O&m?48:32);P(

9);}y(A){for(j=8;j;)~A&w[--j]||(q=0);}e(W,Z){for(i-=i*q;i<9&&q;)y(W|(1<<i++&

~Z));}R(){for(k=J[*J-48]-40;k;)e(w[k--],X|O);}main(u,v)char**v;{a(q=1);b(1);

c(1);*J=--u?O?*J:*v[1]:53;X|=u<<57-*v[u];y(X);K=40+q;q?e(O,X),q&&(K='|'),e(X

,O),R(),O|=1<<--i:J[*J-48+(X=O=0)]--;L(q=0);for(s(i=0);q=i<12;)s(i++),i>4&&N

;s(q=12);P(48);P('}');P(59);N;q=0;L(1);for(i=5;i<13;)s(i++),N;L(2);}

c(X){/*/X=- c(X){/*/X=-

-1;F;X=- -1;F;X=-

-1;F;}/*/ -1;F;}/*/

#define X

#define XX

#define XXX

#define XXXX

#define XXXXX

#define XXXXXX

#define XXXXXXX

#define orfa for

#define XXXXXXXXX

#define archa char

#define ainma main

#define etcharga getchar

#define utcharpa putchar

#define _ -F<00||--F-OO--;

int F=00,OO=00;main(){F_OO();printf("%1.3f\n",4.*-F/OO/OO);}F_OO()

{

_-_-_-_

_-_-_-_-_-_-_-_-_

_-_-_-_-_-_-_-_-_-_-_-_

_-_-_-_-_-_-_-_-_-_-_-_-_-_

_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

_-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

_-_-_-_-_-_-_-_-_-_-_-_-_-_-_

_-_-_-_-_-_-_-_-_-_-_-_-_-_

_-_-_-_-_-_-_-_-_-_-_-_

_-_-_-_-_-_-_-_

_-_-_-_

}

#include <stdio.h>

#define Q r=R[*p++-'0'];while(

#define B ;break;case

char*s="Qjou!s\\311^-g\\311^-n\\311^-c\\::^-q-ma%mO1JBHm%BQ-aP1J[O1HB%[Q<nbj\

o)*|gps)<<*txjudi)m*|aQdbtf!::::;sfuvso<aQefgbvmu;aQ<m,,a%CQ<csfbla%bQ<aN2!Q\

\ndbtf!aP2Q;m>aP2Q<a%!D12J!JGJHJOJQJFJSJJJMHS%HD12D12N3!N4\nJUJT%UQm>aP4HC%T\

Qs\\q,,^>m,2<m>aP4HC%SD12N1\nJNQm>s\\..q^aHC%NHb%GN1!D32P3%RN1UP1D12JPQUaP1H\

R%PN4\nQ<g\\(aP3Q(^>aP2Q,2<n\\(aP3Q(^>aP4Hb%OD12D12N2!N3\nJVP3Q,,<jg)aP3Q=>n\

\\(aP3Q(^*m>g\\(aP3Q(^<fmtf!m,,aHC%QN1!N1\nJ#Qqsjoug)#&e]o#-aP1Q*aHb%#Qqvut)\

aP1Q*aHb%FN1\nQm>::::aHC%VP3Q>bupj)hfut)c**aHb%JD12JON1!Qjg)a%LN1UP1D12JIQUa\

P1HL%IQ*m>aN2!N2\nP2Q<fmtf!m,,aHC%MN1!N2>P2Q>aN2\nP2Hbdd!b/d";k;char R[4][99]

;main(c,v)char**v;{char*p,*r,*q;for(q=s;*q;q++)*q>' '&&(*q)--;{FILE*i=fopen(v

[1],"r"),*o=fopen(q-3,"w");for(p=s;;p++)switch(*p++){B'M':Q(k=fgetc(i))!=EOF

&&k!=*p)*r++=k;if(k==EOF){fputs("}}\n",o);fclose(o);return system(q-6);}*r=0

B'P':while(*p!='`')fputc(*p++,o)B'O':Q*r)fputc(*r++,o);p--B'C':k=0;Q k<*p-'0'

)(*r++=fgetc(i),k++);*r=0 B'I':k= *p;if(**R==k)goto G B'G':k= *p;G:p=s;while(

*p!='$'||p[1]!= k)p++;p++B'N':R[*p-'0'][0]++;}}}


Identifiers
Identifiers

  • Identifiers are names for variables, classes, etc.

  • Good ones are compact, but inidicate what they stand for

    • radius, width, height, length

  • Bad ones are either too long

    • theRadiusOfTheCircle

    • theWidthOfTheBoxThatIsBeingUsed

    • the_width_of_the_box_that_is_being_used

  • Or too short

    • a, b, c, d, e

  • Good identifiers will help the graders understand your program!


Keywords
Keywords

  • Some words are reserved, and can’t be used as identifiers

// Authors: J. P. Cohoon and J. W. Davidson

// Purpose: display a quotation in a console window

public class DisplayForecast {

// method main(): application entry point

public static void main(String[] args) {

System.out.print("I think there is a world market for");

System.out.println(" maybe five computers.");

System.out.println(" Thomas Watson, IBM, 1943.");

}

}

// Authors: J. P. Cohoon and J. W. Davidson

// Purpose: display a quotation in a console window

public class DisplayForecast {

// method main(): application entry point

public static void main(String[] args) {

System.out.print("I think there is a world market for");

System.out.println(" maybe five computers.");

System.out.println(" Thomas Watson, IBM, 1943.");

}

}

// Authors: J. P. Cohoon and J. W. Davidson

// Purpose: display a quotation in a console window

public class DisplayForecast {

// method main(): application entry point

public static void main(String[] args) {

System.out.print("I think there is a world market for");

System.out.println(" maybe five computers.");

System.out.println(" Thomas Watson, IBM, 1943.");

}

}


Capitalization
Capitalization

  • Case matters!

  • public ≠ Public ≠ PUBLIC

    • This is different that FORTRAN and BASIC

    • This is the same as C/C++

  • You can use Public as a identifier

    • Not recommended, though!


Statements
Statements

  • A statement in Java is (usually) a single line

    • Example: System.out.println (“Hello world!”);

  • All statements must end with a semi-colon

    • That tells Java that the statement is finished



Defining variables
Defining variables

  • We’ve seen variables before in math

    • y = mx + b

    • Here y, m, x, and b can hold any value

  • To store things in a computer program, we also use variables

  • Example:

    • int x = 5;

    • This defines an integer variable with value 5

  • The variable is x

  • The type is int


More on variables

4.3

d

More on variables

  • An integer variable can only hold integers

    • In other words, it can’t hold 4.3

  • To hold floating point values, we use the double type

    • double d = 4.3;

  • The variable is d

  • The type is double


Primitive variable assignment
Primitive variable assignment

  • Assignment operator =

    • Allows the variable to be updated

  • Consider

    int j = 11;

    j = 1985;

  • Assignment operator =

    • Allows the memory location for a variable to be updated

  • Consider

    int j = 11;

    j = 1985;


Primitive variable assignment1
Primitive variable assignment

  • Consider

    int a = 1;

    int aSquared = a * a;

    a = 5;

    aSquared = a * a;

  • Consider

    int i = 0;

    i = i + 1;

  • Consider

    int asaRating;

    asaRating = 400;

int a = 1;

int aSquared = a * a;

a = 5;

aSquared = a * a;

int i = 0;

i = i + 1;

int asaRating;

asaRating = 400;


Primitive variable assignment2
Primitive variable assignment

  • Consider

    double x = 5.12;

    double y = 19.28;

    double rememberX = x;

    x = y;

    y = rememberX;

  • Consider

    double x = 5.12;

    double y = 19.28;

    double rememberX = x;

    x = y;

    y = rememberX;

  • Consider

    double x = 5.12;

    double y = 19.28;

    double rememberX = x;

    x = y;

    y = rememberX;

  • Consider

    double x = 5.12;

    double y = 19.28;

    double rememberX = x;

    x = y;

    y = rememberX;

  • Consider

    double x = 5.12;

    double y = 19.28;

    double rememberX = x;

    x = y;

    y = rememberX;

  • Consider

    double x = 5.12;

    double y = 19.28;

    double rememberX = x;

    x = y;

    y = rememberX;



Printing variables
Printing variables

  • To print a variable to the screen, put it in a System.out.println() statement:

    • int x = 5;

    • System.out.println (“The value of x is “ + x);

  • Important points:

    • Strings are enclosed in double quotes

    • If there are multiple parts to be printed, they are separated by a plus sign


public class SolvingABC {

public static void main(String[] args) {

// variable definitions and initializations

int a = 3;

int b = 12;

int c = 6;

int d = 1;

// calculate results

double result1 = d * a;

double result2 = c + 2 * a;

double result3 = d - b / c;

double result4 = c * b % c;

double result5 = b / 2;

// display the results

System.out.println();

System.out.println("result1 : " + result1);

System.out.println("result2 : " + result2);

System.out.println("result3 : " + result3);

System.out.println("result4 : " + result4);

System.out.println("result5 : " + result5);

System.out.println();

}

}

From this week’s lab

Note that I don’t show a lot of comments so that the code will fit on a single slide

Also note all the semi-colons


Variable initialization
Variable initialization

  • Note that the following

    • int x;

    • x = 5;

  • is the same as the following:

    • int x = 5;


Primitive variable types
Primitive variable types

  • Java has 8 (or so) primitive types:

    • float

    • double

    • boolean

    • char

    • byte

    • short

    • int

    • long

real numbers

two values: true and false

a single character

integer numbers

  • Also the void “type”

  • We’ll only be using half of the types in this course: int, double, boolean, and char


Primitive real floating point types
Primitive real (floating-point) types

  • A float takes up 4 bytes of space

    • Has 6 decimal places of accuracy: 3.14159

  • A double takes up 8 bytes of space

    • Has 15 decimal places of accuracy: 3.14159265358979

  • Always use doubles

    • It will save you quite a headache!


Primitive integer types
Primitive integer types

  • Consider a byte:

  • 1 byte = 8 bits

  • Each bit has two possibilities: 0 or 1

  • 28 = 256

  • Thus, a byte can have any one of 256 values

  • A Java byte can have values from -128 to 127

    • From -27 to 27-1

  • C/C++ has unsigned versions; Java does not



Increment and decrement operators
Increment and decrement operators

  • ++

    • Increments a number variable by 1

  • --

    • Decrements a numeric variable by 1

  • Consider

    int i = 4; // define

    ++i;

    System.out.println(i);

    System.out.print(++i);

    System.out.println(i++);

    System.out.println(i);

  • ++

    • Increments a number variable by 1

  • --

    • Decrements a numeric variable by 1

  • Consider

    int i = 4;

    ++i; // increment

    System.out.println(i);

    System.out.print(++i);

    System.out.println(i++);

    System.out.println(i);

  • ++

    • Increments a number variable by 1

  • --

    • Decrements a numeric variable by 1

  • Consider

    int i = 4;

    ++i;

    System.out.println(i); // display

    System.out.print(++i);

    System.out.println(i++);

    System.out.println(i);

  • ++

    • Increments a number variable by 1

  • --

    • Decrements a numeric variable by 1

  • Consider

    int i = 4;

    ++i;

    System.out.println(i);

    System.out.print(++i); // update then display

    System.out.println(i++);

    System.out.println(i);

  • ++

    • Increments a number variable by 1

  • --

    • Decrements a numeric variable by 1

  • Consider

    int i = 4;

    ++i;

    System.out.println(i);

    System.out.print(++i);

    System.out.println(i++); // display then update

    System.out.println(i);

  • ++

    • Increments a number variable by 1

  • --

    • Decrements a numeric variable by 1

  • Consider

    int i = 4;

    ++i;

    System.out.println(i);

    System.out.print(++i);

    System.out.println(i++);

    System.out.println(i); // display

  • ++

    • Increments a number variable by 1

  • --

    • Decrements a numeric variable by 1

  • Consider

    int i = 4;

    ++i;

    System.out.println(i);

    System.out.print(++i);

    System.out.println(i++);

    System.out.println(i);


Why c was named c
Why C++ was named C++

  • The increment operator adds one to the integer value

    • Or makes it ‘one better’

  • So when Bjarne Stroustrup was making the successor to C, he was making a ‘one better’ language



Primitive character type
Primitive character type

  • All characters have a integer equivalent

    • ‘0’ = 48

    • ‘1’ = 49

    • ‘A’ = 65

    • ‘a’ = 97

  • Thus, you can refer to ‘B’ as ‘A’+1


Primitive boolean type
Primitive boolean type

  • The boolean type has only two values:

    • true

    • false

  • There are boolean-specific operators

    • && is and

    • || is or

    • ! is not

    • etc.


Variables must be declared before use
Variables must be declared before use

  • The following code will not work:

    • x = 5;

    • System.out.println (x);

  • Java requires you to declare x before you use it


Variable initialization1
Variable initialization

  • Consider the following code:

    int x;

    System.out.println(x);

  • What happens?

  • Error message:

    • variable x might not have been initialized

  • Java also requires you to give x a value before you use it


Constants
Constants

  • Consider the following:

    final int x = 5;

  • The value of x can NEVER be changed!

    • The value assigned to it is “final”

  • This is how Java defines constants


Expressions
Expressions

  • What is the value used to initialize expression

    int expression = 4 + 2 * 5;

  • What value is displayed

    System.out.println(5 / 2.0);

  • Java rules in a nutshell

    • Each operator has a precedence level and an associativity

      • Operators with higher precedence are done first

        • * and / have higher precedence than + and -

      • Associativity indicates how to handle ties

    • When floating-point is used the result is floating point


Question on expressions
Question on expressions

  • Does the following statement compute the average of double variables a, b, and c? Why or why not?

    double average = a + b + c / 3.0;


Java operators
Java operators

  • The following are the common operators for ints:

    • + - / * %

    • Division is integer division

      • 6 / 2 yields 3

      • 7 / 2 yields 3, not 3.5

      • Because everything is an int, the answer is an int

    • Modulus is %

      • Returns the remainder

      • 7 % 2 yields 1

      • 6 % 2 yields 0

  • Floats and doubles use the same first four operators

    • + - / *

    • 7.0 / 2.0 yields 3.5

    • 7.0 / 2 yields 3.5

    • 7 / 2.0 yields 3.5

    • 7 / 2 yields 3


Java operators1
Java operators

  • Booleans have their own operators

    • && is AND

      • Only true when both operands are true

      • true && true yields true

      • false && true yields false

    • || is OR

      • True when either of the operands (or both) are true

      • true || false yields true

      • false || false yields false

    • ! is NOT

      • Changes the value

      • !true yields false

      • !false yields true


System out println
System.out.println

  • Can print multiple things by using the + operator

  • Let int i = 7;

  • Example: System.out.println (“i = “ + i);

    • Prints i = 7

  • Can also have the statement on multiple lines

    System.out.println (

    “hello world!”

    )

    ;

  • Can’t have the String on multiple lines

    System.out.println (

    “hello

    world!”

    );


System out println1
System.out.println

  • System.out.println (“result: “ + 3/5);

    • What does it print?

    • result: 0

  • System.out.println (“result: “ + 5 % 3);

    • What does it print?

    • result: 2

  • System.out.println (“result: “ + 3/5.0);

    • What does it print?

    • result: 0.6

  • System.out.println (“result: “ + 3+4.0);

    • What does it print?

    • result: 34.0

  • System.out.println (“result: “ + (3+4.0));

    • What does it print?

    • result: 7.0




Functions
Functions

  • In Java, functions are called methods

  • Think of mathematical functions:

    • sin()

    • cos()

    • tan()

  • They take input (the angle)

    • And produce output (the result)

  • In Java, they are called Math.sin(), Math.cos(), etc.

    • Meaning, from the Math library, call the sin() method


import java.util.*;

public class MathFun {

public static void main(String[] args) {

// set up the Scanner object

Scanner stdin = new Scanner(System.in);

// have the user input the values for x and y

System.out.print("Enter a decimal number: ");

double x = stdin.nextDouble();

System.out.print("Enter another decimal number: ");

double y = stdin.nextDouble();

double squareRootX = Math.sqrt(x);

System.out.println ("Square root of " + x + " is "

+ squareRootX);

}

}

From this week’s lab


System out println2
System.out.println()

public static void main(String[] args) {

System.out.print("I think there is a world market for");

System.out.println(" maybe five computers.");

System.out.println(" Thomas Watson, IBM, 1943.");

}

  • Class System supplies objects that can print and read values

  • System variable out references the standard printing object

    • Known as the standard output stream

  • Variable out provides access to printing methods

    • print(): displays a value

    • println(): displays a value and moves cursor to the next line


Escape sequences
Escape sequences

  • Java provides escape sequences for printing special characters

    • \b backspace

    • \n newline

    • \t tab

    • \r carriage return

    • \\ backslash

    • \" double quote

    • \' single quote


Escape sequences1
Escape sequences

  • What do these statements output?

    System.out.println("Person\tHeight\tShoe size");

    System.out.println("=========================");

    System.out.println("Hannah\t5‘1\"\t7");

    System.out.println("Jenna\t5'10\"\t9");

    System.out.println("JJ\t6'1\"\t14");

  • Output

    Person Height Shoe size

    =========================

    Hannah 5‘1" 7

    Jenna 5'10" 9

    JJ 6'1" 14


System out

Variable System.out gives

access to an output stream

of type PrintStream

The printing destination attribute

for this PrintStream object is the

console window

The behaviors of a PrintStream

object support a high-level view of

printing

System.out

System.out : PrintStream

- destination =

- ...

+ println(String s) : void

+ print(String s) : void

+ ...


Selection

The period indicates that we want to

The period indicates that we want to select an

select an individual class member of out

individual class member of System

The method we are calling

Member out of System is an output

Literal character string that is

stream object automatically

the parameter to print().

associated with the console window

running the application

Class System is defined

in the standard

Method member of out. The execution of member print()

package java.lang

causes its parameter to be displayed to the output stream

Selection

string

.

.

"

"

System

out

print (

)


I o streams
I/O streams

  • System.out

    • Prints to standard output

    • Equivalent to cout in C++, and print() in C

  • System.err

    • Prints to standard error

    • Equivalent to cerr in C++, and fprintf(stderr) in C

  • System.in

    • Reads from standard input

    • Equivalent to cin in C++, and scanf() in C



Example program temperature conversion
Example program: temperature conversion

// Purpose: Convert a Celsius temperature to Fahrenheit

public class CelsiusToFahrenheit {

// main(): application entry point

public static void main(String[] args) {

// set Celsius temperature of interest

int celsius = 28;

// convert to Fahrenheit equivalent

int fahrenheit = 32 + ((9 * celsius) / 5);

// display result

System.out.println("Celsius temperature");

System.out.println(" " + celsius);

System.out.println("equals Fahrenheit temperature");

System.out.println(" " + fahrenheit);

}

}



Computation
Computation

  • Programmers frequently write small programs for computing useful things

  • Example – body mass index (BMI)

    • Measure of fitness

      • Ratio of person’s weight to the square of the person’s height

        • Weight in is kilograms, height is in meters

      • Person of interest is 4.5 feet and weighs 75.5 pounds

  • Metric conversions

    • Kilograms per pound 0.454

    • Meters per foot 0.3046


Program outline for bmi java
Program outline for BMI.java

// Purpose: Compute BMI for given weight and height

public class BMI {

// main(): application entry point

public static void main(String[] args) {

// define constants

// set up person's characteristics

// convert to metric equivalents

// perform bmi calculation

// display result

}

}


Bmi java define constants
BMI.java: define constants

// define constants

final double KILOGRAMS_PER_POUND = 0.454;

final double METERS_PER_FOOT = 0.3046;

// define constants

final double KILOGRAMS_PER_POUND = 0.454;

final double METERS_PER_FOOT = 0.3046;

// define constants

final double KILOGRAMS_PER_POUND = 0.454;

final double METERS_PER_FOOT = 0.3046;


Bmi java personal characteristics
BMI.java: personal characteristics

// set up person's characteristics

double weightInPounds = 75.5; // our person’s weight

double heightInFeet = 4.5; // our person’s height

// set up person's characteristics

double weightInPounds = 75.5; // our person’s weight

double heightInFeet = 4.5; // our person’s height

// set up person's characteristics

double weightInPounds = 75.5; // our person’s weight

double heightInFeet = 4.5; // our person’s height


Bmi java convert to metric equivalents
BMI.java: convert to metric equivalents

// convert to metric equivalents

double metricWeight = weightInPounds * KILOGRAMS_PER_POUND;

double metricHeight = heightInFeet * METERS_PER_FOOT;

// convert to metric equivalents

double metricWeight = weightInPounds * KILOGRAMS_PER_POUND;

double metricHeight = heightInFeet * METERS_PER_FOOT;

// convert to metric equivalents

double metricWeight = weightInPounds * KILOGRAMS_PER_POUND;

double metricHeight = heightInFeet * METERS_PER_FOOT;


Bmi java perform bmi calculation
BMI.java: perform BMI calculation

// perform bmi calculation

double bmi = metricWeight / (metricHeight * metricHeight);


Bmi java display result
BMI.java: display result

// display result

System.out.println("A person with");

System.out.println(" weight " + weightInPounds + " lbs");

System.out.println(" height " + heightInFeet + " feet");

System.out.println("has a BMI of " + Math.round(bmi));

// display result

System.out.println("A person with");

System.out.println(" weight " + weightInPounds + " lbs");

System.out.println(" height " + heightInFeet + " feet");

System.out.println("has a BMI of " + Math.round(bmi));

Operator evaluation depend upon its operands

Math.round(bmi) is 18


public static void main(String[] args) {

// define constants

final double KILOGRAMS_PER_POUND = 0.454;

final double METERS_PER_FOOT = 0.3046;

// set up person's characteristics

double weightInPounds = 75.5; // our person’s weight

double heightInFeet = 4.5; // our person’s height

// convert to metric equivalents

double metricWeight = weightInPounds * KILOGRAMS_PER_POUND;

double metricHeight = heightInFeet * METERS_PER_FOOT;

// perform bmi calculation

double bmi = metricWeight / (metricHeight * metricHeight);

// display result

System.out.println("A person with");

System.out.println(" weight " + weightInPounds + " lbs");

System.out.println(" height " + heightInFeet + " feet");

System.out.println("has a BMI of " + Math.round(bmi));

}




Common program elements
Common program elements

  • Type

    • Set of values along with operators that can manipulate and create values from the set

  • Primitive types support numeric, character, logical values

    • double and float

      • Values with decimals

    • byte, short, int, long

      • Integers

    • char

      • Characters (considered numeric)

    • boolean

      • Logical values

  • Basic operators

    • + addition - subtraction

    • * multiplication / division


Common program elements1
Common program elements

  • Constant

    • Symbolic name for memory location whose value does not change

      • KILOGRAMS_PER_POUND

  • Variable

    • Symbolic name for memory location whose value can change

      • weightInPounds


Interactive programs
Interactive programs

  • Programs that interact with their users through statements performing input and output

  • Temperature conversion

    • Not interactive – Celsius temperature is fixed

  • BMI.java

    • Not interactive – weight and height are fixed


Support for interactive console programs
Support for interactive console programs

  • Variable System.in

    • Associated with the standard input stream – the keyboard

  • Class Scanner

    • Makes obtaining input from the keyboard easy

      Scanner stdin = new Scanner (System.in);

stdin : Scanner

Variable stdin gives Scanner

access to an input stream

- source =

- ...

Input source attribute for this

Scanner is the keyboard

+ nextDouble() : double

+ ...

Behaviors of a Scanner support

high-level view of inputting text


How to make java work with the scanner class
How to make Java work with the Scanner class

  • In Java 1.5, do a:import java.util.*;

  • To create a new Scanner:Scanner stdin = new Scanner (System.in);

  • Do NOT use the following (it won’t work):Scanner stdin = Scanner.create (System.in);

    • This is the big difference between the textbook versions!!!


Interactive program for bmi
Interactive program for BMI

  • Program outline

    import java.util.*;

    // Purpose: Compute BMI for user-specified

    // weight and height

    public class BMICalculator {

    // main(): application entry point

    public static void main(String[] args) {

    // defining constants

    // displaying legend

    // set up input stream

    // get person's characteristics

    // convert to metric equivalents

    // perform bmi calculation

    // display result

    }

    }

  • Program outline

    import java.util.*;

    // Purpose: Compute BMI for user-specified

    // weight and height

    public class BMICalculator {

    // main(): application entry point

    public static void main(String[] args) {

    // defining constants

    // displaying legend

    // set up input stream

    // get person's characteristics

    // convert to metric equivalents

    // perform bmi calculation

    // display result

    }

    }


public static void main(String[] args) {

// define constants

//...

// displaying legend

System.out.println ("BMI Calculator\n");

// set up input stream

Scanner stdin = new Scanner (System.in);

// get person's characteristics

System.out.print("Enter weight (lbs): ");

double weight = stdin.nextDouble();

System.out.print("Enter height (feet): ");

double height = stdin.nextDouble();

// convert to metric equivalents

double metricWeight = weight * KILOGRAMS_PER_POUND;

double metricHeight = height * METERS_PER_FOOT;

// perform bmi calculation

double bmi = metricWeight / (metricHeight * metricHeight);

// display result

//...

}


import java.util.*;

class BMICalculator {

public static void main(String[] args) {

// define constants

final double KILOGRAMS_PER_POUND = 0.454;

final double METERS_PER_FOOT = 0.3046;

// displaying legend

System.out.println ("BMI Calculator\n");

// set up input stream

Scanner stdin = new Scanner (System.in);

// get person's characteristics

System.out.print("Enter weight (lbs): ");

double weight = stdin.nextDouble();

System.out.print("Enter height (feet): ");

double height = stdin.nextDouble();

// convert to metric equivalents

double metricWeight = weight * KILOGRAMS_PER_POUND;

double metricHeight = height * METERS_PER_FOOT;

// perform bmi calculation

double bmi = metricWeight / (metricHeight * metricHeight);

// display result

System.out.println("A person with");

System.out.println(" weight " + weight + " lbs");

System.out.println(" height " + height + " feet");

System.out.println("has a BMI of " + Math.round(bmi));

}

}




Scanner api
Scanner API

public Scanner(InputStream in) // Scanner(): convenience constructor for an

// InputStream

public Scanner(File s) // Scanner(): convenience constructor for a filename

public int nextInt() // nextInt(): next input value as an int

public short nextShort() // nextShort(): next input value as a short

public long nextLong() // nextLong(): next input value as a long

public double nextDouble() // nextDouble(): next next input value as a double

public float nextFloat() // nextFloat(): next next input value as a float

public String next() // next(): get next whitespace-free string

public String nextLine() // nextLine(): return contents of input line buffer

public boolean hasNext() // hasNext(): is there a value to next


Casting
Casting

  • Consider the following code

    double d = 3.6;

    int x = Math.round(d);

  • Java complains (about loss of precision). Why?

  • Math.round() returns a long, not an int

    • So this is forcing a long value into an int variable

  • How to fix this

    double d = 3.6;

    int x = (int) Math.round(d);

  • You are telling Java that it is okay to do this

    • This is called “casting”

    • The type name is in parenthesis


More casting examples
More casting examples

  • Consider

    double d = 3.6;

    int x = (int) d;

  • At this point, x holds 3 (not 4!)

    • This truncates the value!

  • Consider

    int x = 300;

    byte b = (byte) x;

    System.out.println (b);

  • What gets printed?

    • Recall that a byte can hold values -128 to 127

    • 44!

    • This is the “loss of precision”


About the assignment statement
About the assignment statement

  • Assign the value 5 to the variable x

    • int x;

    • x = 5;

    • 5 = x; NOT VALID!

  • This is not a mathematical equals

    • It’s a Java assignment

  • The variable you want to copy the value to MUST be on the left

  • The value you want to copy MUST be on the right

  • Assignment copies the value on the right to the variable on the left



ad