1 Java basics Chapter 2 CS 101-E. 2 DisplayForecast.java // Authors: J. P. Cohoon and J. W. Davidson // Purpose: display a quotation in a console window.

Slides:



Advertisements
Similar presentations
L2:CSC © Dr. Basheer M. Nasef Lecture #2 By Dr. Basheer M. Nasef.
Advertisements

Java Programming, 3e Concepts and Techniques Chapter 3 Section 63 – Manipulating Data Using Methods – Day 2.
 2005 Pearson Education, Inc. All rights reserved Introduction.
1 Chapter 2 Introduction to Java Applications Introduction Java application programming Display ____________________ Obtain information from the.
10-Jun-15 Introduction to Primitives. 2 Overview Today we will discuss: The eight primitive types, especially int and double Declaring the types of variables.
Primitive Data Types and Operations. Introducing Programming with an Example public class ComputeArea { /** Main method */ public static void main(String[]
Bellevue University CIS 205: Introduction to Programming Using C++ Lecture 3: Primitive Data Types.
Introduction to Primitives. Overview Today we will discuss: –The eight primitive types, especially int and double –Declaring the types of variables –Operations.
CMT Programming Software Applications
ECE122 L3: Expression Evaluation February 6, 2007 ECE 122 Engineering Problem Solving with Java Lecture 3 Expression Evaluation and Program Interaction.
1 The First Step Learning objectives write Java programs that display text on the screen. distinguish between the eight built-in scalar types of Java;
Basic Elements of C++ Chapter 2.
Introduction to Java Appendix A. Appendix A: Introduction to Java2 Chapter Objectives To understand the essentials of object-oriented programming in Java.
Liang, Introduction to Java Programming, Ninth Edition, (c) 2013 Pearson Education, Inc. All rights reserved. 1 Chapter 2 Elementary Programming.
Liang, Introduction to Java Programming, Tenth Edition, (c) 2015 Pearson Education, Inc. All rights reserved. 1 Chapter 2 Elementary Programming.
1 Mathematical Induction CS/APMA 202 Rosen section 3.3 Aaron Bloomfield.
1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield.
Simple Programs from Chapter 2 Putting the Building Blocks All Together (corresponds with Chapter 2)
Chapter 2: Basic Elements of Java J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.
Chapter 2 Basic Elements of Java. Chapter Objectives Become familiar with the basic components of a Java program, including methods, special symbols,
Introduction to Java Applications Part II. In this chapter you will learn:  Different data types( Primitive data types).  How to declare variables?
CIS 260: App Dev I. 2 Programs and Programming n Program  A sequence of steps designed to accomplish a task n Program design  A detailed _____ for implementing.
Chapter 2: Using Data.
Chapter 2 Elementary Programming
C++ Programming: Basic Elements of C++.
CIS 260: App Dev I. 2 Programs and Programming n Program  A sequence of steps designed to accomplish a task n Program design  A detailed _____ for implementing.
Java Programming: From Problem Analysis to Program Design, 4e Chapter 2 Basic Elements of Java.
Java Programming: From Problem Analysis to Program Design, 5e Chapter 2 Basic Elements of Java.
Using Data Within a Program Chapter 2.  Classes  Methods  Statements  Modifiers  Identifiers.
 Pearson Education, Inc. All rights reserved Introduction to Java Applications.
Java basics. Task  Display the supposed forecast I think there is a world market for maybe five computers. Thomas Watson, IBM, 1943.
1 Chapter 3 Syntax, Errors, and Debugging Fundamentals of Java: AP Computer Science Essentials, 4th Edition Lambert / Osborne.
CSC Programming I Lecture 6 September 4, 2002.
1 Java basics Chapter 2 Spring 2005 CS 101 Aaron Bloomfield.
FUNDAMENTALS 2 CHAPTER 2. OPERATORS  Operators are special symbols used for:  mathematical functions  assignment statements  logical comparisons 
Introduction to Computing Concepts Note Set 12. Writing a Program from Scratch public class SampleProgram1 { public static void main (String [] args)
A Simple Java Program //This program prints Welcome to Java! public class Welcome { public static void main(String[] args) { public static void main(String[]
1 Java basics Chapter 2 Spring 2005 CS 101 Aaron Bloomfield.
Java basics – part 2. Where are we Last week –Java basics Simple output program Started programs as calculators –Codelab –Lab procedures This week –Types,
1 Review for exam 1 CS 101 Aaron Bloomfield. 2 Today’s lecture An overview of the “review” sections of chapters 1-3 Stop me if you want me to go over.
1 Java basics Chapter 2 Slides still stolen (and in a very exciting format!) Trey Kirk.
1 Review for exam 1 CS 101-E Aaron Bloomfield. 2 Announcements Exam this Wed Exam this Wed In CHM 402 (NOT in Clark G004) In CHM 402 (NOT in Clark G004)
Java Programming: From Problem Analysis to Program Design, Second Edition 1 Lecture 1 Objectives  Become familiar with the basic components of a Java.
Liang, Introduction to Java Programming, Seventh Edition, (c) 2009 Pearson Education, Inc. All rights reserved Elementary Programming.
1 1 Chapter 2 Elementary Programming. 2 2 Motivations In the preceding chapter, you learned how to create, compile, and run a Java program. Starting from.
Chapter 2: Basic Elements of Java J ava P rogramming: From Problem Analysis to Program Design, From Problem Analysis to Program Design, Second Edition.
Java basics. Programming Problem solving through the use of a computer system Maxim –You cannot make a computer do something if you do not know how to.
Chapter 2: Data and Expressions. Variable Declaration In Java when you declare a variable, you must also declare the type of information it will hold.
Review for exam 1 CS 101 Aaron Bloomfield. 2 Today’s lecture An overview of the “review” sections of chapters 1- 3 and 5 Stop me if you want me to go.
CS0007: Introduction to Computer Programming Primitive Data Types and Arithmetic Operations.
1 Java basics Chapter 2 Fall 2006 CS 101 Aaron Bloomfield.
Lecture 3: More Java Basics Michael Hsu CSULA. Recall From Lecture Two  Write a basic program in Java  The process of writing, compiling, and running.
Java basics.
CompSci 230 S Programming Techniques
Yanal Alahmad Java Workshop Yanal Alahmad
Basic Elements of C++.
Java basics – part 3.
Java Programming: From Problem Analysis to Program Design, 4e
Basic Elements of C++ Chapter 2.
Starting JavaProgramming
Introduction to C++ Programming
Java basics.
Chapter 2: Basic Elements of Java
Review for Exam 1 Spring 2007 CS 101/CS 101-E.
Fundamentals 2.
elementary programming
CS2011 Introduction to Programming I Elementary Programming
Introduction to Java Applications
Introduction to Primitives
Unit 3: Variables in Java
Presentation transcript:

1 Java basics Chapter 2 CS 101-E

2 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."); } Three statements make up the action of method main() Method main() is part of class DisplayForecast // 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."); } A method is a named piece of code that performs some action or implements a behavior // 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."); } An application program is required to have a public static void method named main(). // 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."); } public, static, and void are keywords. They cannot be used as names public means the method is shareable // 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."); } We will discuss static and void later // 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."); } Java allows a statement to be made up of multiple lines of text Semicolons delimit one statement from the next // 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."); } A class defines an object form. An object can have methods and attributes Keyword class indicates a class definition follows // 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."); } A class like a method must have a name // 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."); } A class like a method must have a name // 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."); } Programs are read by people – make sure they are readable. Use whitespace, comments, and indentation to aid understanding // 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."); } // indicates rest of the line is a comment Comments are used to document authors, purpose, and program elements Three comments

3 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."); } Indentation indicates subcomponents Method main() is part of DisplayForecast Statements are part of method main()

4 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 separates program elements Whitespace between program elements is ignored by Java Whitespace

5 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."); } }

6 An aside: IOCCC  The International Obfuscated C Code Contest Online at  C has very terse syntax So the contest tries to make it terser!  One common method is by modifying the whitespace

7 An aside: IOCCC #define _ -F<00||--F-OO--; int F=00,OO=00;main(){F_OO();printf("%1.3f\n",4.*-F/OO/OO);}F_OO() { _-_-_-_ _-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_ _-_-_-_ } #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 #include #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 aP4HC%T\ Qs\\q,,^>m,2 aP4HC%SD12N1\nJNQm>s\\..q^aHC%NHb%GN1!D32P3%RN1UP1D12JPQUaP1H\ R%PN4\nQ aP2Q,2 aP4Hb%OD12D12N2!N3\nJVP3Q,, 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 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]++;}}} 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(X){/*/X=--1;F;X=--1;F;}/*/ char*z[]={"char*z[]={","a(X){/*/X=-","-1;F;X=-","-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 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=--1;F;X=--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 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=--1;F;X=--1;F;}/*/

8 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!

9 Keywords // 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."); }  Some words are reserved, and can’t be used as identifiers

10 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!

11 Defining a method  All methods have the following syntax: modifers type name ( parameters ) { statements } Properties of the method Type that it returns A name for the method Any number (including zero) of parameters The body of the method (can be empty) public staticvoidmain(String[] args){... }

12 Escape sequences  Java provides escape sequences for printing special characters \bbackspace \nnewline \ttab \rcarriage return \\backslash \"double quote \'single quote

13 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

14  Assignment operator = Allows the memory location for a variable to be updated  Consider int j = 11; j = 1985; Primitive variable assignment  Assignment operator = Allows the memory location for a variable to be updated  Consider int j = 11; j = 1985;

15  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; 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;  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;  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;  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;  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;  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;  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;

16 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;

17 Primitive variable types  Java has 8 (or so) primitive types: float double boolean char byte short int long real numbers integer numbers two values: true and falsea a single character  Also the void “type”

18 Primitive real (floating-point) types  A float takes up 4 bytes of space Has 6 decimal places of accuracy:  A double takes up 8 bytes of space Has 15 decimal places of accuracy:  Always use doubles It will save you quite a headache!

19 Primitive integer types  Consider a byte:  1 byte = 8 bits  Each bit has two possibilities: 0 or 1  2 8 = 256  Thus, a byte can have any one of 256 values  A Java byte can have values from -128 to 127 From -2 7 to  C/C++ has unsigned versions; Java does not

20 Primitive integer types TypeBytesMinimum valueMaximum value byte1-2 7 = =127 short = -32, = 32,767 int =-2,147,483, =2,147,483,647 long =-9,223,372,036, 854,775, =9,223,372,036, 854,775,807

21 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);

