Object Oriented Methodology - OOM - Part 4.PPT, undefined for Object Oriented Programming. Indian Institute of Information Technology (IIIT)

Object Oriented Programming

Description: This document about  Object Oriented Methodology, C++, Java & C #, OOM design issues, Simple Class Example, The three principles of OOP, Inheritance .
Showing pages  1  -  2  of  58
The preview of this document ends here! Please or to read the full document or to download it.
Document information
Uploaded by: krithika
Views: 1000+
Downloads : 50
University: Indian Institute of Information Technology (IIIT)
Address: Engineering
Upload date: 03/09/2011
Embed this document:
No Slide Title

1

Object Oriented Methodology

Prof.Dr. O.P.Vyas3.2Data Mining

2

OOM About OOP :

Procedure Oriented Vs. Object Oriented OOP Concepts

Objects & Classes Writing a Class & instantiating Objects in

Java  Problem solving in OOP methodology

OOPS Characteristics: Invoking Methods, Inheritance: Making use of Inheritance.

Super & Final method

Implementation issues in Java Organizing and Using Classes in Java

Java Features for OOPS Java Package J2SE

Prof.Dr. O.P.Vyas3.3Data Mining

The final Keyword

 The final keyword is used for creating constant variables. A final  variable cannot be changed after it has been assigned a value.

 Now that we have seen inheritance and method overriding, the  other two uses of the final keyword can be : 

Final class. A class can be declared final. A final class  cannot be subclassed.

Final method. A method can be declared final. A final  method cannot be overridden.

 Several of the classes in the Java API are declared final. For  example, the String class is final, so you cannot write a class  that extends String.

3

Prof.Dr. O.P.Vyas3.4Data Mining

Final 

 The final keyword appears before the class keyword when  declaring a final class. For example:

public final class Hourly extends Employee

{

//Class definition...

}  A compiler error is generated if you try to write a class that 

subclasses Hourly. The following class declaration will not compile:

public class PartTime extends Hourly //error!

{

//Class definition...

}

4

Prof.Dr. O.P.Vyas3.5Data Mining

final Methods

When a child class overrides a method in the parent class,  the overridden method is essentially hidden. 

The only way the parent method can be invoked is if the  child method explicitly invokes it. If you write a method with  important behavior that you do not want a child class to  override, you can declare the method final.

 A final method cannot be overridden by a child class. The getClass(), wait(), and notify() methods of the Object 

class are declared final. Their implementations are essential  for the proper behavior of an object, and these methods  cannot be overridden by any class.

5

Prof.Dr. O.P.Vyas3.6Data Mining

The Instantiation Process

A child object is an extension of its parent. When a child  class is instantiated, the parent class object needs to be  constructed first. 

More specifically, a constructor in a parent class must execute 

before any constructor in the child class executes.

In addition, if the child class has a grandparent, the  grandparent object needs to be constructed first. This  process continues up the tree.

6

Prof.Dr. O.P.Vyas3.7Data Mining

Instantiation

 When an object is instantiated, the sequence of events occurs:

1. The new operator invokes a constructor in the child  class.

2. The child class may use the this keyword to invoke  another constructor in the child class. Eventually, a  constructor in the child class will be invoked that does not  have this() as its first line of code.

3. Before any statements in the child constructor execute,  a parent class constructor must be invoked. 

This is done using the super keyword. If a constructor does  not explicitly make a call using super, the compiler will call  super() with empty parentheses, thereby invoking the no­ argument parent class constructor.

7

Prof.Dr. O.P.Vyas3.8Data Mining

Instantiation

4. If the parent class is also a child of another class, the parent  class constructor must invoke a constructor in its parent before  executing any statements. Again, this is done using the super  keyword.

5. This process continues until we reach the top of the  hierarchy tree, which must be the Object class.

6. The constructor in the Object class executes, then the flow  of control returns to the constructor in the class just below  Object in the inheritance hierarchy tree.

7. The constructors execute their way down the hierarchy tree.  The last constructor to execute is actually the one that was  invoked first in Step 1.

8

Prof.Dr. O.P.Vyas3.9Data Mining

public class Television

