free webinars, videos, and live trainingtisten.ir/.../12/absolute-beginner-java-4-selenium... ·...

131

Upload: others

Post on 29-May-2020

10 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step
Page 2: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step
Page 3: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

FreeWebinars,Videos,andLiveTrainingMr.Jonesplanstohavefreestep-by-stepdemonstrationwebinars,videos,andlivetrainingswalkingpeoplethroughconceptsofSeleniumandQTP/UFTfromA-Z.Thematerialwillteach/trainindividualsthefundamentalsoftheprogramminglanguage,fundamentalsofSeleniumandQTP/UFT,andimportantconceptsofSeleniumandQTP/UFT.Allofthewebinars,videos,andlivetrainingwillbedirectedtowardbeginnersaswellasmid-levelautomationengineers.

SignUptoReceive

1. 3TipsToMasterSeleniumWithin30Dayshttp://tinyurl.com/3-Tips-For-Selenium

2. 3TipsToMasterQTP/UFTWithin30Dayshttp://tinyurl.com/3-Tips-For-QTP-UFT

3. FreeWebinars,Videos,andLiveTrainingshttp://tinyurl.com/Free-QTP-UFT-Selenium

Page 4: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

RexJones’ContactInformationEmailAddress:[email protected]:https://www.linkedin.com/in/rexjones34Books:http://tinyurl.com/Rex-Allen-Jones-BooksTwitter:@RexJonesIISkype:rex.jones34

Page 5: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

TableofContentsFREEWEBINARS,VIDEOS,ANDLIVETRAINING

REXJONES’CONTACTINFORMATION

TABLEOFCONTENTS

PREFACE

ABOUTTHEAUTHOR

ABOUTTHEEDITOR

COPYRIGHT,LEGALNOTICE,ANDDISCLAIMER

ACKNOWLEDGEMENTS

CHAPTER1INTRODUCTIONTOJAVA

OVERVIEW

VARIABLESANDDATATYPES

OPERATORS

CONTROLSTRUCTURES

OBJECT-ORIENTEDPROGRAMMING(OOP)

CHAPTER2VARIABLESANDDATATYPES

VARIABLENAMES

VARIABLEDECLARATION

VARIABLEINITIALIZATION

VARIABLETYPE,SCOPE,ANDLIFETIME

PRIMITIVEDATATYPES

CONSTANTS

CHAPTER3OPERATORS

ARITHMETICOPERATORS

BITWISEOPERATORS

LOGICALOPERATORS

RELATIONALOPERATORS

ASSIGNMENTOPERATOR

TERNARYOPERATOR

OPERATORPRECEDENCE

DATATYPECASTING

EXPRESSIONS

CHAPTER4CONTROLSTRUCTURES

IFBRANCH

SWITCHBRANCH

Page 6: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

FORLOOP

WHILELOOP

DOWHILELOOP

BREAKTOEXIT

CONTINUETONEXTSTATEMENT

CONCLUSION

RESOURCES

BOOKSBYREXJONESII

SIGNUPTORECEIVE

Page 7: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

PrefaceIamenthusedtowriteaninstructionalbookonJavabecauseIhavetalkedwithmanytesterswhocanrelatetothefrustrationcausedbythelackofinformationtolearnJavaforautomationtesting.JavaisoneoftheprogramminglanguagesforSelenium.Acommonchallengewithnewautomationtestersislearninghowtoprogram.Therefore,thisbookisdesignedtohelpanabsolutebeginnerlearnJava.Thepurposeofthisbookistofillaneedofautomationtesterswhoareforcedtohurrypasttheprogrammingcomponentofautomation,leadingtoastrugglewithworkinginSelenium.

TargetAudience

ThetargetaudienceisbeginnerswithlittletonoknowledgeofJava.BeginnersarepeoplenewtoSeleniumandJava,andhaveadesiretoestablishadeepfoundationofJavaprinciples.

WhylearnJava?

JavaisapowerfulprogramminglanguagethatisfrequentlyandcommonlyimplementedintheInformationTechnology(IT)industry.JavaprogrammersareinhighdemandintheITfieldandbeingabletocodeautomationscriptsinJavawillmakeyouacommoditytoanyqualityassurancetestingteam.TherearemanyJavaforums(messageboards)onlinethatsupportJavaprogrammersinneedofasolutionforaproblem.LearningJavaandSeleniumisagreatcombinationthatwillmakeanyqualityassurancetestereffectiveonanautomationproject.

Page 8: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

AbouttheAuthor

RexAllenJonesIIisaQA/SoftwareTesterwithapassionforsharingknowledgeabouttestingsoftware.Hehasbeenwatchingwebinars,attendingseminars,andtestingapplicationssinceFebruary2005.Mr.JonesgraduatedfromDeVryUniversityinJune1999withaBachelor’sofSciencedegreeinComputerInformationSystems(CIS).

Currently,RexisaConsultantandformerBoardofDirectorforUserGroup:Dallas/FortWorthMercuryUserGroup(DFWMUG)andmemberofUserGroup:Dallas/FortWorthQualityAssuranceAssociation(DFWQAA).InadditiontohisUserGroupmemberships,heisaCertifiedSoftwareTesterEngineer(CSTE)andhasaTestManagementApproach(TMap)certification.

Mr.Jones’adviceforpeopleinterestedinFunctionalAutomationTestingistolearntheprogramminglanguage.Thisadviceledhimtowritetwobooks“(Part1&Part2)YouMustLearnVBScriptforQTP/UFT”gearedtowardsVBScriptwhichistheprogramminglanguageforUnifiedFunctionalTesting(UFT)formerlyknownasQuickTestProfessional(QTP).Inaddition,onebook“Part1–Java4SeleniumWebDriver”andanupcomingbook“Part2–Java4SeleniumWebDriver”gearedtowardJavawhichisoneoftheprogramminglanguagesforSelenium.

Page 9: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

AbouttheEditor

WhenSamanthaMannisnotimprovingthecontentsofadocumentthroughconstructiveeditingmarksandremarks,sheisenjoyinglifeasaprofessionalinDallas,Texas.SamanthaisaUserExperienceguruintherealmsofresearchanddesign,andworksasanInformationTechnologyconsultant.Outsideofworkherhobbiesincludethetypicalnerd-typefunoffreelanceediting,reading,writing,andbingewatchingNetflixwithherpitbull.

ConnectwithSamantha:

[email protected]

https://www.linkedin.com/pub/samantha-mann/84/9b7/100

Page 10: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

Copyright,LegalNotice,andDisclaimerThispublicationisprotectedundertheUSCopyrightActof1976.Allrightsarereservedincludingresalerightswhichappliestointernational,federal,state,andlocallaws.Thepurchaserisnotallowedtoshareorsellthisbooktoanyone.

Pleasenotethatmuchofthispublicationisbasedonpersonalexperienceandanecdotalevidence.Theauthorhasmadeeveryreasonableattempttoproduceaccuratecontentinthisbook.Heassumesnoresponsibilityforunknownerrorsoromissions.Therefore,thepurchasershouldusethisinformationashe/sheseesfit.

Anytrademarks,servicemarks,productnamesornamedfeaturesareassumedtobethepropertyoftheirrespectiveownersandusedonlyforreference.

Copyright©2016Test4Success,LLC.Allrightsreservedworldwide.

ASIN:B01CO4E000

Page 11: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

AcknowledgementsIwouldliketoexpressmygratitudetomywifeTiffany,childrenOliviaRexe’andRexIII,editorSamanthaMann,family,friends,andthemanypeoplewhoprovidedencouragement.Writingthisbooktooktimeandyoursupporthelpedpushedthisbookforward.

ThankYou,

RexAllenJonesII

Page 12: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

Chapter1IntroductiontoJava

Page 13: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

OverviewJavaisapowerfulprogramminglanguagedevelopedbySunMicrosystems.Itisawidelyusedobject-orientedlanguagethatrevolutionizedtheweb.Inadditiontorevolutionizingtheweb,Javaisusedinmanydevices,suchascellphones.TheJavaDevelopmentKit(JDK)andoneoftheIntegratedDevelopmentEnvironments(IDE),suchasEclipse,mustbedownloadedandinstalledinordertouseJava.

ThefollowinglinksarevalidfordownloadingJavaDevelopmentKit(JDK)andEclipseIDEatthetimeofwritingthisbook:

DownloadJavaDevelopmentKit(JDK)http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

DownloadEclipseIDEhttps://eclipse.org/downloads/

OncetheJDKandEclipseIDEhavebeendownloadedandinstalled,statementscanbewrittenandcompiled.Statementsarereferredtoascode—alineorlinesofinformationwritteninaparticularsyntax. Thekeytoallprogramminglanguagesisthesyntax.Syntaxisasetofrulesthatspecifiesastructuredcombinationofwordsandsymbols.Ifnotstructuredcorrectly,anerroroccurstopreventthestatementsfromcompiling.

Compilingstatementsisperformedviaacompiler.Acompiledlanguagereferstoaspecialprogramthatretrievesthestatementsdevelopedbyaprogrammerandthentranslatesthestatementsintoanunderstandablemachinelanguage.Acomputerprocessoristhenabletousethemachinelanguageoncethestatementsaretranslated. Itisimportanttoknowthatcommentsarestatementsbutignoredandnevercausesanerror.Commentsarenotesthathelpprogrammersunderstandtheprogramand/orotherstatements.Thefollowingaretwotypesofcomments:

1. Singleline–commentonelineatatime2. Multi-line–commentmultiplelines

Usually,multi-linecommentsarelocatedatthetopofaprogramwithinformationdescribingtheentireprogram.Singlelinecommentsareusedtoexplainstatementswithintheprogram.Thepurposeofbothtypesofcommentsistoself-documentcontentwrittenintheprogram.Commentsprovideanswerstotwoquestions:

Page 14: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

1. Whatisthepurposeoftheprogram,statements,etc.?2. Whydidtheprogrammerwritetheprogram,statements,etc.?

Thefollowingisanexampleofasingleandmulti-linecomment:

/*

Programmer:RexJonesII

Description:Showbothtypesofcomments

Purpose:

Date:

*/

publicclassMain

{

publicstaticvoidmain(String[]args)

{

//Thisisasinglelinecommentexample

System.out.println(“HelloWorld!!!”);

}

}

Figure1.1–SingleandMulti-LineExamples

ProgramOutput:HelloWorld!!!

Lineonebeginsthemulti-linecommentwithaforwardslash(/)andanasterisk(*)whilelinesixendsthemulti-linecommentwithanasteriskandforwardslash(*/).Line12

Page 15: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

