Question? Leave a message!

Java Packages, Classes, Variables, Expressions, Flow Control, and Exceptions

Java Packages, Classes, Variables, Expressions, Flow Control, and Exceptions
WilliamsMcmahon Profile Pic
WilliamsMcmahon,United States,Professional
Published Date:20-07-2017
Website URL
Java Packages, Classes, Variables, Expressions, Flow Control, and ExceptionsSun’s Naming Conventions  Classes and Interfaces StringBuffer, Integer, MyDate  Identifiers for methods, fields, and variables _name, getName, setName, isName, birthDate  Packages java.lang, java.util, proj1  Constants PI, MAX_NUMBER www.ThesisScientist.comComments  Java supports three types of comments.  C style / multi-liner comments /  C++ style // one liner comments  Javadoc / This is an example of a javadoc comment. These comments can be converted to part of the pages you see in the API. / www.ThesisScientist.comThe final modifier  Constants in Java are created using the final modifier. final int MAX = 9;  Final may also be applied to methods in which case it means the method can not be overridden in subclasses.  Final may also be applied to classes in which case it means the class can not be extended or subclassed as in the String class. www.ThesisScientist.comPackages  Only one package per file.  Packages serve as a namespace in Java and create a directory hierarchy when compiled.  Classes are placed in a package using the following syntax in the first line that is not a comment. package packagename; package packagename.subpackagename; www.ThesisScientist.comPackages (cont.)  Classes in a package are compiled using the –d option.  On the following slide, you will find the command to compile the code from the Proj1/src directory to the Proj1/bin directory. www.ThesisScientist.comPackages (cont.)  It is common practice to duplicate the package directory hierarchy in a directory named src and to compile to a directory named bin. Proj1 src The following command is run from the src directory: proj1 javac –d ../bin proj1/gui/ gui bin proj1 gui Example.class www.ThesisScientist.comPackages (cont.)  By default, all classes that do not contain a package declaration are in the unnamed package.  The fully qualified name of a class is the packageName.ClassName. java.lang.String  To alleviate the burden of using the fully qualified name of a class, people use an import statement found before the class declaration. import java.util.StringBuffer; import java.util.; www.ThesisScientist.comFields and Methods  In Java you have fields and methods. A field is like a data member in C++.  Method is like a member method in C++.  Every field and method has an access level. The public, private, and protected keywords have the same functionality as those in C++.  public  protected  private  (package) www.ThesisScientist.comAccess Control Same Modifier Subclass Same class Universe package private default protected public www.ThesisScientist.comAccess Control for Classes  Classes may have either public or package accessibility.  Only one public class per file.  Omitting the access modifier prior to class keyword gives the class package accessibility. www.ThesisScientist.comClasses  In Java, all classes at some point in their inheritance hierarchy are subclasses of java.lang.Object, therefore all objects have some inherited, default implementation before you begin to code them.  String toString()  boolean equals(Object o) www.ThesisScientist.comClasses (cont.)  Unlike C++ you must define the accessibility for every field and every method. In the following code, the x is public but the y gets the default accessibility of package since it doesn’t have a modifier. public int x; int y; www.ThesisScientist.comInstance and Local Variables  Unlike C++ you must define everything within a class.  Like C++,  variables declared outside of method are instance variables and store instance or object data. The lifetime of the variable is the lifetime of the instance.  variables declared within a method, including the parameter variables, are local variables. The lifetime of the variable is the lifetime of the method. www.ThesisScientist.comStatic Variables  A class may also contain static variables and methods.  Similar to C++…  Static variables store static or class data, meaning only one copy of the data is shared by all objects of the class.  Static methods do not have access to instance variables, but they do have access to static variables.  Instance methods also have access to static variables. www.ThesisScientist.comInstance vs. Static Methods  Static methods  have static as a modifier,  can access static data,  can be invoked by a host object or simply by using the class name as a qualifier.  Instance methods  can access static data,  can access instance data of the host object,  must be invoked by a host object,  contain a this reference that stores the address of host object. www.ThesisScientist.comPass By Value or By Reference?  All arguments are passed by value to a method. However, since references are addresses, in reality, they are passed by reference, meaning…  Arguments that contain primitive data are passed by value. Changes to parameters in method do not effect arguments.  Arguments that contain reference data are passed by reference. Changes to parameter in method may effect arguments. www.ThesisScientist.comConstructors  Similar to C++, Java will provide a default (no argument) constructor if one is not defined in the class.  Java, however, will initialize all fields (object or instance data) to their zero values as in the array objects.  Like C++, once any constructor is defined, the default constructor is lost unless explicitly defined in the class. www.ThesisScientist.comConstructors (cont.)  Similar to C++, constructors in Java  have no return value,  have the same name as the class,  initialize the data,  and are typically overloaded.  Unlike C++, a Java constructor can call another constructor using a call to a this method as the first line of code in the constructor. www.ThesisScientist.comExpressions and Control Flow  Java uses the same operators as C++. Only differences are  + sign can be used for String concatenation,  logical and relative operators return a boolean.  Same control flow constructs as C++, but expression must return a boolean.  Conditional  if(boolean expression)…else if(boolean expression)…else…  switch(variable)case 1: …break; default:…  Variable must be an integral primitive type of size int or smaller, or a char