{

public int channel, volume;

public Television()

{

this(4,5);

System.out.println(“Inside  Television()”);

}

public Television(int c, int v)

{

System.out.println(“Inside  Television(int, int)”);

channel = c;

volume = v;

}

}

public class BigScreenTV extends  Television

{

public String aspectRatio;

public short size;

public BigScreenTV()

{

super();

aspectRatio = “unknown”;

size = 40;

System.out.println(“Inside  BigScreenTV()”);

}

}

9

Prof.Dr. O.P.Vyas3.10Data Mining

 Notice that the BigScreenTV constructor explicitly invokes the no­ argument constructor in Television using the statement:

super(); The following ConstructorDemo program instantiates a BigScreenTV 

object. Try to determine the output, 

public class ConstructorDemo

{

public static void main(String [] args)

{

System.out.println(“Constructing a big screen TV”);

BigScreenTV tv = new BigScreenTV();

System.out.println(“Done constructing TV”);

}

}

10

Prof.Dr. O.P.Vyas3.11Data Mining

11

Within main() of ConstructorDemo, we instantiate a  BigScreenTV object

This statement invokes the no­argument constructor  in the BigScreenTV class. 

The constructor in BigScreenTV invokes the no­ argument constructor in Television. 

The no­argument Television constructor invokes the  other Television constructor, which does not have a  this() or super() statement. 

Therefore, the compiler added super(), causing the no­ argument constructor in Object to be invoked.

Instantiation

Prof.Dr. O.P.Vyas3.12Data Mining

When the Object constructor is finished, control returns to  the Television constructor with two arguments, which  executes and outputs:

Inside Television(int, int) Control then returns to the no­argument Television 

constructor, which executes and outputs:

Inside Television() Control then returns to the BigScreenTV constructor, which 

executes last and outputs:

Inside BigScreenTV() After all three constructors are done, the object is 

instantiated and the new operator returns a reference to the  new BigScreenTV object. 

The entire output of the ConstructorDemo program is  shown in Figure 

12

Prof.Dr. O.P.Vyas3.13Data Mining

Object Oriented Methodology Objects & Classes in Java Lab. Exercises

Objective : Writing a Class in Java 

 Instantiating an Object : Understanding the Methods,  references etc.

 Inheritance: Characteristics & Implementation

Method Overloading & Overriding

Java Features for OOM: Organizing Classes  How to Add class to a package  Java Platform & OOM  Packages in Java Platform

13

Prof.Dr. O.P.Vyas3.14Data Mining

Organizing Classes in OOPS As we have seen that we create Java Class for 

problem solving in OOM. As for each and every component , there is a Class 

written, consequently we are having large number of  Classes.

We are using various OOM characteristics like  Inheritance etc. for making use of Class  Characteristics. 

For the efficient handling of the Classes, for re­ usability of some classes( which are required very  often in many problem solving) and also to use many  inherent Core / Foundation Classes, we need to  Organize these Classes with useful mechanism. 

14

Prof.Dr. O.P.Vyas3.15Data Mining

Package package is a grouping of related types providing access protection 

and name space management. The types are often referred to here simply as classes and 

interfaces. In general, a package can contain the other kinds of  types also;. Enumerated types , Annotations 

An interface is a collection of abstract methods that are  implemented by a class. A class uses the implements keyword to  implement an interface.

To make types easier to find and use, to avoid naming conflicts, and  to control access, programmers bundle groups of related types into  packages.

Conceptually you can think of packages as being similar to different  folders on your computer. 

Because software written in the Java programming language can be  composed of hundreds or thousands of individual classes, it makes  sense to keep things organized by placing related classes and  interfaces into packages. 

15

Prof.Dr. O.P.Vyas3.16Data Mining

Package Every class belongs to a package. Packages have two basic 

purposes:

1) Packages provide a mechanism for organizing classes.

2) Packages provide a namespace for the classes within the  package.

When developing a Java program, you put classes that go  together in the same package.

Java packages can be stored in compressed files called JAR  files,  allowing classes to download faster as a group rather  than one at a time. 

Programmers also typically use packages to organize classes  belonging to the same category or providing similar  functionality.

Classes in the same package can access each other's  package­access members. 

16

Prof.Dr. O.P.Vyas3.17Data Mining

Adding a Class to a Package