22 Why you should get the extended warranty

23 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

24 Primitive character type public class LowerToUpper { // main(): application entry point public static void main(String[] args) { // set lower case character of interest char lowerCaseLetter = 'c'; // convert to uppercase equivalent char upperCaseLetter = 'A' + (lowerCaseLetter - 'a'); // display result System.out.println("Uppercase equivalent of"); System.out.println(" " + lowerCaseLetter); System.out.println("is"); System.out.println(" " + upperCaseLetter); }

25 Primitive boolean type  When is the following program valid in Java? Assume a and b have been properly declared... if ( a && b ) { // do something interesting }...  Answer: ONLY when a and b are boolean variables  In C/C++, a and b would be ints (or int variants) If you try making a and b ints in Java, you get the following: operator && cannot be applied to int,int

26 Primitive void “type”  In Java, you can ONLY use void to specify that a method does not return a value  You cannot use it to specify that there are no parameters to a method:... int foo (void) {... This is different from C/C++  You cannot use it to declare a void “variable”, as in C/C++: void *foo;

27 Variable initialization  Consider the following code: int x; System.out.println(x);  What happens?  Error message: variable x might not have been initialized

28 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

29 Expressions  What is the value used to initialize expression int expression = * 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

30 Question on expressions  Does the following statement compute the average of double variables a, b, and c? Why double average = a + b + c / 3.0;

31 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

32 System.out + println(String s) : void + print(String s) : void +... System.out : PrintStream - destination = -... 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

33 Selection System. out. print ( " string " ) Literal character string that is the parameter to print(). Member out of System is an output stream object automatically associated with the console window running the application Class System is defined in the standard package java.lang The period indicates that we want to select an individual class member of System The period indicates that we want to select an individual class member of out Method member of out. The execution of member print() causes its parameter to be displayed to the output stream The method we are calling

34 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

35 Beware!!!

36 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); }

37 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 Meters per foot

38 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 }

