Java Package, Interface & Exception

Java Package, Interface & Exception

Java Package, Interface & Exception Package Prepared By - Rifat Shahriyar 2 Package • Java package provides a mechanism for partitioning the class name space into more manageable chunks – Both naming and visibility control mechanism • Define classes inside a package that are not accessible by code outside that package • Define class members that are exposed only to other members of the same package • This allows classes to have intimate knowledge of each other – Not expose that knowledge to the rest of the world Prepared By - Rifat Shahriyar 3 Declaring Package • package pkg – Here, pkg is the name of the package • package mypackage – creates a package called mypackage • The package statement defines a name space in which classes are stored • If you omit the package statement, the class names are put into the default package, which has no name Prepared By - Rifat Shahriyar 4 Declaring Package • Java uses file system directories to store packages – the .class files for any classes that are part of mypackage must be stored in a directory called mypackage • More than one file can include the same package statement • The package statement simply specifies to which package the classes defined in a file belong • To create hierarchy of packages, separate each package name from the one above it by use of a (.) Prepared By - Rifat Shahriyar 5 Package Example javac -d . AccountBalance.java java mypackage.AccountBalance Prepared By - Rifat Shahriyar 6 Package Syntax • The general form of a multilevel package statement – package pkg1[.pkg2[.pkg3]] – package java.util.concurrent • import statements occur immediately following the package statement and before any class definitions • The general form of the import statement – import pkg1 [.pkg2].(classname | *) – import java.util.Scanner – import statement is optional, class can be used with name that includes full package hierarchy Prepared By - Rifat Shahriyar 7 Access Protection • Packages act as containers for classes and other subordinate packages • Classes act as containers for data and code • The class is Java’s smallest unit of abstraction • Four categories of visibility for class members – Subclasses in the same package – Non-subclasses in the same package – Subclasses in different package – Classes that are neither in the same package nor subclasses Prepared By - Rifat Shahriyar 8 Access Protection • The three access modifiers provide a variety of ways to produce the many levels of access required – private, public, and protected • The following applies only to members of classes Private No Modifier Protected Public Same class Yes Yes Yes Yes Same package subclass No Yes Yes Yes Same package non-subclass No Yes Yes Yes Different package subclass No No Yes Yes Different package non-subclass No No No Yes For detail example, please refer to codes in package p1 and p2 Prepared By - Rifat Shahriyar 9 Access Protection • Anything declared public can be accessed from anywhere • Anything declared private cannot be seen outside of its class • When a member does not have an explicit access specification, it is visible to subclasses as well as to other classes in the same package (default access) • If you want to allow an element to be seen outside your current package, but only to classes that subclass the class directly, declare that protected Prepared By - Rifat Shahriyar 10 Access Protection • A non-nested class has only two possible access levels – default and public (others are abstract and final) • When a class is declared as public, it is accessible by any other code • If a class has default access, then it can only be accessed by other code within its same package • When a class is public, it must be the only public class declared in the file, and the file must have the same name as the class Prepared By - Rifat Shahriyar 11 Interface Prepared By - Rifat Shahriyar 12 Interface • We can call it a pure abstract class having no concrete methods – All methods declared in an interface are implicitly public and abstract – All variables declared in an interface are implicitly public, static and final • An interface can’t have instance variables, so can’t maintain state information unlike class • A class can only extend from a single class, but a class can implement multiple interfaces Prepared By - Rifat Shahriyar 13 Implementing Interface • When you implement an interface method, it must be declared as public • By implementing an interface, a class signs a contract with the compiler that it will definitely provide implementation of all the methods – If it fails to do so, the class will be considered as abstract – Then it must be declared as abstract and no object of that class can be created • An abstract class specifies what an object is and an interface specifies what the object can do Prepared By - Rifat Shahriyar 14 Simple Interface Prepared By - Rifat Shahriyar 15 Simple Interface Prepared By - Rifat Shahriyar 16 Applying Interfaces Prepared By - Rifat Shahriyar 17 Nested or Member Interfaces Prepared By - Rifat Shahriyar 18 Variables in Interfaces Prepared By - Rifat Shahriyar 19 Extending Interfaces Prepared By - Rifat Shahriyar 20 Default Interface Methods • Prior to Java 8, an interface could not define any implementation whatsoever • The release of Java 8 has changed this by adding a new capability to interface called the default method – A default method lets you define a default implementation for an interface method – Its primary motivation was to provide a means by which interfaces could be expanded without breaking existing code Prepared By - Rifat Shahriyar 21 Default Interface Methods Prepared By - Rifat Shahriyar 22 Multiple Inheritance Issues Prepared By - Rifat Shahriyar 23 Static Methods in Interface Prepared By - Rifat Shahriyar 24 Private Methods in Interface Prepared By - Rifat Shahriyar 25 Exception Prepared By - Rifat Shahriyar 26 Exception Handling • When an exceptional condition arises, an object representing that exception is created and thrown in the method that caused the error – That method may choose to handle the exception or pass it on (caught and processed at some point) • Generated by the Java runtime or by your code – Exceptions thrown by Java relate to fundamental errors that violate the rules of the Java language or the constraints of the Java execution environment – Manually generated exceptions are typically used to report some error condition to the caller of a method Prepared By - Rifat Shahriyar 27 Exception Handling • Java exception handling is managed via five keywords – Program statements that you want to monitor for exceptions are contained within a try block – If an exception occurs within the try block, it is thrown – Your code can catch this exception (using catch) – To manually throw an exception, use the keyword throw – Any exception that is thrown out of a method must be specified as such by a throws clause – Any code that absolutely must be executed after a try block completes is put in a finally block Prepared By - Rifat Shahriyar 28 Exception Classes Hierarchy Image Source: https://simplesnippets.tech/exception-handling-in-java-part-1/ Complete List of Java Exceptions: https://programming.guide/java/list-of-java-exceptions.html Prepared By - Rifat Shahriyar 29 Uncaught Exceptions Prepared By - Rifat Shahriyar 30 Caught Exceptions Prepared By - Rifat Shahriyar 31 Caught Exceptions try can be nested, please refer to ExceptionTryNested.java Prepared By - Rifat Shahriyar 32 finally Prepared By - Rifat Shahriyar 33 Multiple catch clauses catch(ArithmeticException | NullPointerException e) catch(ArithmeticException | Exception e) - Error Prepared By - Rifat Shahriyar 34 throw Prepared By - Rifat Shahriyar 35 throws throws listing is not required for those of RuntimeException or any of their subclasses Prepared By - Rifat Shahriyar 36 Custom Exceptions Prepared By - Rifat Shahriyar 37.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    37 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us