A class is added to a package using the package keyword.  The package statement must be the first statement in your  source code 

For example, suppose we wanted to create a package named  payroll for the Employee, Salary, and Hourly classes used in  our program to pay employees.

The package declaration must appear first in the statements  in the Employee source code. 

The class will not compile if an attempt is made to put any  statement besides comments before the package declaration.

17

Prof.Dr. O.P.Vyas3.18Data Mining

package payroll;

public class Employee

{ public String name;

public String address;

public int SSN;

public int number;

public Employee(String name, String address, int SSN, int number)

{

System.out.println(“Constructing an Employee”);

this.name = name;

this.address = address;

this.SSN = SSN;

this.number = number;

}

public void mailCheck()

{

System.out.println(“Mailing a check to “ + this.name

+ “ “ + this.address);

}

}

18

Prof.Dr. O.P.Vyas3.19Data Mining

Adding a Class to Package  If we want Salary and Hourly in the payroll package also, we simply add 

the package statement to their class definition as well. For example, the  Salary class would look similar to:

package payroll;

public class Salary extends Employee

{

//Salary definition...

}

and the Hourly class would look similar to:

package payroll;

public class Hourly extends Employee

{

//Hourly definition...

}

19

Prof.Dr. O.P.Vyas3.20Data Mining

The Namespace Created by Packages

Packages create a namespace for all classes. If a class is in a  package, the name of the package becomes a part of the  name of the class. The package name is prefixed to the name  of your class, separated by the dot operator.

For example, the Employee class is declared in the payroll  package. The Employee class is now referred to:

payroll.Employee The Employee class can no longer be referred to as simply 

Employee. The package name payroll must be used by any  other class outside of the payroll package that wants to use  the Employee class. Similarly, the Salary and Hourly classes  become:

payroll.Salary payroll.Hourly

20

Prof.Dr. O.P.Vyas3.21Data Mining

Naming of Packages in Java The Java naming convention recommends package names 

be all lowercase, unless an acronym is part of the name. A  package name will be typically multiple terms, and each  term is separated by the dot operator. 

Examples include java.lang, java.awt.event,  org.omg.CORBA, and org.omg.stub .java.rmi.

Classes in the same package do not need to use the  package name when referring to each other. This is one of  the benefits of putting classes that go together in the same  package.

 For example, the Salary class extends Employee and can  use the name Employee instead of payroll.Employee .

21

Prof.Dr. O.P.Vyas3.22Data Mining

Naming Packages

Packages create a namespace, with the name of the package  becoming the prefix for the name of the class. 

The purpose of a namespace is to avoid naming conflicts where  two classes have the same name.

Suppose that you write a Vehicle class, and I write a Vehicle  class. 

How can we tell them apart? That’s easy if they are in two  different packages. For example, I can put my Vehicle class in a  package named rich:

package rich;

public class Vehicle

{

//My vehicle class

}

22

Prof.Dr. O.P.Vyas3.23Data Mining

Your Vehicle class can be in a different package:

package student;

public class Vehicle

{

//Your vehicle class

} The name of my Vehicle class is now rich.Vehicle, and the name of your 

Vehicle class is now student.Vehicle. The following statements  instantiate one of each type:

rich.Vehicle mine = new rich.Vehicle();

student.Vehicle yours = new student.Vehicle();

Of course, this works fine if you and I use different package names; but  what if we both choose rich for the package name?

 We are with the naming conflict because both of our classes would be  named rich.Vehicle.

In the world of Java development companies use a universally agreed­ upon naming convention of including the company’s Web site URL as  part of the package name.

23

Prof.Dr. O.P.Vyas3.24Data Mining

For example, Sun Microsystem’sWeb site URL is www.sun.com. If you  write a Vehicle class as an employee of Sun, your package name would  be similar to:

package com.sun.rich;

public class Vehicle

{

//Your Vehicle class

}  If u  work for a company whose Web site is www.javalicense.com. The 

package name for my Vehicle class would include com.javalicense:

public class Vehicle

{

//My vehicle class

}

24

Prof.Dr. O.P.Vyas3.25Data Mining