39 // define constants final double KILOGRAMS_PER_POUND = 0.454; final double METERS_PER_FOOT = ; // define constants final double KILOGRAMS_PER_POUND = 0.454; final double METERS_PER_FOOT = ; // define constants final double KILOGRAMS_PER_POUND = 0.454; final double METERS_PER_FOOT = ; BMI.java: define constants

40 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

41 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;

42 BMI.java: perform BMI calculation // perform bmi calculation double bmi = metricWeight / (metricHeight * metricHeight);

43 // 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)); 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)); 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 = ; // 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)); }

45 Pentium math error 1  Intel’s Pentiums (60Mhz – 100 Mhz) had a floating point error  Graph of z = y/x  Intel reluctantly agreed to replace them in 1994 Graph from

46 Pentium math error 2  Top 10 reasons to buy a Pentium: 10Your old PC is too accurate Provides a good alibi when the IRS calls Attracted by Intel's new "You don't need to know what's inside" campaign It redefines computing--and mathematics! You've always wondered what it would be like to be a plaintiff Current paperweight not big enough Takes concept of "floating point" to a new level You always round off to the nearest hundred anyway Got a great deal from the Jet Propulsion Laboratory It'll probably work!!

47 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

48 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

49 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

50 Un-reliable computers…

51 Interactive programs  Programs that interact with their users through statements performing input and output  BMI.java Not interactive – weight and height are fixed