beginsthesinglelinecommentwithtwoforwardslashes(//)anddoesnotincludesymbolstoendthecomment.

ThischapterprovidesgeneralconceptsregardingJavaandwillexplainthefollowing:

VariablesandDataTypes

Operators

ControlStructures

Object-OrientedProgramming(OOP)

Note:Detailsoftheconceptsarecoveredinsubsequentchapters.

Page 16: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

VariablesandDataTypesAvariableisamemorylocationwithanamethatcontainsavalue(seeVariablesandDataTypesinChapter2).Inordertousethevariable,itmustbedeclaredandinitialized.Declaringavariableisstatingclearlythatavariableexistsbyprovidingadatatypeandvariablename.Datatypereferstothetypeofdatathatcanbestoredinavariablewhilevariablenameidentifiesthevariable.InJava,therearetwokindsofdatatypes:primitiveandreference.Primitivedatatypesupportseightbasicdatatypesandreferencedatatypeisbasedonaclass.Initializingavariableiswhenthevariableisassignedavaluethatcanchangeduringprogramexecution.Thefollowingisavariabledeclarationandinitializationexample:

publicclassDeclare_Initialize_Variable

{

publicstaticvoidmain(String[]args)

{

intsum;

sum=3+4;

System.out.println(“Whatisthesumof3+4?“+sum);

}

}

Figure1.2–VariableDeclarationandInitialization

ProgramOutput:Whatisthesumof3+4?7

Page 17: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

Linefivedeclaresthevariablewithadatatype“int”andvariablename“sum”whilelineseveninitializes“3+4”tothevariable“sum”.InJava,allvariablespossessadatatype,variablename,andvalue.

Page 18: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

OperatorsOperatorsaresymbolssuchasplus(+)andminus(-)thatperformmathematicaloperations(seeOperatorsinChapter3).Theoperatorsareexecutedonoperandswhichisanythingthatcanbechanged.Avariableisacommonoperandwhichchangesduringexecution.InJava,therearefourtypesofoperators:

1. Arithmetic–implementmathematicaloperationsonnumericalvalues2. Bitwise–workonoperandsutilizingbits3. Logical–returnsabooleanvalue(trueorfalse)basedononeormoreexpressions4. Relational–returnsabooleanvalue(trueorfalse)aftercomparingoperands

ThefollowingisanArithmeticOperatorexample:

publicclassSubtraction_Operator

{

publicstaticvoidmain(String[]args)

{

//SubtractionOperator

intx,y,answer;

x=100;

y=80;

answer=x-y;

System.out.println(“Whatis100-80?“+answer);

}

}

Page 19: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

Figure1.3–SubtractionArithmeticOperator

ProgramOutput:Whatis100-80?20

Linesevendeclaresthevariables“x,y,answer”withanintdatatype.However,linesnineand10assignthevalues(x=100andy=80)totwoofthevariables.The–Subtractionoperatorisimplementedatline12andsubtractstherightoperand“y”fromtheleftoperand“x”thenassignsthevalue“20”tovariable“answer”.

Page 20: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

ControlStructuresControlstructuresprovidewaystoregulatetheflowofaprogram(seeControlStructuresinChapter4).Theflowisdirectedbybranchesandloops.Branchesallowcertainstatementstobeskippedafterevaluatingaconditionorvariable.Loopspermitspecificstatementstoberepeatedaccordingtoabooleanexpression.Thefollowingisalistoftwobranchesandthreeloops:

Page 21: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

Branches1. IfBranch–executesastatementwhenaconditionistrue2. SwitchBranch–evaluatesavariablethenexecuteastatementaccordingtothe

variable’svalue

Page 22: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

Loops1. ForLoop–executesablockofcodeacertainnumberofiterations2. WhileLoop–repeatsastatementwhileabooleanexpressionistrue3. DoWhileLoop–executeastatementatleastoneiterationandcontinuewhilethe

booleanexpressionistrue

Thefollowingisanifbranchexample:

publicclassIf_Branch

{

publicstaticvoidmain(String[]args)

{

//IfBranch

booleanstudy;

study=true;

if(study==true)

{

System.out.println(“YoucanlearnJava/Seleniumwithin30days”);

}

else

{

System.out.println(“Maytakealittlelongerthan30daysbutremainpatient”);

}

}

}

Page 23: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

Figure1.4–IfBranchExample

ProgramOutput:YoucanlearnJava/Seleniumwithin30days

Lineeightassignsvariable“study”thevalueoftrue.Asaresult,thecondition“if(study==true)”evaluatestotrue.Therefore,theprogramexecutesline12andskiptheremaininglines(line14–17).Ontheotherhand,theprogramwouldhaveexecutedlines14–17andskippedlines11–13iftheconditionwasfalse.

Page 24: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

Object-OrientedProgramming(OOP)Javaisanobject-orientedprogramming(OOP)languagethatisstructuredaroundobjects.Anobjectisanythingthatcanbeseenorperceived.Allobjectshavetwocharacteristics:stateandbehavior.Stateidentifiestheobjectandbehaviorrepresenttheactionsoftheobject.Forexample,acustomercanbeidentifiedbytheirname(state)whiletalking(behavior)istheactionofthecustomer.

Bothcharacteristics“stateandbehavior”aredefinedbyaclass.Aclassisatemplateforobjectsandformsthefoundationforobject-orientedprogramming.Dataandstatementsthatoperateonthedataarespecifiedbyclasses.Inaddition,accesstothedatabywayofclassesarecarriedoutthroughmethods.Amethodmanipulatesdataandprovideinteractionwithclassesfromothercomponentsoftheprogram.Thefollowingisanexampleillustratingaclass,object,andmethod:

classCustomer

{

Stringname;

intage;

publicstaticvoidmain(String[]args)

{

CustomerfirstCustomer=newCustomer();

firstCustomer.name=“JoeDoe”;

System.out.println(“Thecustomer’snameis“+firstCustomer.name);

}

}

Figure1.5–Class,Object,andMethodExample

Page 25: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

ProgramOutput:Thecustomer’snameisJoeDoe

Lineonedisplaysthekeyword“class”andclassname“Customer”LinesixisamethodlabeledmainLineeightdeclaresfirstCustomerasthevariableforclasstype“Customer”.Keyword“new”allocatesmemoryandcreatesanewCustomerobject

Chapter1outlinedgeneralconceptsregardingvariables,datatypes,operators,controlstructures,andobject-orientedprogramming.Thedetailsofvariables,datatypes,operators,andcontrolstructuresarepresentedinthisbook.Also,thelinkstodownloadJavaDevelopmentKit(JDK)andEclipseIDEwereprovided.Thenextbook“Part2–Java4SeleniumWebDriver”thoroughlyexplainsobject-orientedprogramming,whichincludesclasses,objects,andmethods.Chapter2willdefinethefourtypesofvariableslocal,parameter,instance,andclassaswellasprimitivedatatypes:boolean,byte,char,double,float,int,long,andshort.

Page 26: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

Chapter2VariablesandDataTypes

Avariableisanamedcontainerormemorylocationthatholdsavalue.Thevalueofthecontainerormemorylocationcanchangeduringexecutionoftheprogram.Eachvariablehastheabilitytocontainanykindofinformation,suchastextornumbers.Asaresult,automationengineersareempoweredtocreateflexibleprograms.Variablesareutilizedtorepresentchangeabledata,ratherthanhard-codingdata(enteringunchangeabledatadirectlyintoaprogram).

Allvariablespossessaname,datatype,andvalue.Avariablenameisusedtouniquelyidentifythevariable.Datatypereferstothetypeofvariable,suchasint,double,orbooleanthatcanbestoredinavariable.Therefore,datatypedeterminesavariable’svalue.InJava,therearetwokindsofdatatypes:primitiveandreference.Primitivedatatypesupportseightbasicdatatypes(explainedinthischapter)andreferencedatatypeisbasedonaclass(explainedinPart2–Java4SeleniumWebDriver).

Chaptertwocoversthefollowingregardingvariablesanddatatypes:

VariableNames

VariableDeclaration

VariableInitialization

VariableType,Scope,andLifetime

PrimitiveDataTypes

Constants

Page 27: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

VariableNamesThenameofavariableissignificantwhenidentifyingthevariableinmemory.Hence,variablesarereferredtoasidentifiers.Inadditiontovariables,anidentifierrepresentsmethodsalongwithotheruser-defineditems.Allvariablenamescanrangeanywherefromonecharactertoanunlimitednumberofcharacters.Thefollowingisavariablenameexample:

publicclassVariableExample

{

publicstaticvoidmain(String[]args)

{

intcustOrder;

custOrder=123;

System.out.println(“Thecustomer’sordernumberis“+custOrder);

}

}

Figure2.1–VariableNameExample

ProgramOutput:Thecustomer’sordernumberis123

Page 28: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

VariableNamingRulesJavahasrulestonamingvariables.Oneoftherulesistoensureeachvariablehasauniquename.Uniquenamespreventerrorsfromoccurring,suchas“Duplicatelocalvariable”—meaningthesamevariablenamehasbeenenteredmorethanonetime.Thefollowingisalistofmorerulesfornamingavariable:

Cancontaincasesensitiveletters,numbers,dollarsign“$,”andunderscore“_”Canbeginwithaletter,dollarsign“$,”orunderscore“_”CannotbeginwithanumberCannotcontainaspaceorspecialcharacterexceptdollarsign“$,”andunderscore“_”Cannotcontainareservekeyword

Thefollowingisalistof50Javareservekeywords:

abstract continue for new switch

assert default goto package synchronized

boolean do if private this

break double implements protected throw

byte else import public throws

case enum instanceof return transient

catch extends int short try

char final interface static void

class finally long strictfp volatile

const float native super while

Figure2.2-ReserveKeywords

Page 29: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

VariableNamingConventionsConventionisageneralagreementorpracticewhenestablishingastandard.Suitablefornamingvariables,aconventionisimportantwhileworkingwithateamofautomationengineers.Allidentifiernames(e.g.,variable,method,etc.)arecriticalforreading,understanding,andmaintainingcode.Thefollowingisalistofsuggestedconventionsfornamingavariable:

Constructdescriptivenamesthatdescribethevariable’spurposeComposenamesutilizingmixedcaseletters,unlessthenameisoneword

Ifoneword,thenusealllowercaselettersIfmultiplewords,thenbeginthefirstwordwithalowercaseletterandeachconsecutivewordwithanuppercaseletter(e.g.,custFirstName)

Createanamethatbeginswithaletterandnotadollarsign“$”orunderscore“_”Chooseloopcontrolvariablesthatbeginwithasinglelowercaseletter(e.g.,i,x,y)

Page 30: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

VariableDeclarationDeclaringavariableisstatingclearlythatavariableexists.Allvariablesareassociatedwithadatatypeintheeventofdeclaringavariable.Datatypesguaranteethecorrectdataisassignedtoavariable.Inaddition,thesizeofavariableisdeterminedbyadatatype.Variablesmustbedeclaredbeforetheyareutilizedinanyprogram.Thefollowingisthesyntaxfordeclaringavariable:

SyntaxvariableTypevariableName;

SyntaxDetails

Argument Description

variableType Datatypeofvariablebeingdeclared

variableName Nameofvariablebeingdeclared

; Semi-coloncompletesthedeclarationstatement

Figure2.3–VariableDeclarationSyntaxDetails

Thefollowingisavariabledeclarationexample:

publicclassVariableExample

{

publicstaticvoidmain(String[]args)

{

intx;

inty;

x=5;

y=7;

System.out.println(“Thevaluesofxandyare“+x+”and“+y);

}

}

Page 31: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

Figure2.4–VariableDeclaration

ProgramOutput:Thevaluesofxandyare:5and7

Linesfiveandsixdeclarevariablesxandywithanintdatatype.Noticehoweachdeclarationendswithasemi-colon.Thesemi-coloncompletesthedeclarationstatement.

Note:Multiplevariablescanbedeclaredonthesamelineifthevariablehasthesamedatatype.Thefollowingisadeclarationexampleofmultiplevariablesseparatedbyacomma:

intx,y;

Page 32: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

VariableInitializationIngeneral,variablesaregivenaninitialvaluebeforethevariablesareused.TheAssignmentOperatorseparatestwosidesofanequation.Thereisaleftandrightsideofeveryequation.Theleftsidedisplaysavariablenamewhiletherightsidedisplaysavalue.Variablescanbeinitializedthefollowingways:

1. InitializebyValue2. InitializebyDynamics

Page 33: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

InitializebyValueInitializingavariablebyvaluesrequiresavaluetobesetforthevariable.Thefollowingaretwowaystoinitializeavariablebyvalue:

1. Atdeclaration2. Afterdeclaration

AtdeclarationAtdeclarationiswhenthedatatype,variablename,andvalueareplacedonthesameline.Inotherwords,thevariableisdeclaredandinitializedsimultaneously.Multiplevariablescanbeinitializedatdeclarationbyusingacommaseparatedlist.Thefollowingisanexampleof“atdeclaration”initializebyvalue:

publicclassVariableExample

{

publicstaticvoidmain(String[]args)

{

intnum1=100,num2=200,total;

total=num1+num2;

System.out.println(“Thetotalofnum1andnum2is“+total);

}

}

Figure2.5–VariableInitializationAtDeclaration

ProgramOutput:Thetotalofnum1andnum2is300

Page 34: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

Linefivedeclaresthreevariables“num1,num2,andtotal”withanintdatatype.Twoofthevariables“num1andnum2”areinitializedwithavaluethatrepresentsvariableinitializationatdeclaration.Therefore,thevariablesareinitializedwhentheyaredeclared.

AfterdeclarationAfterdeclarationiswhenthedatatype,variablename,andvalueareplacedontwoseparatelines.Thedatatypeandvariablenamearedeclaredonthesamelinewhilethevariablenameisassignedavalueonasubsequentline.Thefollowingisanexampleof“afterdeclaration”initializebyvalue:

publicclassVariableExample

{

publicstaticvoidmain(String[]args)

{

intnum1,num2,total;

num1=100;

num2=200;

total=num1+num2;

System.out.println(“Thetotalofnum1andnum2is“+total);

}

}

Figure2.6–VariableInitializationAfterDeclaration

ProgramOutput:Thetotalofnum1andnum2is300

Page 35: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

Linefivedeclaresthreevariables“num1,num2,andtotal”withanintdatatype.Twoofthevariables“num1andnum2”areinitializedwithavalueonlinessevenandeightthatrepresentsvariableinitializationafterdeclaration.Therefore,thevariablesaredeclaredonlinefiveandinitializedaftertheyaredeclaredonlinessevenandeight.

Page 36: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

InitializebyDynamicsInitializingavariablebydynamicsdoesnotassignaspecificvaluetoavariable.Instead,valuessubjecttochangeareassignedtothevariables.Occasionally,valuesthatchangearevaluesfromanApplicationUnderTest(AUT)orothervariables.Thefollowingisavariableinitializationbydynamicsexample:

publicclassVariableExample

{

publicstaticvoidmain(String[]args)

{

intnum1,num2;

num1=100;

num2=200;

inttotal=num1+num2;

System.out.println(“Thetotalofnum1andnum2is“+total);

}

}

Figure2.7–InitializebyDynamics

ProgramOutput:Thetotalofnum1andnum2is300

Line10declaresandinitializesvariable“total”withanintdatatype.Thevariableisnot

Page 37: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

initializedwithaspecificvalue.However,thevariableisinitializedwithinformation“num1andnum2”thatcanpossiblychangeduringexecution.Forexample,anautomationengineercanenterstatementstoincreasethevalueofbothvariables“num1andnum2”duringexecution.Ifvariablesnum1andnum2change,thenthevariable“total”willdynamicallychange.

Note:Line10requiresadatatypeintwheninitializingavariablebydynamics.

Page 38: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

VariableType,Scope,andLifetimeJavaallowsavariabletobedeclaredanywhereinaprogram.Forthatreason,avariablecanbedefinedwithinaclass,withinamethod,orwithinamethodasaparameter.Avariable’sscopeisrelatedtowherethevariableisdeclaredinsidetheprogram.Lifetimeishowlongthevariableexistsintheprogram.Thefollowingarefourtypesofvariablesthathavetheirownscopeandlifetime:

1. LocalVariables2. ParameterVariables3. InstanceVariables4. ClassVariables

Page 39: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

LocalVariablesLocalvariablesaredeclaredinsideamethod.Individualmethodscanhavethesamevariablenameasanothermethodwithinaprogram.Localvariablesareonlyvisibleinsideitsindividualmethod.Therefore,eachvariableisuniquetoaspecificmethod.Beforeusingalocalvariable,itmustbedeclaredandinitializedavaluewithoutneedingaspecialkeyword.Hence,therearenodefaultvaluesforlocalvariables.Localvariablesarecreatedwhenthemethodisconstructedanddestroyedwhenthemethodisterminated.Thefollowingisalocalvariableexample:

publicclassVariableExample

{

publicvoidAutomationEngineers()

{

intyearsEmployed;

yearsEmployed=5;

System.out.println(“JoeDoe‘Automation’hasbeenattheorganization“+yearsEmployed+”years”);

}

publicvoidDevelopers()

{

intyearsEmployed;

yearsEmployed=3;

System.out.println(“JaneDoe‘Dev’hasbeenattheorganization“+yearsEmployed+”years”);

}

publicstaticvoidmain(String[]args)

{

VariableExampleyears=newVariableExample();

years.AutomationEngineers();

years.Developers();

}

}

Page 40: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

Figure2.8–LocalVariable

ProgramOutput:JoeDoe‘Automation’hasbeenattheorganization5years

JaneDoe‘Dev’hasbeenattheorganization3years

Linesfiveandthirteendisplayavariable“yearsEmployed”thatislocaltomethods“AutomationEngineersandDevelopers.”Anerrorwillnotoccurbecauseeachvariableisuniquetoitsmethod.However,thesamevariablenamecannotbedeclaredmultipletimeswithinthesamemethod.Thescopeandlifetimeofalocalvariableislimitedtotheblock/curlybracesinwhichitisdeclared.

Page 41: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

ParameterVariablesParametervariablesaredeclaredandpassedintomethods.Afteraparametervariableisdeclared,itisimplementedlikealocalvariable.Therefore,alocalvariableandparametervariablecannothavethesamename.Keywordsarenotrequiredforaparametervariable.However,thedatatypeandvariablenamemustbesurroundedbyaparenthesisafterthemethodname.Thefollowingisaparametervariableexample:

publicclassVariableExample

{

publicvoidsetMtgAmount(doublemtgAmount)

{

System.out.println(“Themortgagepaymentamountis“+mtgAmount);

}

publicstaticvoidmain(String[]args)

{

VariableExamplepayment=newVariableExample();

payment.setMtgAmount(99000);

}

}

Figure2.9–ParameterVariables

ProgramOutput:Themortgagepaymentamountis99000.0

Linesthreeandeightpassparametervariables“doublemtgAmountandString[]args”intomethods“setMtgAmountandmain.”Thevalue“99000”ispassedfromthemethodcall“payment.setMtgAmount”line11intothemethod“setMtgAmount”linethreethatiscalled.Thescopeofaparametervariableisamethod’sheaderinsidetheparenthesiswhile

Page 42: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

thelifetimeisamethod’sbodywithinthecurlybrackets.

Page 43: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

InstanceVariablesInstancevariablesaredeclaredinsideaclass,outsideofamethod,andaccessedusingkeywordnew.Thevaluesofaninstancevariableareuniquetoeachobject.Thistypeofvariablecanbeusedbeforeorafteritisinitializedwithvisibilitytoallmethodsinaclass.Defaultvaluesforanumberiszero,forbooleanthedefaultisfalse,andanobjectreferencedefaultisnull.Instancevariablesarecreatedwhenanobjectisformedandterminatedwhentheobjectisdestroyed.Thefollowingisaninstancevariableexample:

publicclassVariableExample

{

intyearsExist=34;

publicstaticvoidmain(String[]args)

{

VariableExampleyears=newVariableExample();

System.out.println(“Thisorganizationhasexistedfor“+years.yearsExist+”years”);

}

}

Figure2.10–InstanceVariable

ProgramOutput:Thisorganizationhasexistedfor34years

Linethreedeclarestheinstancevariable“yearsExist”withintheclass“VariableExample,”butoutsideofthemethod“main”.Theinstancevariableisaccessedinlineeight“years.yearsExist”aftercreatingkeywordnewvialineseven.

Note:AninstancevariablecanbeaccessedviaObjectReference.Lineeightprintsthevariable’svaluebyusingtheObjectReference.InstanceVariable“years.yearsExist”.

Page 44: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

ClassVariablesClassVariables(knownasStaticVariables)aredeclaredinaclass,butnotinamethod.Thistypeofvariableisdeclaredusingkeywordstatic.Thekeywordstaticannouncestothecompilerthatonlyonecopyofaparticularvariableexists,butissharedbyallinstancesofanobject.Defaultvaluesforanumberiszero,thedefaultforbooleanisfalse,andanobjectreferencedefaultisnull.Usually,ClassVariablesaredeclaredasConstants.ClassVariablesarecreatedwhentheprogrambeginsanddestroyedwhentheprogramends.Thefollowingisaclassvariableexample:

publicclassVariableExample

{

staticintnumDays=30;

publicstaticvoidmain(String[]args)

{

VariableExampledays=newVariableExample();

System.out.println(“Javacanbemasteredin“+VariableExample.numDays+”days”);

System.out.println(“Seleniumcanbemasteredin“+days.numDays+”days”);

System.out.println(“DoyouthinkyoucanmasterJava/Seleniumin“+numDays+”days”);

}

}

Figure2.11–ClassVariable

ProgramOutput:Javacanbemasteredin30days

Seleniumcanbemasteredin30days

LinethreedeclarestheClassVariable“numDays”withintheclass“VariableExample,”butoutsideofthemethod“main.”Thescopeofaclassvariableisinsidetheblock/curlybracesofclassandoutsidetheblock/curlybracesofallmethods.Therefore,thelifetimeofthevariablecontinuesthroughoutexecutionoftheprogram.

Page 45: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

Note:AclassvariablecanbeaccessedviaClassName,ObjectReference,orClassVariableName.IfaccessedbywayofObjectReferencethenkeyword“new”mustbecreated.Lineseight,nine,andtenaccesstheclassvariablebyusingtheClassName.ClassVariable“VariableExample.numDays”,ObjectReference.ClassVariable“days.numDays”,andClassVariableName“numDays”.

Page 46: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

PrimitiveDataTypesTheprimitivedatatypesgiveanaccountforthetypeofdatathatisstoredinavariable.Eachdatatypehasapreciserangeandbehavior.Consequently,adatatypeofintcanstorenumericaldata,butatypemismatcherrorwilloccurifbooleanattemptstostorenumericaldata.Inaddition,certainoperationsarepermittedonvaluesdependingonthedatatype.Asanexample,amathcalculationcannotbeperformedonabooleandatatypebecauseabooleancannotcontainnumbers.Thefollowingisalistofalleightprimitivedatatypes:

Type WidthinBits(Bytes)

Description/Range

boolean TrueorFalsevalues

byte 8-bit(1-byte) -128to127

char 16-bit Standardcharactersetthatcanbealetter,controlcharacter,number,punctuation,orsymbolrepresentingalllanguagesintheworld

double 64-bit(8-byte) -1.7976931348623157E+308to1.7976931348623157E+308

float 32-bit(4-byte) -3.4028235E+38to3.4028235E+38

int 32-bit(4-byte) −2,147,483,648to2,147,483,647

long 64-bit(8-byte) -9,223,372,036,854,775,808to9,223,372,036,854,755,807

short 16-bit(2-byte) -32,768to32,767

Figure2.12–EightPrimitiveDataTypes

Thefollowingdividestheprimitivedatatypesinto4categories:

1. IntegerType2. FloatingPointType3. CharacterType4. BooleanType

Page 47: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

IntegerTypeTheintegertypesupportsnumericalvalueswithoutafractionalcomponent.Amajordifferencewithintheintegertypeistherangeofvalues.Thefollowingshoweachdatatypeforintegertype:

byteshortintlong

Datatypeintisusedthemostbecauseitisusedforcontrollingloopsandindexingarrays.Thefollowingisanintdatatypeexample:

publicclassVariableExample

{

publicstaticvoidmain(String[]args)

{

//Calculate2integervalues

inti,j;

inttotal;

i=10;

j=20;

total=i+j;

System.out.println(“Totalofi+jis“+total);

}

}

Page 48: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

Figure2.13–DataTypeint

ProgramOutput: Totalofi+jis30

Linessixandsevendeclareanintdatatypefornames“i,”“j,”and“total.”Linesnine,ten,andeleveninitializethevariables.

Page 49: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

FloatingPointTypeThefloatingpointtypesupportsnumericalvalueswithafractionalcomponent.Datatypesfloatanddoublemakeupthefloatingpointtypecategory.DuetoJava’sstandardMathclass,thedoubledatatypeisusedthemostwhenanumericalvalueincludesafraction.Thefollowingisadoubledatatypeexample:

publicclassVariableExample

{

publicstaticvoidmain(String[]args)

{

doubled;

doublecalc;

d=200;

calc=Math.sqrt(d);

System.out.println(“Squarerootof200is“+calc);

}

}

Figure2.14–DataTypedouble

ProgramOutput: Squarerootof200is14.142135623730951

Linesfiveandsixdeclareadoubledatatypefornames“d”and“calc.”Lineeightassigns

Page 50: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

200tovariable“d”,whilelinenineassignsasquarerootmethodtovariable“calc.”The“sqrt()”methodisamethodwithinthestandardMathclasswhichreturnsadoubledatatype.

Page 51: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

CharacterTypeThecharactertypesupportsaUnicodesystemthatdisplaysallcharactersforeveryhumanlanguage.Inordertorepresentallcharacters,thechardatatypeholdsa16-bittypethathasarangeof0to65,535.TherangehelpsUnicodeassigneveryletter,number,andsymbolanexclusivenumericalvalue.Thefollowingisachardatatypeexample:

publicclassVariableExample

{

publicstaticvoidmain(String[]args)

{

charcha1,cha2;

cha1=‘C’;

cha2=67;

System.out.println(“Valueassignedtocha1is“+cha1);

System.out.println(“67istheUnicodefor“+cha2);

}

}

Figure2.15–DataTypechar

ProgramOutput:Valueassignedtocha1isC

67istheUnicodeforC

Page 52: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

Linefivedeclaresachardatatypefornames“cha1”and“cha2.”Linessevenassignstheletter‘C’,utilizingsinglequoteswhilelineeightassignsavalueof67.Constantssuchaslinesevendeclaredwithachardatatypealwaysuseasinglequote(‘)foraletter.Value67istheAmericanStandardCodeforInformationInterchange(ASCII)fortheletter‘C’.

Note:Accordingtowebopedia,“ASCIIisacodeforrepresentingEnglishcharactersasnumbers,witheachletterassignedanumberfrom0to127”.

Page 53: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

BooleanTypeThebooleantypesupportsaprogramwhentheprograminvolveslogic.Thus,thebooleandatatypereturnsavalueafterevaluatingalogical/conditionalstatement.Conditionalstatementsrequireananswer(trueorfalse)regardingaspecificstatement.Aconditionalstatementconsistsofvariablesand/orexpressions.Thefollowingisabooleandatatypeexample:

publicclassVariableExample

{

publicstaticvoidmain(String[]args)

{

booleanresult;

result=false;

System.out.println(“Booleanvariable‘result’wasinitializedto“+result);

System.out.println(“Isthisatrueorfalsestatement‘100greaterthan99’?“+(100>99));

}

}

Figure2.16–DataTypeboolean

ProgramOutput:Booleanvariable‘result’wasinitializedtofalse

Isthisatrueorfalsestatement‘100greaterthan99’?true

Linefivedeclaresabooleandatatypeforvariable“result.”Lineseveninitializesfalsetothevariable.Linenineprintsthedefaultvalueoffalse,butlinetenreturnatruevalueafterevaluatingcondition“100>99.”Trueisreturnedbecause100isgreaterthan99.

Page 54: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

ConstantsConstants(alsoknownasLiterals)areunchangeablevaluesassignedtoavariablenameofaparticulardatatype.ThewayeachConstantisdefineddependsuponitsdatatype.DefiningaConstantisadefensemechanismtoprotectinformationsothatthevalueremainsfixed.Forinstance,thetotalhoursinadayis24,therefore,aConstantisdeclaredsothatthevalueof24doesnotchange.Thefollowingarefourtypesofconstants:

1. StringConstants2. CharacterConstants3. BooleanConstants4. NumericConstants

Page 55: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

ConstantNamingConventionsAstandardnamingconventionforConstantsfacilitatetheprocessoflocatingtheConstants.ThefollowingareConstantnamingconventions:

ConstructdescriptivenamesthatdescribetheConstant’spurposeCreateanamethatincludesallcapitalletters(e.g.,CUSTOMER)Composeanameutilizingallcapitalletterswithanunderscoreifthenameconsistsofmultiplewords(e.g.,ORDER_NUM)

Page 56: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

DeclareandInitializeConstantsConstantsaredeclaredandinitializedsimilartovariables.ThedistinguishingcharacteristicofdeclaringaConstantisthekeywordmodifierfinal.AdeclarationstatementutilizingfinalinformsJavathattheinitializationvaluewillnotbechanged.Thefollowingexampleshowsaconstantdeclarationandinitializationstatement:

publicclassVariableExample

{

publicstaticvoidmain(String[]args)

{

finalintDAYS_IN_WEEK=7;

finalintDAILY_MAX_HOURS=24;

inttotalHours;

totalHours=DAYS_IN_WEEK*DAILY_MAX_HOURS;

System.out.println(“Thetotalofhoursinaweekis“+totalHours);

}

}

Figure2.17–DeclareandInitializeConstants

ProgramOutput:Thetotalofhoursinaweekis168

LinessixandsevendeclareandinitializeConstantsusingkeywordmodifierfinal.ConstantnameDAYS_IN_WEEKassigned“7”,whileDAILY_MAX_HOURSassigned“24”.TheassignedConstantvalueswillnotchangeintheprogram.Anerrorstates“ThefinallocalvariableNAME_OF_CONSTANTcannotbeassigned”ifthereisanattempttochangeaConstant.

Page 57: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step
Page 58: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

DefaultConstantDataTypesDatatypesintanddoublearedefaultConstanttypesintheirrespectivecategory.However,thedefaulttypecanbemodifiedbyappendingaletterofthetargettype.Anintdatatypechangestoalongdatatypebyattachingtheletter“l”or“L.”Forexample,avalueof34indicatesanintdatatypebydefaultbut34lor34Lindicatesalongdatatype.Thesameistruewithadoubledatatype.Avalueof12.34specifiesadoubledatatypebydefault,but12.34for12.34Fspecifiesafloatdatatype.

Note:Thissectionpointsoutthedefaultconstantdatatypes.However,aconstantcanbedeclaredasanyprimitivedatatype.

Page 59: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

EscapeCharactersEscapecharacters(knownasbackslashcharacterconstants)representagroupofcharactersandnon-graphicalcharacters.AccordingtoBeginningJava®Programming(2015),“escapecharactersareusedfordisplayingtextinspecificways,eitherforinsertingtabsorenterswheredesired,orbydisplayingacharacterthat’snormallyreservedforcodesyntax”(page29).

Characterssuchassinglequotes(‘’)haveadistinctmeaningandcannotbeuseddirectly.Therefore,abackslashcharacter(\)mustprecedethecharactersothatthecompilerinterpretsagivenstatementcorrectly.Thefollowingisalistofescapecharacters:

EscapeCharacter

Description Unicode

\b Insertsabackspaceinthetext \u0008

\f Insertsaformfeedinthetext \u000C

\n Insertsanewlinefeedinthetext \u000A

\r Insertsacarriagereturninthetext \u000D

\t Insertsahorizontaltabinthetext \u0009

\’ Insertsasinglequote(apostrophe)inthetext

\u0027

\” Insertsadoublequoteinthetext \u0022

\ Insertsabackslashinthetext \u005C

Figure2.18–EscapeCharacters

Page 60: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

StringConstantsStringConstantsareenclosedindoublequotes(“”)representingasequenceofcharacters.Regularcharacters(e.g.,numbers,letters,etc.),aswellasescapecharacters,canbeprocessedinaStringConstant.ThefollowingisaStingConstantexample:

publicclassMiscExamples

{

publicstaticvoidmain(String[]args)

{

System.out.print(“Thefollowingdisplaysnumbers1-10ontwolines:\n”);

System.out.println(“1\t2\t3\t4\t5”);

System.out.println(“6\t7\t8\t9\t10”);

}

}

Figure2.19–StringConstantExample

ProgramOutput:Thefollowingdisplaysnumbers1-10ontwolines:

12345

678910

Linesfive,six,andsevendisplayStringConstantswithinthedoublequotes.Noticehowlinefivehasaprint()statementratherprintln()statementlikelinessixandseven.Theescapecharacter(\n)insertsanewlinefeedsoprintln()isnotneeded.Inaddition,escapecharacter(\t)isusedinlinessixandseventoinsertatabbetweennumbers1through10.

Page 61: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

CharacterConstantsCharacterConstantsarealwaysinitializedinsinglequotes(‘’)andholdonlyonecharacter.Figure2.15ischarexampleinitializingtheletter‘C’toavariablenamedcha1inlineseven.ThesinglequotesapplytolettersandnotnumbersassignedtoCharacterConstants.

Page 62: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

BooleanConstantsBooleanConstantsinitializesTrueandFalsevalues.Figure2.16isabooleanexampleinitializingaTruevaluetoavariablenamed“result”inlineseven.

Page 63: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

NumericConstantsNumericConstantscontainintegertypeorfloatingpointtypevalues.Thesevaluesallowunderscores(_)tobeusedlikeapunctuationmark.Usually,acomma,hyphen(-),etc.dividesanumericalvaluecontainingseveraldigits.Forinstance,onehundredmillioniswrittenas100,000,000.ThecommasimprovereadabilityofhundredmillionsimilartoanunderscoreimprovingaNumericConstant.ThefollowingisaNumericConstantexampledisplayingmultipleunderscoresforasimilarvalue:

publicclassMiscExamples

{

publicstaticvoidmain(String[]args)

{

finallongFIRST_AMOUNT,SECOND_AMOUNT,TOTAL_AMOUNT;

FIRST_AMOUNT=111_111_111;

SECOND_AMOUNT=222222222;

TOTAL_AMOUNT=FIRST_AMOUNT+SECOND_AMOUNT;

System.out.println(“Thefirstamountis“+FIRST_AMOUNT);

System.out.println(“Thesecondamountis“+SECOND_AMOUNT);

System.out.println(“Thetotalofbothamountsis“+TOTAL_AMOUNT);

}

}

Figure2.20–NumericConstantExample

ProgramOutput:

Page 64: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

Thefirstamountis111111111

Thesecondamountis222222222

Thetotalofbothamountsis333333333

Linessevenandeightdisplayalongdatatypecontainingninedigitsintheirvalue.However,linesevendisplaystwounderscorestomakethevalue111_111_111morereadablethanlineeightdisplayingvalue222222222.Tothesameextent,anunderscorecanbeusedforcreditcardnumbers,socialsecuritynumbers,etc.andcanonlybeplacedbetweendigits.

Chapter2describedhowtodeclareandinitializevariables.Inaddition,thefourtypesofvariables(local,parameter,instance,andclass)andprimitivedatatypeswerediscussed.Chapter3willexplorethefourtypesofJavaoperators:Arithmetic,Bitwise,Logical,andRelational.

Page 65: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

Chapter3Operators

Operatorsaresymbolsthatperformmathematicalorlogicalmanipulationsononeormoreoperands.Anoperandisanythingthatcanbechangedormanipulated.Themostcommontypeofoperandisavariable.InJava,therearefourtypesofoperators:Arithmetic,Bitwise,Logical,andRelational.Arithmetic,Logical,andRelationaloperatorsarethemostusedoperators.ThefollowingexampledemonstratesaMultiplication(*)Operatorandoperands(threeandfour):

publicclassOperators

{

publicstaticvoidmain(String[]args)

{

intanswer;

answer=3*4;

System.out.println(“Whatis3times4?“+answer);

}

}

Figure3.1–OperatorandOperands

ProgramOutput:Whatis3times4?12

Thischapterprovidesthefollowinginformationregardingoperators:

ArithmeticOperators

Page 66: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

BitwiseOperators

LogicalOperators

RelationalOperators

AssignmentOperator

TernaryOperator

OperatorPrecedence

DataTypeCasting

Expressions

Page 67: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

ArithmeticOperatorsArithmeticoperatorsimplementmathematicaloperationsonnumericalvalues.Therefore,thearithmeticoperatorscanbeappliedtoanydatatypeinvolvingnumbers.Thefollowingisalistofarithmeticoperators:

1. +(Addition)operator2. -(Subtraction)operator3. *(Multiplication)operator4. /(Division)operator5. %(Modulus)operator6. ++(Increment)operator7. —(Decrement)operator

Operator Description

+ Addsavalueonbothsidesofthe(+)operatorUsedforjoiningstringswhichisknownasstringconcatenation

- Subtractsrightoperandfromleftoperand

* Multipliesvaluesonbothsidesofthe(*)operand

/ Dividesleftoperandbyrightoperand

% Dividesleftoperandbyrightoperandthenreturnstheremainder

++ Increasestheoperand’svaluebyone

— Decreasestheoperand’svaluebyone

Figure3.2–ArithmeticOperators

Note:TheDivisionOperator(/)truncatestheremainderwhiletheModulusOperator(%)returnstheremainder.Forinstance,10/3onlyreturnsthreeandtruncatestheremainder,whichisone.Ontheotherhand,10%3onlyreturnstheremainderofone.

Page 68: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

IncrementArithmeticOperatorTheIncrementOperatoraddsonetoanoperand.Thisoperatorhasaprefixandpostfixform.Thebelowsyntaxesshowbothincrementoperatorformswhichisthesameasthefollowingexpression:

i=i+1;

PrefixFormSyntax++i;

PostfixFormSyntaxi++;

Page 69: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

DecrementArithmeticOperatorTheDecrementOperatorsubtractsonefromanoperand.Thisoperatorhasaprefixandpostfixform.Thebelowsyntaxesshowbothdecrementoperatorformswhichisthesameasthefollowingexpression:

i=i-1;

PrefixFormSyntax—i;

PostfixFormSyntaxi—;

Thefollowingareexamplesofeacharithmeticoperator:

publicclassOperators

{

publicstaticvoidmain(String[]args)

{

intresult,x=10,y=3;

result=x+y;//Addition

System.out.println(“Whatis10plus3?“+result);

result=x-y;//Subtraction

System.out.println(“Whatis10minus3?“+result);

result=x*y;//Multiplication

System.out.println(“Whatis10times3?“+result);

result=x/y;//Division

System.out.println(“Whatis10divided3?“+result);

result=x%y;//Modulus

System.out.println(“Whatistheremainderof10divided3?“+result);

Page 70: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

result=++x;//PrefixIncrement

System.out.println(“Whatistheprefixincrementvalueof10?“+result);

result=x++;//PostfixIncrement

System.out.println(“Whatisthepostfixincrementvalueof10?“+result);

result=—y;//PrefixDecrement

System.out.println(“Whatistheprefixdecrementvalueof3?“+result);

result=y—;//PostfixDecrement

System.out.println(“Whatisthepostfixdecrementvalueof3?“+result);

}

}

Figure3.3–ArithmeticOperatorExamples

Page 71: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

ProgramOutput:Whatis10plus3?13

Whatis10minus3?7

Whatis10times3?30

Whatis10divided3?3

Whatistheremainderof10divided3?1

Whatistheprefixincrementvalueof10?11

Whatisthepostfixincrementvalueof10?11

Whatistheprefixdecrementvalueof3?2

Whatisthepostfixdecrementvalueof3?2

Inthisexample,linefivedeclaresandinitializesthevariables.Variable“x”isassigned10while“y”isassignedthree.An+(Addition)operatoraddsbothvariablesinlineseven.Variable“result”isassignedthesumofvariables“x”and“y”whichresultsin13.AsimilarprocessisperformedforallexamplesinFigure3.3usingadifferentArithmeticOperatoraccordingtoFigure3.2.

Page 72: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

BitwiseOperatorsTheBitwiseOperatorworkonoperandsutilizingbits.Thereforethisoperatorhaveafoundationthatfunctionsonabit-by-bitbasis.Valuesaremadeavailableafterthebitsareset,shifted,andtested.Primarily,theBitwiseOperatorsareusedondatatypesbyte,char,int,long,andshort.Thefollowingisalistofbitwiseoperatorsandexamples:

1. &(BitwiseAND)operator2. |(BitwiseOR)operator3. ^(BitwiseexclusiveOR(XOR))operator4. >>(Signedshiftright)operator5. >>>(Unsignedshiftright)operator6. <<(Signedshiftleft)operator7. ~(One’sCompliment)operator

Operator Description Example

& Places1bitintheresultifabitexistsinbothoperands.Canbeusedonabooleandatatype

x&y;

| Places1bitintheresultifabitexistsinoneofbothoperands.Canbeusedonabooleandatatype

x|y;

^ Places1bitintheresultifabitexistsinoneoftheoperands(notboth)

x^y:

>> Shiftstheleftoperand’svaluetotherightbythenumberofbitsspecifiedbytherightoperand

x>>2

>>> Shiftstheleftoperand’svaluetotherightbythenumberofbitsspecifiedbytherightoperandwhileshiftedvaluearefilledwithzeros(0)

x>>>2

<< Shiftstheleftoperand’svaluetotheleftbythenumberofbitsspecifiedbytherightoperand

x<<2

~ Changeseverybittotheoppositebit.Forexample,every1bitchangesto0andevery0bitchangesto1

~2

Figure3.4–BitwiseOperators

Page 73: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

LogicalOperatorsLogicalOperators(knownasConditionalOperators)returnabooleanvaluebasedononeormoreexpressions.Therefore,theLogicalOperator’sdatatypemustbeboolean.Thefollowingisalistoflogicaloperators:

&&(LogicalAND)operator||(LogicalOR)operator^(LogicalexclusiveOR(XOR))operator!(LogicalNOT)operator

Operator Description

&& ReturnstrueifbothoperandsaretrueReturnsfalseifoneoperandorbothoperandsarefalse

|| ReturnstrueifoneoperandorbothoperandsaretrueReturnsfalseifbothoperandsarefalse

^ ReturnstrueifonlyoneoperandistrueReturnsfalseifbothoperandsarefalseandifbothoperandsaretrue

! ReturnstheoppositevalueoftheoperandReturnstrueiftheoperandisfalseandreturnfalseiftheoperandistrue

Figure3.5–LogicalOperators

Note:TheBitwiseOperatorsandLogicalOperatorsperformsomeofthesamefunctions.Thefollowingareexamplesofeachlogicaloperatorandtwobitwiseoperators:

publicclassOperators

{

publicstaticvoidmain(String[]args)

{

booleanx=100>99,y=99>100;

//LogicalAND‘&&’operator

System.out.println(“Whatistheresultof100>99&&99>100?“+(x&&y));

//BitwiseAND‘&’operator

Page 74: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

System.out.println(“Whatistheresultof100>99&99>100?“+(x&y));

//LogicalOR‘||’operator

System.out.println(“Whatistheresultof100>99||99>100?“+(x||y));

//BitwiseOR‘|’operator

System.out.println(“Whatistheresultof100>99|99>100?“+(x|y));

//LogicalXOR‘^’operator

System.out.println(“Whatistheresultof100>99^99>100?“+(x^y));

//LogicalNOT‘!’operator

System.out.println(“WhatistheresultofNot100>99?“+(!x));

//LogicalNOT‘!’operator(parenthesisisoptionalsurroundingthisoperatorandoperand)

System.out.println(“WhatistheresultofNot99>100?“+!y);

}

}

Page 75: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

Figure3.6–LogicalandBitwiseOperatorExamples

ProgramOutput:Whatistheresultof100>99&&99>100?false

Whatistheresultof100>99&99>100?false

Whatistheresultof100>99||99>100?true

Whatistheresultof100>99|99>100?true

Whatistheresultof100>99^99>100?true

WhatistheresultofNot100>99?false

WhatistheresultofNot99>100?True

Inthisexample,linefivedeclaresandinitializesthevariables.Bothvariables“xandy”areassignedbooleanexpressions.Variable“x”isassignedatrueexpression(100>99)while“y”isassignedafalseexpression(99>100).A&&(LogicalAND)operatorinlineeightand&(BitwiseAND)operatorinline11comparestheoperands“xandy”thenreturnsa“false”value.Falseisreturnedbecauseoneoperand“x”istruewhiletheotheroperand“y”isfalse.AsimilarprocessisperformedforallexamplesinFigure3.6usingdifferentBitwiseandLogicalOperatorsaccordingtoFigure3.4andFigure3.5.

Page 76: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

Short-CircuitBehaviorOperatorsShort-circuitbehavioroperatorsare||(LogicalOR)and&&(LogicalAND)operators.NoticefromFigure3.6,||(LogicalOR)and&&(LogicalAND)operatorsreturnthesameresultas|(BitwiseOR)and&(BitwiseAND)operators.However,thedistinguishingcharacteristicreliesonevaluatingtheoperands.

Ifthefirstoperandreturnsfalsethenthe&&(LogicalAND)Operatorwillnotevaluatethesecondoperator.Yet,the&(BitwiseAND)Operatoralwaysevaluatebothoperands.Likewise,the||(LogicalOR)Operatorwillnotevaluatethesecondoperandifthefirstoperandreturnstrue.Contrarytothe||(LogicalOR)Operator,the|(BitwiseOR)Operatorwillalwaysevaluatebothoperands.

Note:Theshort-circuitbehavioroperatorsdonotevaluatethesecondoperatorbecauseitknowstheresultregardlessofthesecondoperand.

Page 77: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

RelationalOperatorsRelationalOperatorsreturnabooleanvalueaftercomparingoperands.Normally,alloftheRelationalOperatorsareappliedtooperandsthatarenumbers.IftherelationshipbetweentwooperandsisYes,thenTrueisreturned.Forexample,if34isequalto34,thenTrueisreturned.ThefollowingisalistofRelationalOperators:

1. ==(EqualTo)operator2. !=(NotEqualTo)operator3. >(GreaterThan)operator4. >=(GreaterThanorEqualTo)operator5. <(LessThan)operator6. <=(LessThanorEqualTo)operator

Operator Description

== Verifiesifbothoperandsareequal.

!= Verifiesifbothoperandsarenotequal.

> Verifiesiftheleftoperandisgreaterthantherightoperand

>= Verifiesiftheleftoperandisgreaterthanorequaltotherightoperand

< Verifiesiftheleftoperandislessthantherightoperand

<= Verifiesiftheleftoperandislessthanorequaltotherightoperand

Figure3.7–RelationalOperators

Thefollowingareexamplesofeachrelationaloperator:

publicclassOperators

{

publicstaticvoidmain(String[]args)

{

intx=25,y=50;

//==EqualTooperator

System.out.println(“Is25equalto50?“+(x==y));

Page 78: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

//!=NotEqualTooperator

System.out.println(“Is25notequalto50?“+(x!=y));

//>GreaterThanoperator

System.out.println(“Is25greaterthan50?“+(x>y));

//>=GreaterThanorEqualTooperator

System.out.println(“Is25greaterthanorequalto50?“+(x>=y));

//<LessThanoperator

System.out.println(“Is25lessthan50?“+(x<y));

//<=LessThanorEqualTooperator

System.out.println(“Is25lessthanorequalto50?“+(x<=y));

}

}

Page 79: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

Figure3.8–RelationalOperatorExamples

ProgramOutput:Is25equalto50?false

Is25notequalto50?true

Is25greaterthan50?false

Is25greaterthanorequalto50?false

Is25lessthan50?true

Is25lessthanorequalto50?True

Inthisexample,linefivedeclaresandinitializesthevariables.Variable“x”isassigned25while“y”isassigned50.An==(EqualTo)operatordeterminesifbothvariables(x==y)equalseachotheronlineeight.Thevalues25and50arenotequalsofalseisreturned.AsimilarprocessisperformedforallexamplesinFigure3.8usingadifferentRelationalOperatoraccordingtoFigure3.7.

Page 80: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

AssignmentOperatorAnAssignmentOperator(=)ispositionedbetweenavariableandvalue.Thepurposeistoassignvaluestovariables.Therefore,thevalueontherightsideistransferredintothevariablenamewhichisontheleftside.Thefollowingisanassignmentoperatorsyntax:

SyntaxvariableName=expression;

SyntaxDetails

Argument Description

variableName Nameofvariablethatwasdeclared

Expression Valuethatisassignedtothevariablename

; Semi-coloncompletestheinitializationstatement

Figure3.9–AssignmentOperatorSyntaxDetails

Note:TheAssignmentOperatorcangenerateachainofassignments.Anassignmentchainisagoodwaytoinitializemultiplevariablesthesamevalue.Inaddition,avalueisoverwrittenifthevariablehasanexistingvalue.ThefollowingisanAssignmentOperatorexample:

publicclassOperators

{

publicstaticvoidmain(String[]args)

{

inti,j,k;

i=j=k=34;

System.out.println(“Thevalueofiis:“+i);

System.out.println(“Thevalueofjis:“+j);

System.out.println(“Thevalueofkis:“+k);

j=38;

System.out.println(“Thevalueofjhasbeenoverwrittento:“+j);

}

Page 81: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

}

Figure3.10–AssignmentOperatorExample

ProgramOutput:Thevalueofiis:34

Thevalueofjis:34

Thevalueofkis:34

Thevalueofjhasbeenoverwrittento:38

Linefivedeclareseachvariable“i,j,k”withanintdatatype.Linesevenutilizesachainassignmenttheninitializeeachvariablethesamevalue34withonestatement.Line12overwritevariable“j”byassigningavalueof38.

Page 82: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

CompoundAssignmentsCompoundAssignments(knownasShorthandAssignments)joinArithmeticandBitwiseOperatorswiththeAssignmentOperator.Thefollowingoperatorsareexcludedfromthejoiningfeature:increment,decrement,andone’scompliment.Thisprocessshortenstheassignmentstatement.Forexample,thefollowingtwostatementsproducethesameoutput:

y=y+3;

y=+3;

Bothstatementsassigntovariable“y”thevalueof“y”plusthree.Thefollowingisalistofcompoundassignments:

1. +=(AddandAssignment)operator2. -=(SubtractandAssignment)operator3. *=(MultiplyandAssignment)operator4. /=(DivideandAssignment)operator5. %=(ModulusandAssignment)operator6. &=(BitwiseAndandAssignment)operator7. |=(BitwiseORandAssignment)operator8. ^=(BitwiseexclusiveOR(XOR)andAssignment)operator9. <<=(LeftshiftandAssignment)operator

10.>>=(RightshiftandAssignment)operator11.>>>=(UnsignedrightshiftandAssignment)operator

CompoundAssignment

Description

+= Assignstheadditionoutcome

-= Assignsthesubtractionoutcome

*= Assignsthemultiplicationoutcome

/= Assignsthedivisionoutcome

%= Assignsthedivisionremainderoutcome

&= AssignsthebitwiseANDoutcome

|= AssignsthebitwiseORoutcome

Page 83: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

^= AssignsthebitwiseexclusiveOR(XOR)outcome

<<= Assignsthesignedleftbitshiftoutcome

>>= Assignsthesignedrightbitshiftoutcome

>>>= Assignstheunsignedrightbitshiftoutcome

Figure3.11–CompoundAssignments

Page 84: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

TernaryOperatorAccordingtodictionary.com,ternarymeans,“consistingoforinvolvingthree.”Therefore,theTernaryOperator(?)requiresthreeoperands.Thisoperatorisusedtoevaluatebooleanexpressionsanddeterminewhichvalueisassignedtothevariable.Thefollowingistheternaryoperatorsyntax:

SyntaxvariableTypevariableName=expression1?expression2:expression3;

SyntaxDetails

Argument Description

variableType Datatypeofvariable

variableName Nameofvariablethatwillreceiveavalue

expression1 Booleanexpression

expression2 Valueifthebooleanexpressionistrue

: Colonseparatesthevaluesofexpression2andexpression3

expression3 Valueifthebooleanexpressionisfalse

; Semi-coloncompletestheternaryoperatorstatement

Figure3.12–TernaryOperatorSyntaxDetails

Thefollowingisaternaryoperatorexample:

publicclassOperators

{

publicstaticvoidmain(String[]args)

{

intx,y;

x=5;

System.out.println(“Whatisthevalueofx?“+x);

Page 85: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

y=(x==5)?7:1;

System.out.println(“xequals5sothebooleanexpressionistrue:Valueis“+y);

y=(x==3)?7:1;

System.out.println(“xdoesnotequal3sothebooleanexpressionisfalse:Valueis“+y);

}

}

Figure3.13–TernaryOperatorExample

ProgramOutput:Whatisthevalueofx?5

xequals5sothebooleanexpressionistrue:Valueis7

xdoesnotequal3sothebooleanexpressionisfalse:Valueis1

Line10displaysexpression1as(x==5)whileline13displaysexpression1as(x==3).Bothlinesdisplayexpression2as7andexpression3as1.IfthebooleanexpressionsareTruethenvariable“y”isassigned7,otherwise“y”isassigned1.

Page 86: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

OperatorPrecedenceTheoperatorprecedenceisrankingJava’soperatorsfromhightolow.Rankingsbecomeimportantwhenagivenexpressionhasmultipleoperators.Anexpressionisevaluatedfromlefttorightandtheoperatorwithahigherprecedencereceivesthefirstevaluation.Tochangetheprecedenceorder,aparenthesisshouldbeimplementedtopointoutwhichexpressionisevaluatedfirst.Thefollowingexampleshowstwoexpressionswhichexcludeandincludeaparenthesis:

publicclassOperators

{

publicstaticvoidmain(String[]args)

{

inttotal;

total=2+3*4;

System.out.println(“Whatisthetotalwithoutaparenthesis?“+total);

total=(2+3)*4;

System.out.println(“Whatisthetotalwithaparenthesis?“+total);

}

}

Figure3.14–OperatorPrecedenceExample

ProgramOutput:Whatisthetotalwithoutaparenthesis?14

Whatisthetotalwithaparenthesis?20

Typically,aMultiplication(*)OperatorisevaluatedbeforeanAddition(+)Operator.The

Page 87: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

variable“total”isassignedthesamevaluesinlinesevenandline10.However,thestatementinline7donotcontainparenthesiswhileline10containparenthesis.Inline7,theMultiplication(*)Operatorisevaluatedfirstforvalues3*4thenvalue2isaddedviaAddition(+)Operator.Therefore,thevalue14(3*4=12and12+2=14)isassignedtovariable“total”inline7.Inline10,theparenthesisrankshigherthantheMultiplication(*)Operator.Asaresult,values2+3isevaluatedfirstwithintheparenthesisthentheMultiplication(*)Operatorisevaluated.Hence,thevalue20(2+3=5and5*4=20)isassignedtovariable“total”inline10.AccordingtoTheJavaTMTutorials,thefollowingisanoperatorprecedencelist:

Operator Precedence

Postfix expr++expr—

Unary ++expr—expr+expr-expr~!

multiplicative */%

additive +-

shift <<>>>>>

relational <><=>=instanceof

equality ==!=

bitwiseAND &

bitwiseexclusiveOR ^

bitwiseinclusiveOR |

logicalAND &&

logicalOR ||

ternary ?:

assignment =+=-=*=/=%=&=^=|=<<=>>=>>>=

Figure3.15–OperatorPrecedence

Page 88: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

DataTypeCastingDatatypecastingiswhenthevalueofadatatypeisconvertedintoadifferentdatatype.Forinstance,thevalueofonenumericdatatype“float”canbeconvertedtoanothernumericdatatype“double.”However,thevalueofabooleandatatypecanneverbeconvertedtoanumerictype.Therearetwotypesofcasts/conversions:

1. ImplicitCasting2. ExplicitCasting

Note:Theprimitivedatatypehierarchyfromhightolowisdouble,float,long,int,short,thenbyte.

Page 89: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

ImplicitCastingImplicitcastingiswhenaconversiontakesplacewithoutaninstructiontothecompilertoconvertonedatatypeintoanotherdatatype.Thistypeofcastingonlyhappensforawideningconversion.Wideningconversionsoccurautomaticallywhenthevalueofaspecificdatatypeisconvertedtoahigherdatatype.Therefore,basedontheprimitivedatatypehierarchy,anintcanbeconvertedtoafloat,butanerrorariseswhentryingtoconvertafloattoanint.Thefollowingisanimplicitcastingexample:

publicclassOperators

{

publicstaticvoidmain(String[]args)

{

inti;

floatf;

i=78;

System.out.println(“Thevalueofint‘i’is:“+i);

f=i;

System.out.println(“Thevalueoffloat‘f’is:“+f);

}

}

Figure3.16-AssignmentTypeConversionExample

ProgramOutput:Thevalueofint‘i’is:78

Thevalueoffloat‘f’is:78.0

Page 90: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

Linefivedeclaresvariable“i”withanintdatatypewhilelinesixdeclaresvariable“f”asafloatdatatype.Initially,lineeightassignsavalueof78tovariable“i”.However,aconversionhappensonline11whichconvertsthedatatypefrominttofloat.Thevalue“78.0”remainsthesamebutdisplaysdifferentlyasafloatdatatype.Noticethevaluedidnotlosedatawhenconvertingfrom78to78.0.Thefollowingtwoprinciplesarenecessaryforanimplicitcasting:

1. Bothdatatypesmustbecompatible2. Destinationdatatype(leftside)musthaveahigherrangethanthesourcedatatype

(rightside)

Thefollowingisalistofwideningconversionsaccordingtotheprimitivedatatypehierarchy:

byteconvertstoshort,int,long,float,ordoubleshortconvertsint,long,float,ordoublecharconvertstoint,long,float,ordoubleintconvertstolong,float,ordoublelongconvertsfloatordoublefloatconvertstodouble

Page 91: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

ExplicitCastingExplicitcastingiswhenaconversiontakesplacewithaninstructiontothecompilertoconvertonedatatypeintoanotherdatatype.Thistypeofcastingcanhappenforawideningandnarrowingconversion.Narrowingconversionoccurswhenthevalueofaspecificdatatypeisconvertedtoalowerdatatype.Consequently,anerrorwillnotbegeneratedwhenconvertingafloattoanint.Thefollowingisanexplicitcastingsyntax:

Syntax(targetDataType)expression;

SyntaxDetails

Argument Description

targetDataType Desireddatatypetoconverttheexpression

expression Valuethatwillbeconverted

; Semi-coloncompletestheexplicitcastingstatement

Figure3.17–ExplicitCastingSyntaxDetails

Thefollowingisanexplicitcastingexample:

publicclassOperators

{

publicstaticvoidmain(String[]args)

{

inti=8;

doubled=(double)i;

System.out.println(“Whatisthevalueofint‘i’?“+i);

System.out.println(“Whatisthevalueofdouble‘d’?“+d);

floatf=12.34f;

shorts=(short)f;

System.out.println(“Whatisthevalueoffloat‘f’?“+f);

System.out.println(“Whatisthevalueofshort‘s’?“+s);

Page 92: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

}

}

Figure3.18–ExplicitCastingExample

ProgramOutput:Whatisthevalueofint‘i’?8

Whatisthevalueofdouble‘d’?8.0

Whatisthevalueoffloat‘f’?12.34

Whatisthevalueofshort‘s’?12

Linefiveassigns“8”todatatypeint,whichisnamed“i.”Anexplicitwideningconversionensuesatlinesixwhenvariable“i”—anintdatatype—convertstoadoubledatatype.Line11assigns12.34(adefaultdatatypeofdouble),butconvertsittoafloatdatatype12.34f.Variable“f”holdsa12.34value,thenconvertstoashortdatatypeinline12.Noticethatthevaluelosesdataonline15,whenthenarrowingconversiontakesplaceandconvertsafloatvalue“12.34”toashortvalueof“12.”Thefollowingisalistofnarrowingconversionsaccordingtotheprimitivedatatypehierarchy:

byteconvertstocharshortconvertstobyteorcharcharconvertsbyteorshortintconvertstobyte,short,orcharlongconvertstobyte,short,char,orintfloatconvertstobyte,short,char,int,orlongdoubleconvertsbyte,short,char,int,long,orfloat

Page 93: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

ExpressionsOperators,variables,constants,andmethods(callsandreturns)arecomponentsofanexpression.Acomponentjoinedwithanoperatorformsanexpression.Itispossibletocreateacompoundexpressionbycombiningmultipleexpressions.However,thedatatypesmustbecompatibletoconstructavalidcompoundexpression.Forexample,anintdatatypecanbemixedwithalongdatatypebecausebotharenumeric.

Throughtheuseoftypepromotionrules,themixtureofdatatypesisconvertedtothesamedatatype.Valuesthatarereturnedfromanexpressiondependonthedatatype.Datatypeschar,byte,andshortareadvancedtoint.Anexpressionispromotedtolongifoneoftheoperandsisalongdatatype.Thesamegoesforfloatdatatypes,ifoneoftheoperandsisafloatthenthewholeexpressionisafloat.Likewise,anexpressionispromotedtoadoubledatatypeifoneoftheoperandsisadouble.Thefollowingisanexpressionexamplewithmixdatatypesbyteandfloat:

publicclassOperators

{

publicstaticvoidmain(String[]args)

{

byteb=7;

floatf=34.56f;

floattotal=(b*f);

System.out.println(“Thetotalofbyte‘b’timesfloat‘f’(7*34.56)is:“+total);

}

}

Figure3.19–ExpressionExample

Page 94: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

ProgramOutput:Thetotalofbyte‘b’timesfloat‘f’(7*34.56)is:241.92001

Linefivedeclaresandassignsabytedatatypewhilelinesevendeclaresandassignsafloatdatatype.Onlineeight,the*(Multiplication)operatormultipliesbothdatatypes(byteandfloat)eventhoughthetypesaremixed.However,theexpressionispromotedasafloatsinceoneoftheoperandsisafloat.

Chapter3gaveanaccountforthefourtypesofJavaoperators:Arithmetic,Bitwise,Logical,andRelational.TheAssignmentOperatorandTernaryOperatorwereexaminedalongwithrankingsofeachoperator.Chapter4willexplainthetwotypesofcontrolstructures:branchesandloops.Therearetwotypesofbranches:theifbranchandtheswitchbranch.Therearethreetypesofloops:forloop,whileloop,anddowhileloop.

Page 95: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

Chapter4ControlStructures

Controlstructuresaretheprocessofusinglogictoforcetheprogramtoskipstatementswhileloopingotherstatements.Forcingtheprogramtoskipstatementsisknownasbranchingandloopingspecificstatementsiscarriedoutvialoops.

Thetwotypesofbranchesareifbranchandswitchbranch.Thethreetypesofloopsareforloop,whileloop,anddowhileloop.Inadditiontothebranchesandloopsarejumpstatements.Jumpstatementsallowexecutiontobypassunnecessarycomponentsoftheprogram.Thejumpstatementsutilizekeywordsbreakandcontinue.Bothkeywordscanbeincludedwithinallbranchesandloops.

Chapterfourwillcoverthefollowingregardingcontrolstructures:

IfBranch

SwitchBranch

ForLoop

WhileLoop

DoWhileLoop

BreakToExit

ContinueToNextStatement

Page 96: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

IfBranchTheifbranchexecutesastatementwhenaconditionistrue.Inotherwords,aspecificstatementisexecutedifaconditionismet.Anifbranchisagreatlyutilizedandindispensablecontrolstructure.Thefollowingisthesyntaxfortheifbranch:

Syntaxif(condition){statement(s);}

SyntaxDetails

Argument Description

if Keywordthatstartstheifbranch

condition Booleanexpressionwhichresultsinatrueorfalseresult

{ Anopeningcurlybracket

statement(s) Statementthatwillbeexecutediftheconditionistrue

; Semi-coloncompletesthetruestatement

} Aclosingcurlybracket

Figure4.1–IfBranchSyntaxDetails

Thefollowingexampledisplaysamessageifthecustomerbringsthreeextracustomerstoasportingevent:

publicclassControlStructures

{

publicstaticvoidmain(String[]args)

{

intextraCustomers=4;

if(extraCustomers>=3)

{

Page 97: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

System.out.println(“Customerreceivesadiscount”);

}

}

}

Figure4.2–IfBranch

ProgramOutput:Customerreceivesadiscount

Linefiveassigns“4”tothevariable“extraCustomers”.Linesevendisplayskeyword“if”followedbyaparenthesis.Insidetheparenthesisisacondition(extraCustomers>=3)thatreturnstrue.Trueisreturnedbecausefourisgreaterthanthree.Thestatementatlinenine(insidethecurlybrackets)isexecutedafterthetrueevaluation.

Note:Theprogramwouldnotexecutethestatementiftheconditionreturnedfalse.However,therearetwovariationsoftheifbranchthatcanbeexecutedwhenaconditionisfalse:

1. IfElse2. IfElse-If

Page 98: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

IfElseBranchAnoptionalelsekeywordextendstheifbranchjustincasetheconditionreturnsfalse.Therefore,thestatementsfollowingkeyword“if”andtheconditionisexecutedwhenaconditionistrue.Otherwise,thestatementfollowingkeywordelse,isexecutedwhenaconditionisfalse.Thefollowingisthesyntaxfortheif-elsebranch:

Syntaxif(condition){statement(s);}else{statement(s);}

Thefollowingexampledisplaysamessagewhenthecustomerdoesnotbringthreeextracustomerstoasportingevent:

publicclassControlStructures

{

publicstaticvoidmain(String[]args)

{

intextraCustomers=2;

if(extraCustomers>=3)

{

System.out.println(“Customerreceivesadiscount”);

}

else

{

System.out.println(“Customerdoesnotreceiveadiscount”);

}

}

}

Page 99: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

Figure4.3–IfElseBranch

ProgramOutput:Customerdoesnotreceiveadiscount

Linefiveassigns“2”tothevariable“extraCustomers”.Linesevendisplayskeyword“if”followedbyaparenthesis.Insidetheparenthesisisacondition(extraCustomers>=3)thatreturnsfalse.Falseisreturnedbecausetwoisnotgreaterthanorequaltothree.Therefore,theprogrambypassesthestatementatlinenineandexecutesthestatementatline13.

Note:Curlybracketsareoptionalifthereisasinglestatementfollowingkeywords“if”and“else”.However,thecurlybracketsarerequiredifmultiplestatementsexist.Itisrecommendedtoalwaysusecurlybracketstoimprovereadability.Thefollowingisanexamplethatdoesnotusecurlybrackets:

publicclassControlStructures

{

publicstaticvoidmain(String[]args)

{

intextraCustomers=2;

if(extraCustomers>=3)

System.out.println(“Customerreceivesadiscount”);

System.out.println(“Congratulations”);

else

System.out.println(“Customerdoesnotreceiveadiscount”);

}

Page 100: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

}

Figure4.4–NoCurlyBrackets

Lineeightandninearemultiplestatementsfortheifbranchandrequirethecurlybrackets.NoticetheredXatline10.TheredXindicatesanerrorforthepreviousstatements.However,anerrordoesnotexistforline11becauseitisasinglestatementanddoesnotrequirethecurlybrackets.

Page 101: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

IfElse-ifBranchThefirstifkeywordcanoptionallybefollowedbyoneormoreifkeywords.However,eachsubsequentifkeywordmustbeprecededbyarequiredelsekeyword.Theelse-ifbranchisonlyexecutedwhenthefirstifbranchisfalse.Allelse-ifbranchesarefollowedbyaconditionandoneormorestatements.Thefollowingisthesyntaxfortheelseifbranch:

Syntaxif(condition){statement(s);}elseif(condition){statement(s);}elseif(condition){statement(s);}else{statement(s);}

Thefollowingexampledisplaysamessagewhenthecustomerbringslessthanthreeextracustomerstoasportingevent:

publicclassControlStructures

{

publicstaticvoidmain(String[]args)

{

intextraCustomers=2;

if(extraCustomers>=3)

{

System.out.println(“Customerreceivesadiscount”);

}

elseif(extraCustomers<=3)

Page 102: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

{

System.out.println(“NoDiscount:Customercountlessthanorequalto3”);

}

else

{

System.out.println(“Error:Notavalidcustomercount”);

}

}

}

Figure4.5–ElseIfBranch

ProgramOutput:NoDiscount:Customercountlessthanorequalto3

Linefiveassigns“2”tothevariable“extraCustomers”.Line11displaykeywords“else”and“if”followedbyaparenthesis.Insidetheparenthesisisacondition(extraCustomers<=3)thatreturnstrue.Trueisreturnedbecausetwoislessthanorequaltothree.Thesecondcondition(line11)isonlyexecutedafterthefirstcondition(lineseven)isfalse.

Note:Severalelse-ifbranchescanbeaddedtotheifbranch:

Page 103: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

NestedIfBranchThenestedifbranchconsistsofaniforelse-ifbranchinsideanif,else,orelse-ifbranch.Aparticularouterifbranchservesasanestfortheinnerbranch.Thefollowingisanestedifbranchexample:

publicclassControlStructures

{

publicstaticvoidmain(String[]args)

{

intextraCustomers=15;

if(extraCustomers>=3)

{

System.out.println(“Customerreceivesadiscount”);

if(extraCustomers>=10)

{

System.out.println(“25%offtheprice”);

}

else

{

System.out.println(“10%offtheprice”);

}

}

else

{

System.out.println(“Customerdoesnotreceiveadiscount”);

}

}

}

Page 104: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

Figure4.6–NestedIfBranch

ProgramOutput:Customerreceivesadiscount

25%offtheprice

Thenestedifbranchstartsatline11andendsatline18.Acondition(extraCustomers>=10)determinesifthecustomerreceives10or25percentoff.Inthiscase,thevariable“extraCustomers”isassigned15atlinefive.Therefore,theconditionatline11evaluatestotrueandexecutesthefirststatement“25%offtheprice.”Thesecondstatementwouldexecuteifthevariable“extraCustomers”islessthan10.

Page 105: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

SwitchBranchTheswitchbranchevaluatesasinglevariablethenexecutesastatementaccordingtothevariable’svalue.Primitivedatatypesbyte,short,char,andintcanbeevaluatedalongwithString.Theswitchandifbranchesaresimilarinfunctionality.Therearesituationswhereeitherbranchissuitable.However,theswitchbranchismostefficientwhendealingwithaspecificnumberofvalues,suchasdaysoftheweek.Otherwise,itisbesttoimplementanifbranchwhenhandlinganinfinitenumberofvalues.Thefollowingisthesyntaxfortheswitchbranch:

Syntaxswitch(variableName){caseconstant1:statement(s);break;caseconstant2:statement(s);break;caseconstant3:statement(s);break;...default:statement;}

SyntaxDetails

Argument Description

switch Checksthevariable’svalue

variableName Nameofthevariable

{ Anopeningcurlybracket

caseconstant1,2,3… Containsapossiblematchforthevariable’svalue

statement(s) Statementtobeexecutedifthevariable’svaluematchagivencase

Page 106: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

; Semi-coloncompletesastatement

break Anoptionalkeywordthatexitsoutoftheswitchbranch

; Semi-coloncompletesthebreak

default Anoptionalkeywordthatwillexecuteifthevariable’svaluedoesnotmatchacase

statement Defaultstatementtobeexecutedifthevariable’svaluedoesnotmatchacase

} Aclosingcurlybracket

Figure4.7–SwitchBranchSyntaxDetails

Thefollowingisaswitchbranchexample:

publicclassControlStructures

{

publicstaticvoidmain(String[]args)

{

intday=6;

switch(day)

{

case1:

System.out.println(“Sundayisthe1stdayoftheweek”);

break;

case2:

System.out.println(“Mondayisthe2nddayoftheweek”);

break;

case3:

System.out.println(“Tuesdayisthe3rddayoftheweek”);

break;

case4:

System.out.println(“Wednesdayisthe4thdayoftheweek”);

break;

case5:

Page 107: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

System.out.println(“Thursdayisthe5thdayoftheweek”);

break;

case6:

System.out.println(“Fridayisthe6thdayoftheweek”);

break;

case7:

System.out.println(“Saturdayisthe7thdayoftheweek”);

break;

default:

System.out.println(“Notvalid:Thereareonly7daysinaweek”);

}

}

}

Figure4.8–SwitchBranchExample

ProgramOutput:Fridayisthe6thdayoftheweek

Linefiveassignsthevariable“day”thevalueof“6.”Thenthekeyword“switch”startsthebranchatlinesevenbycheckingthevariable’svalue.Keyword“case”atline24matches

Page 108: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

thevariable’svalue“6”,thenexecutesthestatementatline25.Thekeyword“break”atline26isnecessarytopreventcase7(line27)anddefault(line30)fromexecuting.

Note:Allstatementsfollowingamatchwillexecuteduetoswitchbranchesexecutingsequentiallyutilizingatop-downapproach.Therefore,thekeyword“break”mustbeusedtojumpoutoftheswitchbranchafteramatchisfound.

Page 109: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

NestedSwitchBranchThenestedswitchbranchconsistsofaswitchbranchinsideanotherswitchbranch.Inaddition,anifbranchcanbenestedinsideofaswitchbranch.Theouterswitchbranchservesasanestfortheinnerbranch.Valuesareuniquetotheirrespectiveouterandinnerbranch.Forinstance,aconstantcancontainthesamevalueinmultipleswitchbranches.Thefollowingisaswitchbranchexample:

publicclassControlStructures

{

publicstaticvoidmain(String[]args)

{

intday=2,numHours=4;

switch(day)

{

case1:

System.out.println(“Sundayisthe1stdayoftheweek”);

break;

case2:

System.out.println(“Mondayisthe2nddayoftheweek”);

switch(numHours)

{

case4:

System.out.println(“Plantowork4hours(halfaday)duetoanappointment”);

break;

case8:

System.out.println(“Plantowork8hourstoday”);

break;

default:

System.out.println(“NotsurehowmanyhoursIwillworktoday”);

break;

}

break;

case3:

System.out.println(“Tuesdayisthe3rddayoftheweek”);

break;

case4:

System.out.println(“Wednesdayisthe4thdayoftheweek”);

Page 110: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

break;

case5:

System.out.println(“Thursdayisthe5thdayoftheweek”);

break;

case6:

System.out.println(“Fridayisthe6thdayoftheweek”);

break;

case7:

System.out.println(“Saturdayisthe7thdayoftheweek”);

break;

default:

System.out.println(“Notvalid:Thereareonly7daysinaweek”);

}

}

}

Figure4.9–NestedSwitchBranch

ProgramOutput:Mondayisthe2nddayoftheweek

Page 111: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

Plantowork4hours(halfaday)duetoanappointment

Linefiveassignsthevariable“numHours”thevalueof“4.”Thenthekeyword“switch”startsthenestedswitchbranchatline14bycheckingthevariable’svalue.Thenestedswitchbranchencompassestwocasesandonedefault.Oneofthecasesatline16holdthesameconstant,“4”,asanoutercaseatline30.

Page 112: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

ForLoopTheforloopexecutesablockofcodeforacertainnumberofiterations.Inotherwords,astatementisexecutedaslongasaconditionismet.Oneoftheforloopbenefitsistoallowstatementstobeexecutedwithoutwritingcoderepeatedly.Thefollowingistheforloopsyntax:

Syntaxfor(initialization;condition;iteration){statement(s)}

SyntaxDetails

Argument Description

for Keywordthatstartstheforloop

initialization Assignmentthatsetstheloopcontrolinitialvalue

; Semi-coloncompletestheinitialization

condition Abooleanexpressionthatdeterminesiftheloopwillorwillnotrepeat

; Semi-coloncompletesthecondition

iteration Indicateshowtheloopcontrolvariablewillchangeaftereachvariation

{ Anopeningcurlybracket

statement(s) Statement(s)thatwillexecuteaftertheconditionismet

; Semi-coloncompletesthestatement

} Aclosingcurlybracket

Figure4.10–ForLoopSyntaxDetails

Theinitializationcomponentdeclaresadatatypeandassignsaninitialvaluevialoopcontrolvariable.Usually,theloopcontrolvariableisasinglecharactervariablename

Page 113: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

(e.g.,i)thatcontrolstheentireloop.Theconditionisabooleanexpressionthatspecifiesamaximumvaluefortheloopcontrolvariable.Allforloopscontinueexecutingwhiletheconditionistrue.Executionbeginsonthestatementimmediatelyfollowingtheforloopwhentheconditionbecomesfalse.Mostautomationengineersuseanincrement(++)ordecrement(—)operatorastheiterationexpression.Theincrementoperatorincreasestheloopcontrolvariablebyone,whilethedecrementoperatordecreasesthevaluebyone.Anexecutablestatementisplacedbetweentheoptionalcurlybrackets.Although,thecurlybracketsareoptional,itisrecommendedtousethebracketstoimprovereadability.Thefollowingisaforloopexample:

publicclassControlStructures

{

publicstaticvoidmain(String[]args)

{

for(inti=0;i<5;i++)

{

System.out.println(“Theloopcontrolvariablevalueis“+i);

}

}

}

Figure4.11–ForLoopExample

ProgramOutput:Theloopcontrolvariablevalueis0

Theloopcontrolvariablevalueis1

Theloopcontrolvariablevalueis2

Theloopcontrolvariablevalueis3

Theloopcontrolvariablevalueis4

Linefivestartstheforloopwithkeyword“for”followedbyargumentsinitialization,condition,anditeration.Initialization(inti=0;)assignszeroasthestartingvalue.

Page 114: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

Condition(i<5)setsfiveasthestoppingpointfortheloopcontrolvariable.Increment(i++)increasestheloopcontrolvariablebyone.Thestatementprintstheloopcontrolvariablevialineseven.

Itisimportanttouseharmoniousvaluesintheforloop.Thevaluescanleadtoaninfiniteloopiftheyarenotcreatedinagreement.Aninfiniteloopisaloopthatneverstops.Forexample,thefollowingforloopwillrepeatindefinitelybecauseoftheinitialvalue,maximumvalue,anditerationexpression:

for(inti=3;i>1;i++)

Theinitialvalue“3”startsatagreatervaluethanthemaximumvalueof“1,”whiletheiterator“++”increasesaftereachloop.Tocorrectthisinfiniteloop,theinitializationvalue“3”mustdecreasetolessthantheconditionalvalue“1”;theconditionalvalue“1”mustincreasetomorethantheinitialization“3”;ortheiteratormustchangefromincreasing“++”todecreasing“—”aftereachloop.

Note:Routinely,aconditionusingagreaterthanoperator(>)implementsadecrementoperator(—),whileaconditionusingalessthanoperator(<)implementsanincrementoperator(++).

Page 115: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

NestedForLoopThenestedforloopconsistofaforloopinsideanotherforloop.Anouterforloopservesasanestfortheinnerloop.Statementswithintheinnerloopcanutilizetheloopcontrolvariablesfromtheouterloop.Asaresult,itisbesttousedifferentloopcontrolvariablesforeachloop.Thefollowingisanestedforloopexample:

publicclassControlStructures

{

publicstaticvoidmain(String[]args)

{

for(intx=0;x<3;x++)

{

System.out.println(“OuterLoopvalueis“+x);

for(inty=0;y<3;y++)

{

System.out.println(“InnerLoopvalueis“+y);

}

}

}

}

Figure4.12–NestedForLoop

ProgramOutput:OuterLoopvalueis0

InnerLoopvalueis0

InnerLoopvalueis1

InnerLoopvalueis2

Page 116: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

OuterLoopvalueis1

InnerLoopvalueis0

InnerLoopvalueis1

InnerLoopvalueis2

OuterLoopvalueis2

InnerLoopvalueis0

InnerLoopvalueis1

InnerLoopvalueis2

Lineeightstartsthenestedforloopwithkeyword“for”followedbyargumentsinitialization,condition,anditeration.Initialization(inty=0;)assignszeroasthestartingvalue.Condition(y<3)setsthreeasthestoppingpointfortheloopcontrolvariable.Increment(y++)increasestheloopcontrolvariablebyone.Thestatementprintstheloopcontrolvariablevialine10.

Page 117: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

WhileLoopThewhilelooprepeatsastatementwhileaconditionistrue.Conditionsarebooleanexpressionsthatischeckedpriortoexecutingthestatement.Inaddition,thevariablenameisinitializedbeforetheloopandevaluatedaspartofthecondition.Whenexecutingthestatement,thewhileloopcontinuesuntiltheconditionbecomesfalse.Thefollowingisthesyntaxofawhileloop.

Syntaxwhile(condition){statement(s);}

SyntaxDetails

Argument Description

while Keywordthatstartstheloop

condition Abooleanexpressionthatdeterminesiftheloopwillorwillnotrepeat

{ Anopeningcurlybracket

statement(s) Statement(s)thatwillexecuteaftertheconditionismet

; Semi-colonthatcompletesthestatement

} Aclosingcurlybracket

Figure4.13–WhileLoopSyntaxDetails

Thefollowingisawhileloopexample:

publicclassControlStructures

{

publicstaticvoidmain(String[]args)

{

inti=0;

Page 118: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

while(i<5)

{

System.out.println(“Thevariablesvalueis“+i);

i++;

}

}

}

Figure4.14–WhileLoopExample

ProgramOutput:Thevariablesvalueis0

Thevariablesvalueis1

Thevariablesvalueis2

Thevariablesvalueis3

Thevariablesvalueis4

Linefiveinitializesthevariable“i”tozero“0”.Thevariablewillbeevaluatedatlinesevenaspartofthecondition(i<5)afterkeyword“while”.Avalueforthevariable“i”isrepeatedlyprintedvialineninewhiletheconditionistrue.Noticetheincrementoperatoratline10.Itisimportanttoknowthatthewhileloopneverstopsiftheincrementoperatorisnotadded.Therefore,theloopwouldcontinueindefinitely,generatinganinfiniteloop.Inaddition,thewhileloopbecomesindefiniteiftheinitializationandconditionalvariablevaluesarenotsetinagreement.

Page 119: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

DoWhileLoopThedowhileloopevaluatesaconditionatthebottomoftheloop.Therefore,theloopwillexecutethestatementwithintheloopthenevaluatethecondition.Asaresult,thedowhileloopalwaysexecutesastatementforatleastoneiterationandcontinuesaslongastheconditionistrue.Thefollowingisthesyntaxforadowhileloop:

Syntaxdo{statement(s);}while(condition);

SyntaxDetails

Argument Description

do Keywordthatstartstheloop

{ Anopeningcurlybracket

statement(s) Statement(s)thatwillexecuteatleastonce

; Semi-colonthatcompletesthestatement

} Aclosingcurlybracket

while Keywordthatdeterminesiftheloop’sconditionwillrepeat

condition Abooleanexpressionthatdeterminesiftheloopwillorwillnotrepeat

; Semi-colonthatcompletesthecondition

Figure4.15–DoWhileLoopSyntaxDetails

Thefollowingisadowhileloopexample:

publicclassControlStructures

{

Page 120: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

publicstaticvoidmain(String[]args)

{

inti=0;

do

{

System.out.println(“Thevariablesvalueis“+i);

i++;

}

while(i>5);

}

}

Figure4.16–DoWhileLoopExample

ProgramOutput:Thevariablesvalueis0

Thevariablesvalueis1

Thevariablesvalueis2

Thevariablesvalueis3

Thevariablesvalueis4

Linefiveinitializesthevariable“i”tozero“0”.Thekeyword“do”startsthedowhileloopfollowedbytwostatementssurroundedbycurlybrackets.Avalueforthevariable“i”isrepeatedlyprintedvialineninewhilethecondition(i<5)istrue.Coincidentally,theconditionisevaluatedafterthestatementatline12.Likethewhileloop,aninfiniteloopwouldhaveoccurrediftheincrementoperator(++)wasnotaddedatline10.Also,theinitializationandconditionalvaluescancreateaninfiniteloopifnotsetcorrectly.Inthisexample,thestatementswererepeatedmultipleiterationsbecausetheconditionstartedwithatrueresult.Thefollowingshowswhathappenswhentheconditionstartswithafalseresult:

Page 121: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

publicclassControlStructures

{

publicstaticvoidmain(String[]args)

{

inti=0;

do

{

System.out.println(“Thevariablesvalueis“+i);

i++;

}

while(i>5);

}

}

Figure4.17–DoWhileLoopExample(StartWithFalseCondition)

ProgramOutput:Thevariablesvalueis0

Linefiveinitializesthevariable“i”tozero“0”.Therefore,thecondition(i>5)atline12isfalseduetozerobeinglessthanfive.Thedowhileloopexecutedthestatementbecausestatementsareexecutedfirst,thentheconditionisevaluated.

Note:Theloops(for,while,anddowhile)aresimilarinfunctionality.Aruleofthumbtousewhendecidingwhichlooptoimplementis:

Page 122: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

ImplementaforloopwhenexecutingaspecificnumberofiterationsImplementawhileloopwhentheloopwillrepeatanuncertainnumberofiterationsImplementadowhileloopwhenaloopneedstobeexecutedatleastoneiteration

Page 123: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

BreakToExitThe“break”keywordisoptionalandusedtoforceanexitfromabranchorloop.Ifabreakoccurswithinanestedbranchorloopthentheinnermostbranchorloopdiscontinues.However,executionresumesatthestatementimmediatelyfollowingthecurrentbranchorloop.ThefollowingisabreakkeywordexampleusingstatementsfromFigure4.8(SwitchBranch).

publicclassControlStructures

{

publicstaticvoidmain(String[]args)

{

intday=6;

switch(day)

{

case1:

System.out.println(“Sundayisthe1stdayoftheweek”);

break;

case2:

System.out.println(“Mondayisthe2nddayoftheweek”);

break;

case3:

System.out.println(“Tuesdayisthe3rddayoftheweek”);

break;

case4:

System.out.println(“Wednesdayisthe4thdayoftheweek”);

break;

case5:

System.out.println(“Thursdayisthe5thdayoftheweek”);

break;

case6:

System.out.println(“Fridayisthe6thdayoftheweek”);

break;

case7:

System.out.println(“Saturdayisthe7thdayoftheweek”);

break;

default:

System.out.println(“Notvalid:Thereareonly7daysinaweek”);

Page 124: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

}

}

}

Figure4.18–BreakKeywordExample

Inthisexample,the“break”keywordisusedtoexitacaseifamatchislocated.Amatchhappensforcasesixatline24.Thebreakkeywordpreventscaseseven(line27)andthedefault(line30)fromexecuting.

Note:Morethanonebreakkeywordcanappearinabranchorloop.Thereisabreakkeywordaftereverycase.

Page 125: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

ContinueToNextStatementThe“continue”keywordforcesthecurrentloopiterationtostopandimmediatelyexecutethenextloopiteration.Asaresult,theconditionandstatementbetweenbothintervalsareskipped.Thefollowingisanexampleusingthe“continue”keywordtoskipalloddnumbers:

publicclassControlStructures

{

publicstaticvoidmain(String[]args)

{

for(intx=2;x<=10;x++)

{

if(x%2!=0)continue;

System.out.println(“Evennumbers“+x);

}

}

}

Figure4.19–ContinueKeyword

ProgramOutput:Evennumbers2

Evennumbers4

Evennumbers6

Evennumbers8

Evennumbers10

Linesevenimplementsthe“continue”keywordtobypassalloddnumbers.Therefore,theconditionandstatementsareskippedwhentheloopcontrolvariable“i”equalsone,three,

Page 126: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

five,seven,andnine.

Page 127: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

ConclusionThepurposeof“Part1–Java4SeleniumWebDriver”wastoprovideagoodfoundationalknowledgeofJava.AnunderstandingofJavafacilitatestheprocessoftestinganApplicationUnderTesting(AUT)viaSelenium.ThekeytoverifyingdatawithinanAUT,isknowinghowtoaccessandmanipulatedata.Dataisrepresentedbyvariables,whichcanbetextornumbers.Allvariablesmusthaveadatatypetoindicatetherangeandbehavior.Thedatatypeissignificantwhendealingwithoperatorsbecausecertainfunctionsareperformedaccordingtothedatatype.Inaddition,someoftheoperatorsarecontributorstoformingcontrolstructures.Thefollowingitemsaretake–awaytopicsfromthebook:

Variables:Alocationthatholdsdata

DataTypes:Refertoavariable’stype

Operators:Asymbolthatperformsmathematicalorlogicaloperations

ControlStructures:Referstotheprocessofusinglogictoforcetheprogramtoskiporloopstatements

ThesecondJavabookistitled“Part2–Java4SeleniumWebDriver.”ItexaminesClasses,Objects,Methods,Inheritance,Packages,Interfaces,ExceptionHandling,andhowtouseInput/Output.Thereleasedatefor“Part2–Java4SeleniumWebDriver”isApril2016.

Page 128: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

Resources1.BeginningJava®ProgrammingTheObject-OrientedApproachBartBaesens,AiméeBackiel,SeppevandenBroucke

2.JavaABeginner’sGuideSixthEditionCreate,Compile,andRunJavaProgramsTodayHerbertSchildt

3.Webopediahttp://www.webopedia.com/TERM/A/ASCII.html4.Dictionary.Reference.comhttp://dictionary.reference.com/browse/ternary?s=t

5.ORACLEJavaDocumentationTheJavaTMTutorialshttps://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html

Page 129: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

BooksbyRexJonesII1. FreeBook(Part1)AbsoluteBeginner

YouMustLearnVBScriptforQTP/UFTDon’tIgnoreTheLanguageForFunctionalAutomationTesting

2. (Part2)YouMustLearnVBScriptforQTP/UFTDon’tIgnoreTheLanguageForFunctionalAutomationTesting

3. FreeBook(Part1)AbsoluteBeginnerJava4SeleniumWebDriverComeLearnHowToProgramForAutomationTesting

ComingSoon

4. (Part2)Java4SeleniumWebDriverComeLearnHowToProgramForAutomationTesting

5. TestDesignTechniquesAnImportantSkillSetforQA/SoftwareTesters

Page 130: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

Note:ThefreebooksareavailableviaeBookEdition.

Page 131: Free Webinars, Videos, and Live Trainingtisten.ir/.../12/Absolute-Beginner-Java-4-Selenium... · Free Webinars, Videos, and Live Training Mr. Jones plans to have free step-by-step

SignUpToReceive1. 3TipsToMasterSeleniumWithin30Days

http://tinyurl.com/3-Tips-For-Selenium

2. 3TipsToMasterQTP/UFTWithin30Dayshttp://tinyurl.com/3-Tips-For-QTP-UFT

3. FreeWebinars,Videos,andLiveTrainingshttp://tinyurl.com/Free-QTP-UFT-Selenium