Search
Search titles only
By:
Search titles only
By:
Log in
Register
Search
Search titles only
By:
Search titles only
By:
Menu
Install the app
Install
Forums
New posts
All threads
Latest threads
New posts
Trending threads
Trending
Search forums
What's new
New posts
New ads
New profile posts
Latest activity
Free Ads
Latest reviews
Search ads
Members
Current visitors
New profile posts
Search profile posts
Contact us
Latest ads
Pure VPN - Up to 27 Months
vgp
Updated:
Friday at 8:10 AM
එක පැකේජ් එකයි මාසෙටම Unlimited Internet. තාමත් DATA CARD දාන්න සල්ලි වියදම් කරනවද? අඩුම මිලට අපෙන්.
sayuru bandara
Updated:
Tuesday at 12:30 PM
Ad icon
ඉන්ටර්නෙට් එකෙන් හරියටම සල්ලි හොයන්න සහ Success වෙන්න කැමතිද? 🚀 (E-Money & Success Stories)
siri sumana
Updated:
May 30, 2026
Gemini AI PRO 18 months Offer
Hawaka
Updated:
May 27, 2026
Ad icon
koko account
DasunEranga
Updated:
May 27, 2026
Electronics
Vehicles
Property
Search
Reply to thread
Forums
Testing & Maintenance
Testing Forum
OCA
Get the App
JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.
You are using an out of date browser. It may not display this or other websites correctly.
You should upgrade or use an
alternative browser
.
Message
<blockquote data-quote="D_Mad" data-source="post: 20557538" data-attributes="member: 476938"><p style="text-align: center"><span style="font-size: 22px"><span style="color: DarkRed">CERTIFICATION OBJECTIVE</span></span></p> <p style="text-align: center"><span style="font-size: 22px"><span style="color: DarkRed"></span></span></p> <p style="text-align: center"><span style="font-size: 22px"><span style="color: DarkRed">Define Classes</span></span></p> <p style="text-align: center"><span style="font-size: 22px"><span style="color: DarkRed">(OCA Objectives 1.2, 1.3, 1.4, 6.6, and 7.6)</span></span></p> <p style="text-align: center"><span style="font-size: 18px"></span></p> <p style="text-align: center"><span style="font-size: 18px">1.2 Define the structure of a Java class.</span></p> <p style="text-align: center"><span style="font-size: 18px">1.3 Create executable Java applications with a main method.</span></p> <p style="text-align: center"><span style="font-size: 18px"></span></p> <p style="text-align: center"><span style="font-size: 18px">1.4 Import other Java packages to make them accessible in your code.</span></p> <p style="text-align: center"><span style="font-size: 18px">6.6 Apply access modifiers.</span></p> <p style="text-align: center"><span style="font-size: 18px">7.6 Use abstract classes and interfaces.</span></p> <p style="text-align: center"><span style="font-size: 18px">When you write code in Java, you're writing classes or interfaces. Within those</span></p> <p style="text-align: center"><span style="font-size: 18px">classes, as you know, are variables and methods (plus a few other things). How you</span></p> <p style="text-align: center"><span style="font-size: 18px">declare your classes, methods, and variables dramatically affects your code's behavior.</span></p> <p style="text-align: center"><span style="font-size: 18px">For example, a public method can be accessed from code running anywhere in your</span></p> <p style="text-align: center"><span style="font-size: 18px">application. Mark that method private , though, and it vanishes from everyone's</span></p> <p style="text-align: center"><span style="font-size: 18px">radar (except the class in which it was declared).</span></p> <p style="text-align: center"><span style="font-size: 18px">For this objective, we'll study the ways in which you can declare and modify (or</span></p> <p style="text-align: center"><span style="font-size: 18px">not) a class. You'll find that we cover modifiers in an extreme level of detail, and</span></p> <p style="text-align: center"><span style="font-size: 18px">although we know you're already familiar with them, we're starting from the very</span></p> <p style="text-align: center"><span style="font-size: 18px">beginning. Most Java programmers think they know how all the modifiers work, but</span></p> <p style="text-align: center"><span style="font-size: 18px">on closer study they often find out that they don't (at least not to the degree needed</span></p> <p style="text-align: center"><span style="font-size: 18px">for the exam). Subtle distinctions are everywhere, so you need to be absolutely certain</span></p> <p style="text-align: center"><span style="font-size: 18px">you're completely solid on everything in this section's objectives before taking the exam.</span></p> <p style="text-align: center"><span style="font-size: 22px"><span style="color: DarkRed"></span></span></p> <p style="text-align: center"><span style="font-size: 22px"><span style="color: DarkRed">Source File Declaration Rules</span></span></p> <p style="text-align: center"></p> <p style="text-align: center"><span style="font-size: 18px">Before we dig into class declarations, let's do a quick review of the rules associated with</span></p> <p style="text-align: center"><span style="font-size: 18px">declaring classes, import statements, and package statements in a source file:</span></p> <p style="text-align: center"><span style="font-size: 18px">■ There can be only one public class per source code file.</span></p> <p style="text-align: center"><span style="font-size: 18px">■ Comments can appear at the beginning or end of any line in the source code</span></p> <p style="text-align: center"><span style="font-size: 18px">file; they are independent of any of the positioning rules discussed here.</span></p> <p style="text-align: center"><span style="font-size: 18px">■ If there is a public class in a file, the name of the file must match the name</span></p> <p style="text-align: center"><span style="font-size: 18px">of the public class. For example, a class declared as public class Dog { }</span></p> <p style="text-align: center"><span style="font-size: 18px">must be in a source code file named Dog.java .</span></p> <p style="text-align: center"><span style="font-size: 18px">■ If the class is part of a package, the package statement must be the first line</span></p> <p style="text-align: center"><span style="font-size: 18px">in the source code file, before any import statements that may be present.</span></p> <p style="text-align: center"><span style="font-size: 18px">■ If there are import statements, they must go between the package statement</span></p> <p style="text-align: center"><span style="font-size: 18px">(if there is one) and the class declaration. If there isn't a package statement,</span></p> <p style="text-align: center"><span style="font-size: 18px">then the import statement(s) must be the first line(s) in the source code file.</span></p> <p style="text-align: center"><span style="font-size: 18px">If there are no package or import statements, the class declaration must be</span></p> <p style="text-align: center"><span style="font-size: 18px">the first line in the source code file.</span></p> <p style="text-align: center"><span style="font-size: 18px">■ import and package statements apply to all classes within a source code file.</span></p> <p style="text-align: center"><span style="font-size: 18px">In other words, there's no way to declare multiple classes in a file and have</span></p> <p style="text-align: center"><span style="font-size: 18px">them in different packages or use different imports.</span></p> <p style="text-align: center"><span style="font-size: 18px">■ A file can have more than one nonpublic class.</span></p> <p style="text-align: center"><span style="font-size: 18px">■ Files with no public classes can have a name that does not match any of the</span></p> <p style="text-align: center"><span style="font-size: 18px">classes in the file.</span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed">Using the javac and java Commands</span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px">In this book, we're going to talk about invoking the javac and java commands</span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px">about 1000 times. Although in the real world you'll probably use an integrated</span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px">development environment (IDE) most of the time, you could see a few questions on</span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px">the exam that use the command line instead, so we're going to review the basics.</span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px">(By the way, we did NOT use an IDE while writing this book. We still have a slight</span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px">preference for the command line while studying for the exam; all IDEs do their best</span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px">to be "helpful," and sometimes they'll fix your problems without telling you. That's</span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px">nice on the job, but maybe not so great when you're studying for a certification exam!)</span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px">Compiling with javac</span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px">The javac command is used to invoke Java's compiler. You can specify many</span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px">options when running javac . For example, there are options to generate debugging</span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px">information or compiler warnings. Here's the structural overview for javac :</span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px">javac [options] [source files]</span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px">There are additional command-line options called @argfiles , but they're rarely</span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px">used, and you won't need to study them for the exam. Both the [options] and the</span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px">[source files] are optional parts of the command, and both allow multiple</span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px">entries. The following are both legal javac commands:</span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px">javac -help</span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px">javac -version Foo.java Bar.java</span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px">The first invocation doesn't compile any files, but prints a summary of valid</span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px">options. The second invocation passes the compiler an option ( -version , which</span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px">prints the version of the compiler you're using), and passes the compiler two .java</span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px">files to compile ( Foo.java and Bar.java ). Whenever you specify multiple options</span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px">and/or files, they should be separated by spaces. (Note: If you're studying for the</span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px">OCP 7, in Chapter 7 we'll talk about the assertion mechanism and when you might</span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px">use the -source option when compiling a file.)</span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px">Launching Applications with java</span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black">The java command is used to invoke the Java Virtual Machine (JVM). Here's the</span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black">basic structure of the command:</span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black">java [options] class [args]</span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black">The [options] and [args] parts of the java command are optional, and they</span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black">can both have multiple values. (Of the two exams, only the OCP 7 will use</span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black">[options] .) You must specify exactly one class file to execute, and the java</span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black">command assumes you're talking about a .class file, so you don't specify the</span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black">.class extension on the command line. Here's an example:</span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black">java -version MyClass x 1</span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black">This command can be interpreted as "Show me the version of the JVM being</span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black">used, and then launch the file named MyClass.class and send it two String</span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black">arguments whose values are x and 1 ." Let's look at the following code:</span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black">public class MyClass {</span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black">public static void main(String[] args) {</span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black">System.out.println(args[0] + " " + args[1]);</span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black">}</span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black">}</span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black">It's compiled and then invoked as follows:</span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black">java MyClass x 1</span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black">The output will be</span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black">x 1</span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black">We'll be getting into arrays in depth later, but for now it's enough to know that</span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black">args—like all arrays—uses a zero-based index. In other words, the first command line</span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black">argument is assigned to args[0] , the second argument is assigned to args[1] , and</span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black">so on.</span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black">Note: Again, for the OCP 7 candidates, in Chapter 7 we'll talk about the</span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black">assertion mechanism and when you might use flags such as -ea or -da when</span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black">launching an application.</span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px">Using public static void main(String[ ] args)</span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px"></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">The use of the main() method is implied in most of the questions on the exam, and</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">on the OCA exam it is specifically covered. For the .0001% of you who don't know,</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">main() is the method that the JVM uses to start execution of a Java program.</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">First off, it's important for you to know that naming a method main() doesn't</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">give it the superpowers we normally associate with main(). As far as the compiler</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">and the JVM are concerned, the only version of main() with superpowers is the</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">main() with this signature:</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">public static void main(String[] args)</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">Other versions of main() with other signatures are perfectly legal, but they're</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">treated as normal methods. There is some flexibility in the declaration of the</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">"special" main() method (the one used to start a Java application): the order of its</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">modifiers can be altered a little, the String array doesn't have to be named args ,</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">and as of Java 5 it can be declared using var-args syntax. The following are all legal</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">declarations for the "special" main() :</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">static public void main(String[] args)</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">public static void main(String... x)</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">static public void main(String bang_a_gong[])</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">For the OCA exam, the only other thing that's important for you to know is that</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">main() can be overloaded. We'll cover overloading in detail in the next chapter.</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px"></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">Import Statements and the Java API</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">There are a gazillion Java classes in the world. The Java API has thousands of classes</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">and the Java community has written the rest. We'll go out on a limb and contend</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">that all Java programmers everywhere use a combination of classes they wrote and</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">classes that other programmers wrote. Suppose we created the following:</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">public class ArrayList {</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">public static void main(String[] args) {</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">System.out.println("fake ArrayList class");</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">}</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">}</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">This is a perfectly legal class, but as it turns out, one of the most commonly used</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">classes in the Java API is also named ArrayList , or so it seems.... The API</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">version's actual name is java.util.ArrayList . That's its fully qualified name. The</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">use of fully qualified names is what helps Java developers make sure that two</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px"></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">versions of a class like ArrayList don't get confused. So now let's say that I want to</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">use the ArrayList class from the API:</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">public class MyClass {</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">public static void main(String[] args) {</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">java.util.ArrayList<String> a =</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">new java.util.ArrayList<String>();</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">}</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">}</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">(First off, trust us on the <String> syntax; we'll get to that later.) While this is</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">legal, it's also a LOT of keystrokes. Since we programmers are basically lazy (there,</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">we said it), we like to use other people's classes a LOT, AND we hate to type. If we</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">had a large program, we might end up using ArrayList s many times.</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">import statements to the rescue! Instead of the preceding code, our class could</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">look like this:</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">import java.util.ArrayList;</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">public class MyClass {</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">public static void main(String[] args) {</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">ArrayList<String> a = new ArrayList<String>();</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">}</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">}</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">We can interpret the import statement as saying, "In the Java API there is a</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">package called 'util', and in that package is a class called 'ArrayList'. Whenever you</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">see the word 'ArrayList' in this class, it's just shorthand for: 'java.util.ArrayList'."</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">(Note: Lots more on packages to come!) If you're a C programmer, you might think</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">that the import statement is similar to an #include . Not really. All a Java import</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">statement does is save you some typing. That's it.</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">As we just implied, a package typically has many classes. The import statement</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">offers yet another keystroke-saving capability. Let's say you wanted to use a few</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">different classes from the java.util package: ArrayList and TreeSet . You can</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">add a wildcard character ( * ) to your import statement that means, "If you see a</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">reference to a class you're not sure of, you can look through the entire package for</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">that class," like so:</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">import java.util.*;</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">public class MyClass {</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">public static void main(String[] args) {</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">ArrayList<String> a = new ArrayList<String>();</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">TreeSet<String> t = new TreeSet<String>();</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">}</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">}</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">When the compiler and the JVM see this code, they'll know to look through</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">java.util for ArrayList and TreeSet . For the exam, the last thing you'll need to</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">remember about using import statements in your classes is that you're free to mix</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">and match. It's okay to say this:</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">ArrayList<String> a = new ArrayList<String>();</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px">java.util.ArrayList<String> a2 = new java.util.ArrayList<String>();</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"><span style="font-size: 22px"><span style="color: DarkRed"><span style="color: Black"><span style="font-size: 18px"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: DarkRed"><span style="font-size: 22px"><span style="font-size: 18px"><span style="color: Black"><span style="color: DarkRed"><span style="font-size: 22px"><span style="color: Black"><span style="font-size: 18px"></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></p> <p style="text-align: center"><span style="font-size: 18px"></span></p> <p style="text-align: center"><span style="font-size: 18px"></span></p></blockquote><p></p>
[QUOTE="D_Mad, post: 20557538, member: 476938"] [CENTER][SIZE=6][COLOR=DarkRed]CERTIFICATION OBJECTIVE Define Classes (OCA Objectives 1.2, 1.3, 1.4, 6.6, and 7.6)[/COLOR][/SIZE] [SIZE=5] 1.2 Define the structure of a Java class. 1.3 Create executable Java applications with a main method. 1.4 Import other Java packages to make them accessible in your code. 6.6 Apply access modifiers. 7.6 Use abstract classes and interfaces. When you write code in Java, you're writing classes or interfaces. Within those classes, as you know, are variables and methods (plus a few other things). How you declare your classes, methods, and variables dramatically affects your code's behavior. For example, a public method can be accessed from code running anywhere in your application. Mark that method private , though, and it vanishes from everyone's radar (except the class in which it was declared). For this objective, we'll study the ways in which you can declare and modify (or not) a class. You'll find that we cover modifiers in an extreme level of detail, and although we know you're already familiar with them, we're starting from the very beginning. Most Java programmers think they know how all the modifiers work, but on closer study they often find out that they don't (at least not to the degree needed for the exam). Subtle distinctions are everywhere, so you need to be absolutely certain you're completely solid on everything in this section's objectives before taking the exam.[/SIZE] [SIZE=6][COLOR=DarkRed] Source File Declaration Rules[/COLOR][/SIZE] [SIZE=5]Before we dig into class declarations, let's do a quick review of the rules associated with declaring classes, import statements, and package statements in a source file: ■ There can be only one public class per source code file. ■ Comments can appear at the beginning or end of any line in the source code file; they are independent of any of the positioning rules discussed here. ■ If there is a public class in a file, the name of the file must match the name of the public class. For example, a class declared as public class Dog { } must be in a source code file named Dog.java . ■ If the class is part of a package, the package statement must be the first line in the source code file, before any import statements that may be present. ■ If there are import statements, they must go between the package statement (if there is one) and the class declaration. If there isn't a package statement, then the import statement(s) must be the first line(s) in the source code file. If there are no package or import statements, the class declaration must be the first line in the source code file. ■ import and package statements apply to all classes within a source code file. In other words, there's no way to declare multiple classes in a file and have them in different packages or use different imports. ■ A file can have more than one nonpublic class. ■ Files with no public classes can have a name that does not match any of the classes in the file. [SIZE=6][COLOR=DarkRed] Using the javac and java Commands [COLOR=Black][SIZE=5]In this book, we're going to talk about invoking the javac and java commands about 1000 times. Although in the real world you'll probably use an integrated development environment (IDE) most of the time, you could see a few questions on the exam that use the command line instead, so we're going to review the basics. (By the way, we did NOT use an IDE while writing this book. We still have a slight preference for the command line while studying for the exam; all IDEs do their best to be "helpful," and sometimes they'll fix your problems without telling you. That's nice on the job, but maybe not so great when you're studying for a certification exam!) [SIZE=6] Compiling with javac [SIZE=5]The javac command is used to invoke Java's compiler. You can specify many options when running javac . For example, there are options to generate debugging information or compiler warnings. Here's the structural overview for javac : javac [options] [source files] There are additional command-line options called @argfiles , but they're rarely used, and you won't need to study them for the exam. Both the [options] and the [source files] are optional parts of the command, and both allow multiple entries. The following are both legal javac commands: javac -help javac -version Foo.java Bar.java The first invocation doesn't compile any files, but prints a summary of valid options. The second invocation passes the compiler an option ( -version , which prints the version of the compiler you're using), and passes the compiler two .java files to compile ( Foo.java and Bar.java ). Whenever you specify multiple options and/or files, they should be separated by spaces. (Note: If you're studying for the OCP 7, in Chapter 7 we'll talk about the assertion mechanism and when you might use the -source option when compiling a file.) [COLOR=DarkRed] [SIZE=6]Launching Applications with java [SIZE=5][COLOR=Black]The java command is used to invoke the Java Virtual Machine (JVM). Here's the basic structure of the command: java [options] class [args] The [options] and [args] parts of the java command are optional, and they can both have multiple values. (Of the two exams, only the OCP 7 will use [options] .) You must specify exactly one class file to execute, and the java command assumes you're talking about a .class file, so you don't specify the .class extension on the command line. Here's an example: java -version MyClass x 1 This command can be interpreted as "Show me the version of the JVM being used, and then launch the file named MyClass.class and send it two String arguments whose values are x and 1 ." Let's look at the following code: public class MyClass { public static void main(String[] args) { System.out.println(args[0] + " " + args[1]); } } It's compiled and then invoked as follows: java MyClass x 1 The output will be x 1 We'll be getting into arrays in depth later, but for now it's enough to know that args—like all arrays—uses a zero-based index. In other words, the first command line argument is assigned to args[0] , the second argument is assigned to args[1] , and so on. Note: Again, for the OCP 7 candidates, in Chapter 7 we'll talk about the assertion mechanism and when you might use flags such as -ea or -da when launching an application. [COLOR=DarkRed][SIZE=6]Using public static void main(String[ ] args) [COLOR=Black][SIZE=5] The use of the main() method is implied in most of the questions on the exam, and on the OCA exam it is specifically covered. For the .0001% of you who don't know, main() is the method that the JVM uses to start execution of a Java program. First off, it's important for you to know that naming a method main() doesn't give it the superpowers we normally associate with main(). As far as the compiler and the JVM are concerned, the only version of main() with superpowers is the main() with this signature: public static void main(String[] args) Other versions of main() with other signatures are perfectly legal, but they're treated as normal methods. There is some flexibility in the declaration of the "special" main() method (the one used to start a Java application): the order of its modifiers can be altered a little, the String array doesn't have to be named args , and as of Java 5 it can be declared using var-args syntax. The following are all legal declarations for the "special" main() : static public void main(String[] args) public static void main(String... x) static public void main(String bang_a_gong[]) For the OCA exam, the only other thing that's important for you to know is that main() can be overloaded. We'll cover overloading in detail in the next chapter. Import Statements and the Java API There are a gazillion Java classes in the world. The Java API has thousands of classes and the Java community has written the rest. We'll go out on a limb and contend that all Java programmers everywhere use a combination of classes they wrote and classes that other programmers wrote. Suppose we created the following: public class ArrayList { public static void main(String[] args) { System.out.println("fake ArrayList class"); } } This is a perfectly legal class, but as it turns out, one of the most commonly used classes in the Java API is also named ArrayList , or so it seems.... The API version's actual name is java.util.ArrayList . That's its fully qualified name. The use of fully qualified names is what helps Java developers make sure that two versions of a class like ArrayList don't get confused. So now let's say that I want to use the ArrayList class from the API: public class MyClass { public static void main(String[] args) { java.util.ArrayList<String> a = new java.util.ArrayList<String>(); } } (First off, trust us on the <String> syntax; we'll get to that later.) While this is legal, it's also a LOT of keystrokes. Since we programmers are basically lazy (there, we said it), we like to use other people's classes a LOT, AND we hate to type. If we had a large program, we might end up using ArrayList s many times. import statements to the rescue! Instead of the preceding code, our class could look like this: import java.util.ArrayList; public class MyClass { public static void main(String[] args) { ArrayList<String> a = new ArrayList<String>(); } } We can interpret the import statement as saying, "In the Java API there is a package called 'util', and in that package is a class called 'ArrayList'. Whenever you see the word 'ArrayList' in this class, it's just shorthand for: 'java.util.ArrayList'." (Note: Lots more on packages to come!) If you're a C programmer, you might think that the import statement is similar to an #include . Not really. All a Java import statement does is save you some typing. That's it. As we just implied, a package typically has many classes. The import statement offers yet another keystroke-saving capability. Let's say you wanted to use a few different classes from the java.util package: ArrayList and TreeSet . You can add a wildcard character ( * ) to your import statement that means, "If you see a reference to a class you're not sure of, you can look through the entire package for that class," like so: import java.util.*; public class MyClass { public static void main(String[] args) { ArrayList<String> a = new ArrayList<String>(); TreeSet<String> t = new TreeSet<String>(); } } When the compiler and the JVM see this code, they'll know to look through java.util for ArrayList and TreeSet . For the exam, the last thing you'll need to remember about using import statements in your classes is that you're free to mix and match. It's okay to say this: ArrayList<String> a = new ArrayList<String>(); java.util.ArrayList<String> a2 = new java.util.ArrayList<String>(); [/SIZE][/COLOR][/SIZE][/COLOR][/COLOR][/SIZE][/SIZE][/COLOR][/SIZE][/SIZE][/SIZE][/COLOR][/COLOR][/SIZE] [/SIZE][/CENTER] [/QUOTE]
Insert quotes…
Verification
Dahaya deken beduwama keeyada?
Post reply
Top
Bottom