52 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 = Scanner.create(System.in); + nextDouble() : double +... stdin : Scanner - source = -... Variable stdin gives Scanner access to an input stream Input source attribute for this Scanner is the keyboard Behaviors of a Scanner support high-level view of inputting text

53 How to make Java work with the Scanner class  In Java 1.5, do a: import java.util.*;  In Java 1.4 (what we are using) Copy the Scanner.class file to the classes subdirectory for the JCreator project

54 Interactive program for BMI  Program outline // 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 // 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 = Scanner.create(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 //... }

class BMICalculator { public static void main(String[] args) { // define constants final double KILOGRAMS_PER_POUND = 0.454; final double METERS_PER_FOOT = ; // displaying legend System.out.println ("BMI Calculator\n"); // set up input stream Scanner stdin = Scanner.create(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)); }

57 Scanner API public Scanner(InputStream in)// Scanner(): convenience constructor for an // InputStream public Scanner(File s) // Scanner(): convenience constructor for a filename public create(InputStream in)// create(): convenience construction from an // InputStream public static Scanner create(File s)// Scanner(): convenience construction from 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

58 Class fields class BMICalculator { // define constants final static double KILOGRAMS_PER_POUND = 0.454; final static double METERS_PER_FOOT = ; public static void main(String[] args) { // displaying legend System.out.println ("BMI Calculator\n"); //... } class BMICalculator { // define constants final static double KILOGRAMS_PER_POUND = 0.454; final static double METERS_PER_FOOT = ; public static void main(String[] args) { // displaying legend System.out.println ("BMI Calculator\n"); //... } class BMICalculator { public static void main(String[] args) { // define constants final double KILOGRAMS_PER_POUND = 0.454; final double METERS_PER_FOOT = ; // displaying legend System.out.println ("BMI Calculator\n"); //... }