1 / 68

Java basics

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

Télécharger la présentation

Java basics

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Java basics Chapter 2 Spring 2005 CS 101 Aaron Bloomfield

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

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

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

  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. 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

  7. 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]++;}}}

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

  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 Typethat itreturns A namefor the method Any number(including zero)of parameters The body ofthe method(can be empty) public static void main (String[] args) { ... }

  12. Escape sequences • Java provides escape sequences for printing special characters • \b backspace • \n newline • \t tab • \r carriage 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. Primitive variable assignment • Assignment operator = • Allows the memory location for a 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;

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

  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 two values: true and falsea a single character integer numbers • Also the void “type”

  18. 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!

  19. 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

  20. Primitive integer types

  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 declare a void “variable”, as in C/C++: void *foo; • You cannot use it to specify that there are no parameters to a method: ... int foo (void) { ... • This is different from C/C++

  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 = 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

  30. 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;

  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. 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 + ...

  33. 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 ( )

  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. 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 • + - / * • 7.0 / 2.0 yields 3.5 • 7.0 / 2 yields 3.5 • 7 / 2.0 yields 3.5 • 7 / 2 yields 3

  37. 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

  38. Quick survey • I understand Java operators • Pretty much • With a little review, I’ll have it down • Not really • 17

  39. 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!” );

  40. 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

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

  42. 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”

  43. Quick survey • I understand casting • Totally! • More or less • Not really • Huh?

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

  45. 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

  46. 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 } }

  47. 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;

  48. 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

  49. 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;

  50. A bit of humor…

More Related