1 java basics chapter 2 (part 1 of 2) spring 2007 cs 101 aaron bloomfield
TRANSCRIPT
![Page 1: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/1.jpg)
1
Java basics
Chapter 2 (part 1 of 2)Spring 2007CS 101Aaron Bloomfield
![Page 2: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/2.jpg)
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
![Page 3: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/3.jpg)
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()
![Page 4: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/4.jpg)
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
![Page 5: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/5.jpg)
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."); } }
![Page 6: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/6.jpg)
66
A whitespacing aside: A whitespacing aside: IOCCCIOCCC
The International Obfuscated C Code The International Obfuscated C Code ContestContest– Online at http://www.ioccc.orgOnline at http://www.ioccc.org
C has very terse syntaxC has very terse syntax– So the contest tries to make it terser!So the contest tries to make it terser!
One common method is by modifying One common method is by modifying the whitespacethe whitespace
![Page 7: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/7.jpg)
77
A whitespacing aside: A whitespacing aside: IOCCCIOCCC
#define _ -F<00||--F-OO--;#define _ -F<00||--F-OO--;int F=00,OO=00;main(){F_OO();printf("%1.3f\n",4.*-F/OO/OO);}F_OO()int F=00,OO=00;main(){F_OO();printf("%1.3f\n",4.*-F/OO/OO);}F_OO(){{ _-_-_-__-_-_-_ _-_-_-_-_-_-_-_-__-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-__-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-__-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-__-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-__-_-_-_-_-_-_-_-_-_-_-_-_-_-__-_-_-_-_-_-_-_-_-_-_-_-_-_-_-__-_-_-_-_-_-_-_-_-_-_-_-_-_-_-__-_-_-_-_-_-_-_-_-_-_-_-_-_-_-__-_-_-_-_-_-_-_-_-_-_-_-_-_-_-__-_-_-_-_-_-_-_-_-_-_-_-_-_-_-__-_-_-_-_-_-_-_-_-_-_-_-_-_-_-__-_-_-_-_-_-_-_-_-_-_-_-_-_-_-__-_-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-__-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-_-__-_-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-_-_-__-_-_-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-_-_-_-_-__-_-_-_-_-_-_-_-_-_-_-_ _-_-_-_-_-_-_-__-_-_-_-_-_-_-_ _-_-_-__-_-_-_}}
#define X#define X#define XX#define XX#define XXX#define XXX#define XXXX#define XXXX#define XXXXX#define XXXXX#define XXXXXX#define XXXXXX#define XXXXXXX#define XXXXXXX#define orfa for#define orfa for#define XXXXXXXXX#define XXXXXXXXX#define archa char#define archa char#define ainma main#define ainma main#define etcharga getchar#define etcharga getchar#define utcharpa putchar#define utcharpa putchar
#include <stdio.h>#define Q r=R[*p++-'0'];while(#define B ;break;casechar*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=0B'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 XX X
X X X XX X X X
X X X XX X X X
X X X XX X X X
X X X XX X X X
X X X XX X X X
X X X XX X X X
X X X X X XX X X X X X
X XX X X XX XX XX X X XX X
X XXX X XXXXXXXXX X XXX XX XXX X XXXXXXXXX X XXX X
X XXX X XXXX XXXX X XXX XX XXX X XXXX XXXX X XXX X
X XXXX X XX ainma(){ archa XX X XXXX XX XXXX X XX ainma(){ archa XX X XXXX X
X XXXX X oink[9],*igpa, X XXXX XX XXXX X oink[9],*igpa, X XXXX X
X XXXXXX atinla=etcharga(),iocccwa XXXXXX XX XXXXXX atinla=etcharga(),iocccwa XXXXXX X
X XXXX ,apca='A',owla='a',umna=26 XXXX XX XXXX ,apca='A',owla='a',umna=26 XXXX X
X XXX ; orfa(; (atinla+1)&&(!((( XXX XX XXX ; orfa(; (atinla+1)&&(!((( XXX X
X XX atinla-apca)*(apca+umna-atinla) XX XX XX atinla-apca)*(apca+umna-atinla) XX X
X X >=0)+((atinla-owla)*(owla+umna- X XX X >=0)+((atinla-owla)*(owla+umna- X X
X atinla)>=0))); utcharpa(atinla), XX atinla)>=0))); utcharpa(atinla), X
X X atinla=etcharga()); orfa(; atinla+1; X XX X atinla=etcharga()); orfa(; atinla+1; X X
X X ){ orfa( igpa=oink ,iocccwa=( X XX X ){ orfa( igpa=oink ,iocccwa=( X X
X X (atinla- XXX apca)*( XXX apca+umna- X XX X (atinla- XXX apca)*( XXX apca+umna- X X
X atinla)>=0) XXX XXX ; (((( XX atinla)>=0) XXX XXX ; (((( X
X atinla-apca XXXXX XXXXXXX XXXXX )*(apca+ XX atinla-apca XXXXX XXXXXXX XXXXX )*(apca+ X
X umna-atinla XXXXXX )>=0) XXXXXX +((atinla- XX umna-atinla XXXXXX )>=0) XXXXXX +((atinla- X
X owla)*(owla+ XXXX umna- XXXX atinla)>=0)) XX owla)*(owla+ XXXX umna- XXXX atinla)>=0)) X
X &&"-Pig-" XX "Lat-in" XX "COb-fus" XX &&"-Pig-" XX "Lat-in" XX "COb-fus" X
X "ca-tion!!"[ X (((atinla- X apca)*(apca+ XX "ca-tion!!"[ X (((atinla- X apca)*(apca+ X
X umna-atinla) X >=0)?atinla- X apca+owla: XX umna-atinla) X >=0)?atinla- X apca+owla: X
X atinla)-owla X ]-'-')||((igpa== X oink)&&!(*( XX atinla)-owla X ]-'-')||((igpa== X oink)&&!(*( X
X igpa++)='w') X )||! X (*( X igpa X ++)=owla); * XX igpa++)='w') X )||! X (*( X igpa X ++)=owla); * X
X (igpa++)=(( X ( XXX XXX X atinla-apca XX (igpa++)=(( X ( XXX XXX X atinla-apca X
X )*(apca+ X umna XXX - XXX X atinla)>=0) XX )*(apca+ X umna XXX - XXX X atinla)>=0) X
X ?atinla- X apca XXX + XXX owla X :atinla), XX ?atinla- X apca XXX + XXX owla X :atinla), X
X atinla= X X X X etcharga()) XX atinla= X X X X etcharga()) X
X ; orfa( X atinla=iocccwa?(( X (atinla- XX ; orfa( X atinla=iocccwa?(( X (atinla- X
X owla)*(owla+ X umna-atinla)>=0 X )?atinla- XX owla)*(owla+ X umna-atinla)>=0 X )?atinla- X
X owla+apca: X atinla): X atinla; ((( XX owla+apca: X atinla): X atinla; ((( X
X atinla-apca)* X (apca+umna- X atinla)>=0)+( XX atinla-apca)* X (apca+umna- X atinla)>=0)+( X
X (atinla-owla)* X (owla+ X umna-atinla)>= XX (atinla-owla)* X (owla+ X umna-atinla)>= X
X 0)); utcharpa( XX XX atinla),atinla XX 0)); utcharpa( XX XX atinla),atinla X
X =etcharga()); XXXXXXX orfa(*igpa=0, XX =etcharga()); XXXXXXX orfa(*igpa=0, X
X igpa=oink; * igpa; utcharpa( XX igpa=oink; * igpa; utcharpa( X
X *(igpa++))); orfa(; (atinla+1)&&(!((( XX *(igpa++))); orfa(; (atinla+1)&&(!((( X
X atinla-apca )*(apca+ XX atinla-apca )*(apca+ X
X umna- XXXXX XXXXX atinla)>=0 XX umna- XXXXX XXXXX atinla)>=0 X
X )+(( XXXXX atinla- XX )+(( XXXXX atinla- X
XX owla)*( owla+umna- XXXX owla)*( owla+umna- XX
XX atinla)>=0))); utcharpa XXXX atinla)>=0))); utcharpa XX
XX (atinla),atinla= XXXX (atinla),atinla= XX
XX etcharga()); } XXXX etcharga()); } XX
XXXX } XXXXXXXX } XXXX
XXXXXXXXXXXXXXXXXX
a(X){/*/X=-a(X){/*/X=- a(X){/*/X=-a(X){/*/X=-
-1;F;X=--1;F;X=- -1;F;X=--1;F;X=-
-1;F;}/*/-1;F;}/*/ -1;F;}/*/-1;F;}/*/
char*z[]={"char*z[]={","a(X){/*/X=-","-1;F;X=-","-1;F;}/*/","9999999999 :-| ",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(*","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","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(","[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++&","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);","~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","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",",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};";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=- b(X){/*/X=-b(X){/*/X=-
-1;F;X=--1;F;X=- -1;F;X=--1;F;X=-
-1;F;}/*/-1;F;}/*/ -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(*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=zz[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([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++&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);~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(Xc(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,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);};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=- c(X){/*/X=-c(X){/*/X=-
-1;F;X=--1;F;X=- -1;F;X=--1;F;X=-
-1;F;}/*/-1;F;}/*/ -1;F;}/*/-1;F;}/*/
![Page 8: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/8.jpg)
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!
![Page 9: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/9.jpg)
9
// 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."); }}
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."); }}
Some words are reserved, and can’t be used as identifiers
![Page 10: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/10.jpg)
10
Capitalization Case matters!
public ≠ Public ≠ PUBLIC This is different than FORTRAN and BASIC This is the same as C/C++
You can use Public as a identifier Not recommended, though!
![Page 11: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/11.jpg)
11
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
![Page 12: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/12.jpg)
1212
A bit of humor:A bit of humor:1989 Computer1989 ComputerAdvertisementAdvertisement
Guess the price!
![Page 13: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/13.jpg)
1313
VariablesVariables
![Page 14: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/14.jpg)
14
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; Visualization: This defines an integer variable with value 5
The variable is x The type is int
5x
![Page 15: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/15.jpg)
15
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
4.3d
![Page 16: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/16.jpg)
16
Assignment operator = Allows the memory location for a variable to be updated
Considerint j = 11;j = 1985;
Assignment operator = Allows the variable to be updated
Considerint j = 11;j = 1985;
Primitive variable assignment
11j
Expression to beevaluated
Name of previouslydefined object
target = expression ;
1985j
![Page 17: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/17.jpg)
17
1a
1aSquared
Considerint a = 1;int aSquared = a * a;a = 5;aSquared = a * a;
Considerint i = 0;i = i + 1;
Considerint asaRating;asaRating = 400;
Primitive variable assignment
5a
1aSquared
5a
25aSquared
0i 1i
-asaRating 400asaRating
int a = 1;int aSquared = a * a;a = 5;aSquared = a * a;
int i = 0;i = i + 1;
int asaRating;asaRating = 400;
![Page 18: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/18.jpg)
18
19.28x
5.12y
5.12rememberX
5.12x
Primitive variable assignment
5.12x
19.28y
5.12x
19.28y
5.12rememberX
19.28x
19.28y
5.12rememberX
Considerdouble x = 5.12;double y = 19.28;double rememberX = x; x = y; y = rememberX;
Considerdouble x = 5.12;double y = 19.28;double rememberX = x; x = y; y = rememberX;
Considerdouble x = 5.12;double y = 19.28;double rememberX = x; x = y; y = rememberX;
Considerdouble x = 5.12;double y = 19.28;double rememberX = x; x = y; y = rememberX;
Considerdouble x = 5.12;double y = 19.28;double rememberX = x; x = y; y = rememberX;
Considerdouble x = 5.12;double y = 19.28;double rememberX = x; x = y; y = rememberX;
![Page 19: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/19.jpg)
19
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
![Page 20: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/20.jpg)
public class SolvingABC {
public static void main(String[] args) {
// variable definitions and initializationsint a = 3;int b = 12;int c = 6;int d = 1;
// calculate resultsdouble result1 = d * a;double result2 = c + 2 * a;double result3 = d - b / c;double result4 = c * b % c;double result5 = b / 2;
// display the resultsSystem.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
![Page 21: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/21.jpg)
21
Variable initialization Note that the following
int x; x = 5;
is (mostly) the same as the following:
int x = 5;
![Page 22: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/22.jpg)
22
You can only declare variables once The following code will not work:
int x = 5; int x = 6;
Java can have only one variable named x So you can’t declare multiple variables with the same
name (we’ll see ways around this later in the semester)
![Page 23: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/23.jpg)
2323
Today’s demotivatorsToday’s demotivators
![Page 24: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/24.jpg)
2525
TypesTypes
![Page 25: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/25.jpg)
26
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 false
a single character
Also the void “type”, which we will see later
We’ll only be using half of the types in this course: int, double, boolean, and char
![Page 26: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/26.jpg)
27
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!
![Page 27: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/27.jpg)
28
Primitive integer types Consider a byte:
0 1 0 0 0 1 0 1
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
![Page 28: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/28.jpg)
29
Primitive integer types
Type Bytes Minimum value Maximum value
byte 1 -27=-128 27-1=127
short 2 -215=-32,768
215-1=32,767
int 4 -231=-2,147,483,648 231-1=2,147,483,647
long 8 -263=-9,223,372,036,854,775,808
263-1=9,223,372,036,854,775,807
![Page 29: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/29.jpg)
30
Increment and decrement operators ++
Increments a number variable by 1 --
Decrements a numeric variable by 1
Considerint 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
Considerint i = 4;++i; // incrementSystem.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
Considerint i = 4;++i;System.out.println(i); // displaySystem.out.print(++i);System.out.println(i++);System.out.println(i);
++ Increments a number variable by 1
-- Decrements a numeric variable by 1
Considerint i = 4;++i;System.out.println(i);System.out.print(++i); // update then displaySystem.out.println(i++); System.out.println(i);
++ Increments a number variable by 1
-- Decrements a numeric variable by 1
Considerint 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
Considerint 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
Considerint i = 4;++i;System.out.println(i);System.out.print(++i);System.out.println(i++);System.out.println(i);
4i 5i 6i 7i
![Page 30: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/30.jpg)
3131
Why C++ was named C++Why C++ was named C++
The increment operator adds one to The increment operator adds one to the integer valuethe integer value– Or makes it ‘one better’Or makes it ‘one better’
So when Bjarne Stroustrup was So when Bjarne Stroustrup was making the successor to C, he was making the successor to C, he was making a ‘one better’ languagemaking a ‘one better’ language
![Page 31: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/31.jpg)
32
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
![Page 32: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/32.jpg)
33
Primitive boolean type
The boolean type has only two values: true false
There are boolean-specific operators && is and || is or ! is not etc.
We’ll see those operators in a few slides
![Page 33: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/33.jpg)
3434
Carved egg Carved egg shells (done shells (done
via laser)via laser)
![Page 34: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/34.jpg)
35
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
![Page 35: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/35.jpg)
36
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
![Page 36: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/36.jpg)
37
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
Constants have a specific naming scheme MILES_PER_KILOMETER All caps, with underscores for spaces
![Page 37: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/37.jpg)
38
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
![Page 38: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/38.jpg)
39
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;
![Page 39: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/39.jpg)
40
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
![Page 40: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/40.jpg)
41
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
![Page 41: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/41.jpg)
4242
New York DriversNew York Drivers
![Page 42: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/42.jpg)
43
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 linesSystem.out.println (
“hello world!”);
But can’t have the String on multiple linesSystem.out.println (
“hello world!”);
![Page 43: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/43.jpg)
44
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
![Page 44: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/44.jpg)
4646
MethodsMethods
![Page 45: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/45.jpg)
47
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
![Page 46: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/46.jpg)
import java.util.*;
public class MathFun {
public static void main(String[] args) {// set up the Scanner objectScanner stdin = new Scanner(System.in);
// have the user input the values for x and ySystem.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
![Page 47: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/47.jpg)
4949
Scanner usageScanner usage
![Page 48: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/48.jpg)
50
Interactive programs Programs that interact with their users through statements
performing input and output
Temperature conversion (coming up shortly) Not interactive – Celsius temperature is fixed
BMI.java (coming up somewhat less shortly) Not interactive – weight and height are fixed
![Page 49: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/49.jpg)
51
Reading in a value from the keyboard We will see this in more detail later in this slide set For now (and for lab 2), this is what you need to know
To read in values from the keyboard, you first have to create a Scanner object Don’t worry about what an object is, what a Scanner is, or
about creation of these things We’ll get to them later To do this, use the following code:
Scanner stdin = new Scanner (System.in);
NOT the following code:
Scanner stdin = Scanner.create (System.in);
![Page 50: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/50.jpg)
52
Reading in more values from the keyboard You should have this only once in your program.
From then on, when you want to read in a value into a variable, use the following:
int x = stdin.nextInt();double d = stdin.nextDouble();
Or
x = stdin.nextInt();d = stdin.nextDouble();
![Page 51: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/51.jpg)
53
Scanner usage exampleimport java.util.*;
public class ScannerUsage {public static void main (String args[]) {
Scanner stdin = new Scanner (System.in);
System.out.println ("Enter first value");int x = stdin.nextInt();
int y;System.out.println ("Enter second value");y = stdin.nextInt();
int z = x + y;System.out.println ("The sum of " + x + " and " +
y + " is " + z);}
}
![Page 52: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/52.jpg)
5454
Program demo…Program demo…
ScannerUsage.javaScannerUsage.java
Note that all this code is available on the Note that all this code is available on the website!website!
![Page 53: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/53.jpg)
55
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);
![Page 54: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/54.jpg)
5656
Today’s demotivatorsToday’s demotivators
![Page 55: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/55.jpg)
5757
Program ExamplesProgram Examples
![Page 56: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/56.jpg)
58
Example program: temperature conversion// Purpose: Convert a Celsius temperature to Fahrenheit
public class CelsiusToFahrenheit {
// main(): application entry pointpublic 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);}
}
![Page 57: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/57.jpg)
5959
Program demo…Program demo…
CelsiusToFahrenheit.javaCelsiusToFahrenheit.java
![Page 58: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/58.jpg)
60
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
![Page 59: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/59.jpg)
61
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 } }
![Page 60: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/60.jpg)
62
// 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: define constants
0.454KILOGRAMS_PER_POUND
0.3046METERS_PER_FOOT
![Page 61: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/61.jpg)
63
BMI.java: personal characteristics
75.5weightInPounds
// 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
4.5heightInFeet
![Page 62: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/62.jpg)
64
BMI.java: convert to metric equivalents
34.2770metricWeight
// 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; 1.3706metricHeight
![Page 63: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/63.jpg)
65
BMI.java: perform BMI calculation
// perform bmi calculation double bmi = metricWeight / (metricHeight *
metricHeight);
18.2439bmi
![Page 64: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/64.jpg)
66
// 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
18.2439bmi
![Page 65: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/65.jpg)
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)); }
![Page 66: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/66.jpg)
6868
Program demo…Program demo…
BMI.javaBMI.java
![Page 67: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/67.jpg)
69
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
![Page 68: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/68.jpg)
7070
Removing your car in Removing your car in snow…snow…
SnowCar.wmvSnowCar.wmv
![Page 69: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/69.jpg)
7171
BMI CalculatorBMI Calculator
![Page 70: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/70.jpg)
72
Program outline
import java.util.*;
// Purpose: Compute BMI for user-specified// weight and height
public class BMICalculator {
// main(): application entry pointpublic 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
}}
Interactive program for BMI Program outline
import java.util.*;
// Purpose: Compute BMI for user-specified// weight and height
public class BMICalculator {
// main(): application entry pointpublic 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
}}
![Page 71: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/71.jpg)
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 //...}
![Page 72: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/72.jpg)
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)); }}
![Page 73: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/73.jpg)
7575
Program demo…Program demo…
BMICalculator.javaBMICalculator.java
![Page 74: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/74.jpg)
76
Scanner APIpublic 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
![Page 75: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/75.jpg)
7878
CastingCasting
![Page 76: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/76.jpg)
79
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 thisdouble 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
![Page 77: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/77.jpg)
80
More casting examples Consider
double d = 3.6;int x = (int) d;
At this point, x holds 3 (not 4!) This truncates the value!
Considerint 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”
![Page 78: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/78.jpg)
8181
More on println()More on println()
![Page 79: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/79.jpg)
82
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
![Page 80: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/80.jpg)
83
print() vs. println() What do these statements output?
System.out.print (“foo”);System.out.println (“bar”);System.out.println ();System.out.println (“foo”);System.out.println (“bar”);
Output
foobar
foobar
![Page 81: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/81.jpg)
84
Escape sequences Java provides escape sequences for printing special
characters \b backspace \n newline \t tab \r carriage return \\ backslash \" double quote \' single quote
![Page 82: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/82.jpg)
85
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" 7Jenna 5'10" 9JJ 6'1" 14
![Page 83: 1 Java basics Chapter 2 (part 1 of 2) Spring 2007 CS 101 Aaron Bloomfield](https://reader035.vdocuments.us/reader035/viewer/2022062717/56649e565503460f94b4e740/html5/thumbnails/83.jpg)
8686
What we wish computers could What we wish computers could dodo