Even though we both picked rich as part of our package  name, the two Vehicle classes no longer have a naming  conflict. One of the classes is named  com.javalicense.rich.Vehicle, and the other is named  com.sun.rich.Vehicle.

Many of the packages in the J2SE begin with java, to denote  their role in the standard Java language. 

Most of the packages in the J2EE APIs begin with javax in  the their name, such as javax.servlet and javax.ejb. 

The “x” is for extension, denoting that the package is an  extension of the Java language.

25

Prof.Dr. O.P.Vyas3.26Data Mining

The Directory Structure of Packages

Two major results occur when a class is placed in a package:

The name of the package becomes a part of the name of the  class, as we just discussed.

The name of the package must match the directory structure  where the corresponding bytecode resides.

In other words, the name of the package affects where you  store your bytecode.

Suppose, for example, a class named Vehicle is in the  com.sun.trans package, which contains classes representing  modes of transportation. The fully qualified name of this  class is:

com.sun.trans.Vehicle

26

Prof.Dr. O.P.Vyas3.27Data Mining

Directory Structure The corresponding bytecode for the Vehicle class is in a file 

named Vehicle.class.  Because Vehicle is in the com.sun.trans package, Vehicle.class 

needs to be in a directory named trans, which is a subdirectory  of sun, which is a subdirectory of com.

The com directory can appear anywhere on your hard drive. For  example, if com is in a folder called c:\my_bytecode, the path  for Vehicle.class would be:

c:\my_bytecode\com\sun\trans\Vehicle.class The folder c:\my_bytecode is arbitrary, but the \com\sun\trans 

directory structure must exist and contain the file Vehicle.class. Java is case sensitive. Because the package name 

com.sun.trans is all lowercase, the directory names need to be  all lowercase, even though directory names in Windows and  DOS are not case sensitive.

27

Prof.Dr. O.P.Vyas3.28Data Mining

Directory Structure The necessary file structure can be created in two ways:

1) You can manually create the directories and save your *.java  files in the same folder as your *.class files. The *.java files can  then be compiled in the usual manner, with the *.class being  generated in the same directory as the *.java file.

2) You can use the ­d flag of the javac compiler, specifying an  output directory where you want your bytecode to go. If the  required package directory structure does not exist, the ­d flag  will create the directories and put  *.class file in the appropriate  folder.

Both options have their advantages. The first option is convenient in  terms of managing your source code on your hard drive, plus  the  files are in the required format for using the javadoc tool (discussed  later ). 

The  second  option  is  convenient  if  you  want  to  separate  your  bytecode  from  your  source  code,  a  common  need  in  Java  when  deploying applications (because the bytecode is all that is needed).

28

Prof.Dr. O.P.Vyas3.29Data Mining

OOM & Java Platform

We have studied many OOM concepts including that of  Class & Objects, Fields & Methods with various access  specifiers, Inheritance.

Also that Java provides many inherent support as technical  infrastructure so that program development can be more  focused on problem solving.

As we have seen many useful features in Java Object Class  and many useful methods which can be used, overridden  and overloaded as per the needs.

There are still many interesting developments in Java which  uses OOP concepts for effective problem solving.

29

Prof.Dr. O.P.Vyas3.30Data Mining

Package

The Java platform provides an enormous class library (a set of  packages) suitable for use in your own applications. 

This library is known as the "Application Programming  Interface", or "API" . Its packages represent the tasks most  commonly associated with general­purpose programming. Ex.

 a String object contains state and behavior for character  strings; 

a File object allows a programmer to easily create, delete,  inspect, compare, or modify a file on the file system; 

a Socket object allows for the creation and use of network  sockets; various GUI objects control buttons and  checkboxes and anything else related to graphical user  interfaces.

 Socket programming refers to the use of a set of APIs for sending  and receiving data over a network. The socket APIs originated on the  BSD OS and are now found on UNIX, Linux, Windows, and Mac OS.  Sockets can be programmed in any programming language

30

Prof.Dr. O.P.Vyas3.31Data Mining

Java Terminologies & OOM

There are JDK, Java SDK, J2SE & JEE  used very often.  Is it necessary to know about them while doing OOM? 

We  can  go  on  and  on  because  there  are  many  such  terms  used  in  Java  technology  but  for  effective  OOM  implementations,  we  needed  to  know  atleast  some  of  them.

