Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
CS2110,Recita.on2
Argumentstomethodmain,
Packages,
WrapperClasses,
Characters,
Strings
Demo: Create application
Tocreateanewprojectthathasamethodcalledmainwitha
bodythatcontainsthestatement
System.out.println(“Hello World”);
dothis:
• Eclipse:File->New->Project
• File->New->Class
• Checkthemethodmainbox
• Intheclassthatiscreated,writetheabovestatementinthe
bodyofmain
• HitthegreenplaybuIonordomenuitemRun->Run
Java Application
publicsta.cvoidmain(String[]args){…}
Parameter:Stringarray
AJavaprogramthathasaclasswithastaScproceduremain,as
declaredabove,iscalledanapplicaSon.
Theprogram,i.e.theapplicaSon,isrunbycallingmethodmain.
Eclipsehasaneasywaytodothis.
Method main and its parameter
publicsta.cvoidmain(String[]args){…}
InEclipse,whenyoudomenuitem
Parameter:Stringarray
Run->Run(orclickthegreenPlaybuIon)
Eclipseexecutesthecallmain(arraywith0arguments);
TotellEclipsewhatarrayofStringstogiveastheargument,
startbyusingmenuitem
Run->RunConfiguraSons…
or
Run->DebugConfiguraSon…
(seenextslide)
Window Run Configurations
ThisArgumentspaneofRunConfiguraSonswindowgives
argumentarrayofsize3:
args[0]:“SpeciesData/a0.dat”
args[1]:“2”
args[2]:“whatfor?”
QuotesOK,butnotneeded
ClickArgumentspane
Quotesneeded
becauseofspacechar
DEMO:Givinganargumenttothecallonmain
ChangetheprogramtoprinttheStringthatisinargs[0],i.e.
changethestatementinthebodyto
System.out.println(args[0]);
Then
• DoRun->RunConfiguraSons
• ClicktheArgumentstab
• IntheProgramfield,typein“Haloooothere!”
• ClicktherunbuIoninthelowerrighttoexecutethecallon
mainwithanarrayofsize1…
PACKAGESANDTHEJAVAAPI
Package
Package:CollecSonofJavaclassesandotherpackages.
SeeJavaSummary.pptx,slide20
AvailableinthecoursewebsiteinthefollowinglocaSon:
hIp://www.cs.cornell.edu/courses/CS2110/2016sp/links.html
Threekindsofpackages
(1) Thedefaultpackage:inprojectdirectory/src
(2) Javaclassesthatarecontainedinaspecificdirectoryonyour
harddrive(itmayalsocontainsub-packages)
(3) PackagesofJavaclassesthatcomewithJava,
e.g.packagesjava.lang,javax.swing.
APIpackagesthatcomewithJava
Visitcoursewebpage,clickLinks,thenJava8APISpecs.
Link:
hIp://www.cs.cornell.edu/courses/CS2110/2016sp/links.html
Scrolldowninlekcol(Packagespane),clickonjava.lang
MorerealisScally:
hIp://lmgly.com/?q=java+8+api
FindingpackagedocumentaSon
Scrollthroughhere
Packagejava.langvs.otherpackages
Youcanuseanyclassinpackagejava.lang.Justusethe
classname,e.g.
Character
TouseclassesinotherAPIpackages,youhavetogive
thewholename,e.g.
javax.swing.JFrame
Soyouhavetowrite:
javax.swing.JFramejf=newjavax.swing.JFrame();
Usetheimportstatement!
TobeabletousejustJFrame,putanimport
statementbeforetheclassdefiniSon:
ImportsonlyclassJFrame.
Usetheasterisk,asinline
importjavax.swing.JFrame;
below,toimportallclasses
inpackage:
publicclassC{
importjavax.swing.*;
…
publicvoidm(…){
JFramejf=newJFrame();
…
}
}
Otherpackagesonyourharddrive
Onecanputabunchoflogicallyrelatedclassesintoapackage,
whichmeanstheywillallbeinthesamedirectoryonharddrive.
Reasonsfordoingthis?Wediscussmuchlater.
ImageofEclipse
PackageExplorer:
3projects:
Defaultpackagehas
2classes:
Rec02,Rec02Tester
pack1has1class:C
projecthas
defaultpackage
and
packagepack1
HarddriveEclipsePackageExplorer
Eclipse
Hashing
I03Demo
recitaSon02
src
Rec02.java
Rec02Tester.java
pack1
C.java
Eclipsedoesnotmakeadirectoryforthedefault
package;itsclassesgorightindirectorysrc
ImporSngthepackage
Everyclassinpackage
pack1muststartwith
thepackagestatement
packagepack1;
publicclassC{
/**Constructor:*/
publicC(){
}
}
Everyclassoutsidethe
packageshouldimportits
classesinordertousethem
importpack1.*;
publicclassRec02{
publicRec02(){
Cv=newC();
}
}
CHARANDCHARACTER
Primitive type char
Usesinglequotes
Unicode:2-byterepresentaSon
Visitwww.unicode.org/charts/
toseeallunicodechars
char fred= 'a';
char wilma= 'b';
System.out.println(fred);
a
Specialchars worthknowingabout
•
•
•
•
•
•
•
•
•
' '
'\t'
'\n'
'\''
'\"'
'\\'
'\b'
'\f'
'\r'
-space
-tabcharacter
-newlinecharacter
-singlequotecharacter
-doublequotecharacter
-backslashcharacter
-backspacecharacter-NEVERUSETHIS
-formfeedcharacter-NEVERUSETHIS
-carriagereturn-NEVERUSETHIS
Backslash,calledthe
escapecharacter
Casting char values
Castachartoanintusingunaryprefixoperator(int),
GivesunicoderepresentaSonofchar,asanint
(int)'a'gives97
(char)97gives'a'
(char)2384gives'ॐ'
Om,orAum,thesoundof
theuniverse(Hinduism)
NooperaSonsonchars(valuesoftypechar)!BUT,if
usedinarelaSonorinarithmeSc,acharisautomaScallycastto
typeint.
RelaSons<><=>===!===
'a' < 'b'
same as
97 < 98, i.e. false
'a' + 1
gives
98
SpecsforClassCharacter
MainpanenowcontainsdescripSonofclassCharacter:
1. TheheaderofitsdeclaraSon.
2. AdescripSon,includinginfoaboutUnicode
3. Nestedclasssummary(skipit)
4. Fieldsummary(skipit)
5. Constructorsummary(read) FindmethodcompareTo
Seea1-sentencedescripSon
6. Methodsummary(read)
7. Fielddetail(skipit)
Clickonmethodname
8. Methoddetail(read)
Takesyoutoacomplete
descripSoninMethoddetail
secSon
Class Character
AnobjectofclassCharacterwrapsasinglechar
(hasafieldthatcontainsasinglechar)
Character c1= new Character('b');
Character c2= new Character('c');
c1 Character@a1
Character@a1
??? 'b'
charValue()
compareTo(Character)
equals(Object)
Don’tknow
fieldname
c2 Character@b9
Character@b9
??? 'c'
charValue()
compareTo(Character)
equals(Object)
Class Character
•
EachinstanceofclassCharacterwrapsacharvalue—hasa
fieldthatcontainsacharvalue.Characterallowsacharvalue
tobetreatedasanobject.
• FindmethodsineachobjectbylookingatAPIspecsonweb:
docs.oracle.com/javase/8/docs/api/java/lang/Character.html
c.charValue()
c’swrappedchar,asachar
c.equals(c1)
Trueiffc1isaCharacterandwrapssamechar
c.compareTo(c1) 0ifc==c1.<0ifc<c1.>0ifc>c1.
c.toString()
c’swrappedchar,asaString
…
…
Static methods in class Character
LotsofstaScfuncSons.Youhavetolooktoseewhatisavailable.
Belowareexamples
Thesereturntheobvious
isAlphabetic(c)
booleanvalueforparameter
c,achar
isDigit(c)
isLetter(c)
We’llexplain“staSc”soon
isLowerCase(c)
Whitespacecharsarethespace‘‘,
isUpperCase(c)
tabchar,linefeed,carriagereturn,
isWhitespace(c)
etc.
toLowerCase(c)
Thesereturnachar.
toUpperCase(c)
Youcanimporttheseusing“importstaScjava.lang.Character.*;”
== versus equals
c1 == c2 false
c3 == c1 false
c1 == c1 true
c1.equals(c2) true
c3.equals(c1) Error!!!
trueiffc1,c2containsamevalues
trueiffc2isalsoaCharacter
objectandcontainssamechar
asc1
c1 Character@a1 c2 Character@b9
Character@a1
??? 'b'
charValue()
compareTo(Character)
equals(Object)
c3 null
Character@b9
??? 'b'
charValue()
compareTo(Character)
equals(Object)
STRING
Class String
String s= “CS2110”;
String: special place in Java:
no need for a new-expression.
String literal creates object.
s String@x2
String@x2
??? “CS2110”
FindoutaboutmethodsofclassString:
length()
docs.oracle.com/javase/8/docs/api/
charAt(int)
index.html?java/lang/String.html
subString(int)
subString(int,int)
equals(Object)
Lotsofmethods.Weexplainbasicones
trim()
contains(String)
Important:Stringobjectisimmutable:
indexOf(String)
can’tchangeitsvalue.AlloperaSons/
startsWith(String)
funcSonscreatenewStringobjects
endsWith(String)
…more…
Operator +
+isoverloaded
"abc" + "12$" evaluatesto"abc12$"
IfoneoperandofconcatenaSonisaStringandtheotherisn’t,
theotherisconvertedtoaString.
Sequenceof+donelektoright
1 + 2
+ "ab$"
"ab$" + 1 + 2
evaluatesto"3ab$"
evaluatesto"ab$12"Watch
out!
Operator +
System.out.println("c is: " + c +
", d is: " + d +
Usingseveral
", e is: " + e);
linesincreases
readability
Canuse+toadvantageinprintlnstatement.Gooddebuggingtool.
•Notehoweachoutputnumberisannotatedtoknowwhatitis.
Output:
cis:32,dis:-3,eis:201
c
32
d -3
e 201
Picking out pieces of a String
s.length():numberofcharsins—5
01234
Numberingchars:firstoneinposiSon0
"CS 13"
s.charAt(i):charatposiSoni
s.substring(i):newStringcontaining
charsatposiSonsfromitoend
—s.substring(2)is'13'
String@x2
s.substring(i,j):newString
containingcharsatposiSons
i..(j-1)—s.substring(2,4)is'13'
? "CS 13"
length()
charAt(int)
subString(int)
subString(int,int)
…more…
Becareful:Charatjnotincluded!
s String@x2
Other useful String functions
s.trim() – s but with leading/trailing whitespace removed
s.indexOf(s1)
– position of first occurrence of s1 in s
(-1 if none)
s.lastIndexOf(s1) – similar to s.indexOf(s1)
s.contains(s1)
– true iff String s1 is contained in s2
s.startsWith(s1) – true iff s starts with String s1
s.endsWith(s1)
– true iff s ends with String s1
s.compareTo(s1) – 0 if s and s1 contain the same string,
< 0 if s is less (dictionary order),
> 0 if s is greater (dictionary order)
There are more functions! Look at the API specs!