JDK is an old term and means "Java Development Kit".  This was replaced some time ago with J2SDK (Java 2  Software Development Kit). This one contains compilers  and class library source code.

Sun now refers to the whole area of the standard edition  as  J2SE,  to  fall  in  line with  the  naming with  J2EE  and  J2ME.  When  you  download  Suns  version  of  the  J2SE  specification, it is now referred to as the Java 2 SDK.

 What is J2EE  & J2ME ?

Prof.Dr. O.P.Vyas3.32Data Mining

Abbreviations

JDK = Java Development Kit ­ if you want to develop or just  compile Java programs (*.java ­> *.class ­> *.jar)

 JRE = Java Runtime Environment ­ if you want to execute a  Java program.

 J2SE = Java 2 Standard Edition ­ (JDK+JRE) ­ for common  purposes for example on PCs 

J2EE = Java 2 Enterprise Edition ­ AFAIK framework and  methodology to produce applications in 3­layer technology  (robust applications) 

J2ME = Java 2 Micro Edition ­ (JDK+JRE) ­ for small devices  (cellular phones, palmtops etc.) 

SDK = Software Development Kit

32

Prof.Dr. O.P.Vyas3.33Data Mining

J2SE

J2SE is a collection of Java Programming Language API 

(Application programming interface) that is very useful to 

many Java platform programs

J2SE platform has been developed under the Java umbrella 

and primarily used for writing applets and other Java­based 

applications. It is mostly used for individual Computers

33

Prof.Dr. O.P.Vyas3.34Data Mining

Java SE 6

The current version, Java SE 6 (December 11, 2006) —  Codename Mustang — is bundled with a database manager,  facilitates the use of scripting languages with the JVM and  has Visual Basic language support. 

As of this version, Sun replaced the name "J2SE" with Java  SE and dropped the ".0" from the version number.

Other major changes include support for pluggable  annotations, lots of GUI improvements, including native UI  enhancements to support the look and feel of Windows  Vista, and improvements to the Java Platform Debugger  Architecture (JPDA) & JVM Tool Interface for better  monitoring and troubleshooting

34

Prof.Dr. O.P.Vyas3.35Data Mining

There are literally thousands of classes to choose  from. This allows the programmer, to focus on the  design of his particular application, rather than the  infrastructure required to make it work. Following is  needed bookmark for Java programmers

http://java.sun.com/javase/6/docs/api/index.html For example, in the J2SE, the classes that are used to perform

input and output are in the java.io and java.nio packages. The fundamental classes of the Java language are in the

java.lang package. The classes used for networking and sockets are in the java.net package.

Socket: A socket is one end­point of a two­way communication link between  two programs running on the network. Socket classes are used to represent the  connection between a client program and a server program. The java.net  package provides two classes­­Socket and ServerSocket­­that implement the  client side of the connection and the server side of the connection, respectively

35

Prof.Dr. O.P.Vyas3.36Data Mining

Packages :Standard Edition 6 API Specification   The Java Package name consists of words separated by 

periods. The first part of the name represents the organization  which created the package. The remaining words of the Java  Package name reflect the contents of the package. 

The Java Package name also reflects its directory structure.  For example, the Java­supplied package "java.awt" 

The first part of that package name "java" represents the  organization that developed the package (Sun's Java group). 

The second part of the package name "awt" stands for the  contents of the package, in this case the Abstract Window  Toolkit. 

The "java.awt" package resides in a directory structure which  reflects the package name: <path>/classes/java/awt/*.class 

All classes contained in the java.awt package reside in the  above directory.

Prof.Dr. O.P.Vyas3.37Data Mining

Package in Java

The  classes  used  for  creating  GUI  applications  are  in  the java.awt, javax.swing, and other packages. 

We  can  go  on  and  on  because  there  are  about  136  packages  in  the  J2SE,  depending  on  the  version  of  J2SE.

J2SE is a collection of Java Programming Language API  (Application programming  interface)  that  is very useful  to many Java platform programs

  J2SE  platform  has  been  developed  under  the  Java  umbrella  and  primarily  used  for  writing  applets  and  other  Java­based  applications.  It  is  mostly  used  for  individual Computers

Prof.Dr. O.P.Vyas3.38Data Mining

J2SE

J2SE provide the facility to users to see Flash movies or  hear audio files by clicking on a Web page link. 

As the user clicks, page goes into the browser environment  and begin the process of launching  application­within­an­ application to play the requested video or sound  application. 

So many online games are being developed on J2SE.  JavaBeans can also be developed by using J2SE.

38

Prof.Dr. O.P.Vyas3.39Data Mining

Core/Foundation Packages in Java 6

39

Name of Package Description

java.lang — basic language functionality and fundamental types

java.util — collection data structure classes

java.io — file operations

java.math — multiprecision arithmetics

java.nio — the New I/O framework for Java

java.net — networking operations, sockets, DNS lookups, .

java.security — key generation, encryption and decryption

java.sql — Java Database Connectivity (JDBC) to access databases

java.awt — basic hierarchy of packages for native GUI components

javax.swing — hierarchy of packages for platform­independent  rich GUI components

java.applet — classes for creating and implementing applets

Prof.Dr. O.P.Vyas3.40Data Mining

The import Keyword  If a class wants to use another class in the same package, the package name 

does not need to be used. Classes in the same package “find each other”  without any special syntax.

 For example, suppose a class named Boss is added to the payroll package  that already contains Employee. 

 The Boss can then refer to the Employee class without using the payroll prefix,  as demonstrated by the following Boss class.

package payroll;

public class Boss

{

public void payEmployee(Employee e)

{

e.mailCheck();

}

}

40

Prof.Dr. O.P.Vyas3.41Data Mining

Import..  The payEmployee() method of the Boss class has a parameter of type 

Employee. The parameter is actually of type payroll.Employee, but  because Boss is in the payroll package, the payroll prefix of Employee is  not needed.

 What happens if Boss is not in the payroll package? The Boss class  must then use one of the following techniques for referring to a class in a  different package.

 The fully qualified name of the class can be used. For example,

payroll.Employee  The package can be imported using the import keyword and the wild 

card (*). For example,

import payroll.*;   The class itself can be imported using the import keyword. For example,

import payroll.Employee;

A class file can contain any number of import statements. The import  statements must appear after the package statement and before the  class declaration.

41

Prof.Dr. O.P.Vyas3.42Data Mining

Import Suppose that the Boss class is in a package named management. 

The following Boss class uses the fully qualified name when  referring to the Employee class in the payroll package.

package management;

public class Boss

{

public void payEmployee(payroll.Employee e)

{

e.mailCheck();

}

}

42

Prof.Dr. O.P.Vyas3.43Data Mining

43

Because Boss uses the full name payroll.Employee, the payroll  package does not need to be imported. If the Boss class imports  the payroll package, however, it can refer to Employee without  using the payroll prefix, as demonstrated by the following Boss  class.

package management;

import payroll.*;

public class Boss

{

public void payEmployee(Employee e)

{

e.mailCheck();

}

public void payEmployee(Salary s)

{

s.computePay();

}

public void payEmployee(Hourly h)

{

h.computePay();

}

}

Prof.Dr. O.P.Vyas3.44Data Mining

This Boss class has three overloaded versions of  payEmployee(), one for each type of employee, and therefore  needs to refer to three classes in the payroll package:  Employee, Salary, and Hourly. The statement:

import payroll.*;

     tells the compiler to look in the payroll package when attempting to  locate the classes used by Boss; therefore, this Boss class does  not need to use the payroll prefix when referring to classes from  the payroll package.

44

Prof.Dr. O.P.Vyas3.45Data Mining

Import…. You never need to use import statements, because you can 

always refer to a class by its fully qualified name (the name of  the class prefixed with its package name). 

The import keyword is strictly a convenience. In fact, when  compiling your classes, the compiler removes all import  statements and replaces all class names with their fully  qualified name. That said, you will use import statements all the  time. Using the fully qualified name for every class is tedious  and can actually make your code more difficult to read.

There is no size or performance benefit gained from importing  classes individually versus importing an entire package. The  compiled bytecode will look the exact same because the  compiler removes your import statements and replaces all  class names with their fully qualified name.

45

Prof.Dr. O.P.Vyas3.46Data Mining

 The third option when using a class from another package is to import the class itself. The following Boss  class individually imports each class that it is using from another package. package management;

import payroll.Employee;

import payroll.Hourly;

import payroll.Salary;

public class Boss

{

public void payEmployee(Employee e)

{

e.mailCheck();

}

public void payEmployee(Salary s)

{

s.computePay();

}

182 Chapter 7

public void payEmployee(Hourly h)

{

h.computePay();

}

}

46

Prof.Dr. O.P.Vyas3.47Data Mining

 We have been using classes such as String, System, Math, and  Object throughout the examples.

  Why did we not have to use the import keyword? Because each  of these classes is in the java.lang package. The java.lang  package is implicitly imported in every source code file.

 In fact, you can import java.lang if you like, as the following class  does, but it is never necessary to do so:

package electronics;

import java.lang.*;

public class Radio extends Object

{

public String make, model;

}

47

Prof.Dr. O.P.Vyas3.48Data Mining

48

Prof.Dr. O.P.Vyas3.49Data Mining

Visibility  Public keyword applied to a class, makes it available/visible 

everywhere. Applied to a method or variable, completely visible.

Private fields or methods for a class only visible within that  class. Private members are not visible within subclasses, and  are notinherited.

Protected members of a class are visible within the class,  subclasses and also within all classes that are in the same  package as that class.

49

Prof.Dr. O.P.Vyas3.50Data Mining

50

Prof.Dr. O.P.Vyas3.51Data Mining

51

Prof.Dr. O.P.Vyas3.52Data Mining

52

Prof.Dr. O.P.Vyas3.53Data Mining

Compile-time EnvironmentCompile-time Environment

Java Bytecodes

move locally or through

network

Java Source (.java)

Java Compiler

Java Bytecode (.class )

Java Interpreter

Just in Time

Compiler

Runtime System

Class Loader

Bytecode Verifier

Java Class

Libraries

Operating System

Hardware

Java Virtual

machine

How JAVA works…!

Prof.Dr. O.P.Vyas3.54Data Mining

How it works…!

 Java is independent only for one reason: Only depends on the Java Virtual Machine  (JVM),

code is compiled to bytecode, which is  interpreted by the resident JVM,

JIT (just in time) compilers attempt to  increase speed.

Prof.Dr. O.P.Vyas3.55Data Mining 3-55

Java SDK (a.k.a. JDK) — Software Development Kit

 javac Java compiler

 java Java interpreter

 appletviewer  tests applets without a  browser

 jar packs classes into jar  files (packages)

 javadoc generates HTML  documentation  (“docs”) from source

 jdb command­line  debugger

All these are command-line tools, no GUI

Prof.Dr. O.P.Vyas3.56Data Mining 3-56

Java SDK (cont’d)

 Available free from Sun Microsystems.

 All documentation is online:

 Lots of additional Java resources on the  Internet:

http://java.sun.com/j2se/1.4/docs

http://www.skylit.com/javamethods/appxg.html

Prof.Dr. O.P.Vyas3.57Data Mining 3-57

Java IDEs

 GUI front end for SDK

 Integrates editor, javac, java, appletviewer,  debugger, other tools: specialized Java editor with syntax highlighting,  autoindent, tab setting, etc.

clicking on a compiler error message takes you  to the offending source code line

 Some IDEs have their own copy of SDK;  others need SDK installed separately.

Prof.Dr. O.P.Vyas3.58Data Mining

NetBeans

NetBeans refers to both a platform framework for Java  desktop applications, and an integrated development  environment (IDE) for developing with Java, JavaScript,  PHP, Python, Ruby, Groovy, C, C++, and Clojure.

The NetBeans IDE is written in Java and runs everywhere  where a JVM is installed, including Windows, Mac OS,  Linux, and Solaris. 

A JDK is required for Java development functionality, the  PHP bundle can be used with just the JVM.

The NetBeans Platform allows applications to be developed  from a set of modular software components called modules.  Applications based on the NetBeans platform (including the  NetBeans IDE) can be extended by third party developers

58

Docsity is not optimized for the browser you're using. In order to have a better experience please switch to Google Chrome, Firefox, Internet Explorer 9+ or Safari! Download Google Chrome