You are on page 1of 51

A Summer Training Report

On

“JAVA”
at
“Ezbiz Technologies Pvt. Ltd.”
In partial fulfillment of the requirements
for the degree of

BACHELOR OF TECHNOLOGY

in

COMPUTER SCIENCE AND ENGINEERING


Submitted by
Sarthak Khandelwal (1904500100054)
Submitted to
Mr. Shailesh Saxena
Assistant Professor

Department of Computer Science and Engineering


Shri Ram Murti Smarak College of Engineering ,Technology & Research,
Bareilly
Dr. A.P.J. Abdul Kalam Technical University, Lucknow
AUGUST,2022
CERTIFICATE
(From company)
ACKNOWLEGEMENT
(From company)
TABLE OF CONTENTS

ACKNOWLEDGEMENTS iv
LIST OF TABLES v
LIST OF FIGURES vi
LIST OF ABBREVIATIONS vii
CHAPTER 1 INTRODUCTION to COMPANY 1
CHAPTER 2 Technology Learned
2.1 Introduction to JAVA 2
2.2 The JAVA platform 3
2.3 Installation of JAVA 4
2.4 Configuring Variable 5
2.5 Write, Compile and run JAVA program 7
2.6 Package 9
2.7 Classes and Objects 10
2.8 Inheritance 10
2.9 Variable and Method 11
2.10 Modifiers and Import statement 14
2.11 Interface 15
2.12 Working with classes 18
2.13 IDE 24
2.14 History of JAVA 35
2.15 Features of JAVA 37
CHAPTER 3 Introduction of Project 39
3.1 Project Background 40
3.2 Project Requirements 40
3.3 Project Methodology 41
CHAPTER 4 Result & Discussion 42
CHAPTER 5 Future Enhancement of project 44
CHAPTER 6 References 45
ACKNOWLEDGEMENT

It gives us a great sense of pleasure to present the report of the B. Tech Internship during B.
Tech summer break after VI sem. We owe special debt of gratitude to Mr. Saransh
Khandelwal , Internship supervisor, Ezbiz Technologies, Noida for his constant support and
guidance throughout the training. His sincerity, thoroughness and perseverance have been a
constant source of inspiration for us. It is only his cognizant efforts that our endeavors have
seen light of the day.

We also do not like to miss the opportunity to acknowledge the contribution of all faculty
members of the department for their kind assistance and cooperation during the development
of our project. Last but not the least, we acknowledge our friends for their contribution in the
completion of the project.

Signature…………………………………

Roll No …………………………………..

Name ………………………………………

Date ………………………………………….
LIST OF ABBREVIATIONS

AAM Active Appearance Model

ICA Independent Component Analysis

ISC Increment Sign Correlation

PCA Principal Component Analysis

ROC Receiver Operating Characteristics

ROI Return On Investment

ii
CHAPTER 1

INTRODUCTION

Ezbiz Technologies is an IT services & product engineering company founded in April 2017.
We are a team of technology experts in diverse domains. Our customer-centric approach
comes from our vast practical experience & understanding, which our client's needs more
than just technology professionals.

We offer a strong expertise of application design & development in common and niche skill
areas. Throughout our journey, Ezbiz Technologies has won & executed several projects
globally.

Working with established organizations & startups, we understand the said & unsaid expecta-
tions of our patrons pertaining to the criticality & sensitivity involved in outsourcing product
development. We work like a partner in building applications & products.

SSDN roadmap starts with a vision and a mission, which aims to develop the overall person-
ality of the students not only in terms of turning them into excellent professionals but also,
nurture them into productive individuals for the society. People: Be a great place to work
where people are stimulated to be the finest, they can be. Portfolio: Bring to the world a port-
folio of aspect education with placement cooperation and be the initial in the field of Devel-
opment. Partners: Nourishment of winning network of customers and Clients, together SSDN
create mutual and long-lasting value. Profit: Maximize long-term return while being attentive
of our overall responsibilities.

iii
CHAPTER 2

TECHNOLOGY LEARNED
2.1 INTRODUCTION TO JAVA

With the invention of microprocessors, the world is scientifically developed with


sophisticated equipments, systems, and devices. Microprocessors are used in computers,
televisions, and fax machines. Even the hand-held devices such as pagers, PDAs (Personal
Digital Assistant), and cell phones make use of microprocessors. All these electronic devices
are helpful because of their communication capabilities. With the increasing capabilities and
decreasing cost of information processing and networking technologies, the network is
growing rapidly for transmitting information through electronic systems.

Internet is the network of networks between different types of computers located at different
places to transmit information. Information can reach to any place in the world quickly at a
cheaper rate through the Internet. Thus, the Internet has made the world a global village for
information exchange. The emerging infrastructure of electronic devices and interconnected
computer networks create an environment that presents new challenges to software industries.
for this emerging computing environment, Java process to be a well – suited programming
language. it is found suitable for networked environments involving a great variety of
computer and devices. Java has many characteristics that have contributed to its popularity:

Platform independence - Many languages are compatible with only one platform. Java was
specifically designed so that it would run on any computer, regardless if it was running
Windows, Linux, Mac, Unix or any of the other operating systems.

Simple and easy to use - Java's creators tried to design it so code could be written efficiently
and easily.

Multi-functional - Java can produce many applications from command-line programs to


applets to Swing windows (basically, sophisticated graphical user interfaces). Java does have
some drawbacks. Since it has automated garbage collection, it can tend to use more memory
than other similar languages. There are often implementation differences on different
platforms, which have led to Java being described as a "write once, test everywhere" system.

iv
Lastly, since it uses an abstract "virtual machine", a generic Java program doesn't have access
to the Native API's on a system directly. None of these issues are fatal, but it can mean that
Java isn't an appropriate choice for a particular piece of software.

2.2 The JAVA Platform

One thing that distinguished Java from some other languages is its ability to run the same
compiled code across multiple operating systems. In other languages, the source code (code
that is written by the programmer), is compiled by a compiler into an executable file. This file
is in machine language, and is intended for a single operating system/processor combination,
so the programmer would have to re-compile the program separately for each new operating
system/processor combination. Java is different in that it does not compile the code directly
into machine language code. Compilation creates bytecode out of the source code. Bytecode
generally looks something like this:

a7 f4 73 5a 1b 92 7d

When the code is run by the user, it is processed by something called the Java Virtual
Machine (JVM). The JVM is essentially an interpreter for the bytecode. It goes through the
bytecode and runs it. There are different versions of the JVM that are compatible with each
OS and can run the same code. There is virtually no difference for the end-user, but this
makes it a lot easier for programmers doing software development.

Java and Open Source :- In 2006 Sun started to make Java available under the GNU General
Public License (GPL). Oracle continues this project called OpenJDK.

Java Virtual machine :- The Java virtual machine (JVM) is a software implementation of a
computer that executes programs like a real machine. The Java virtual machine is written
specifically for a specific operating system, e.g. for Linux a special implementation is
required as well as for Windows. Java programs are compiled by the Java compiler into
bytecode. The Java virtual machine interprets this bytecode and executes the Java program.

Java Runtime Environment vs. Java Development Kit  A Java distribution comes typically
in two flavors, the Java Runtime Environment (JRE) and the Java Development Kit (JDK). 
The Java runtime environment (JRE) consists of the JVM and the Java class libraries and
contains the necessary functionality to start Java programs.  The JDK contains in addition

v
the development tools necessary to create Java programs. The JDK consists therefore of a
Java compiler, the Java virtual machine, and the Java class libraries.

2.3 Installation of JAVA

Check installation - Java might already be installed on your machine. You can test this by
opening a console (if you are using Windows: Win+R, enter cmd and press Enter) and by
typing in the following command: java -version

If Java is correctly installed, you should see some information about your Java installation. If
the command line returns the information that the program could not be found, you have to
install Java.

Installing the Java Development Kit - Before installing the Java Development Kit (JDK), you
should probably know what it is. It is distributed by Oracle. It contains the core libraries and
compiler required to develop Java. The JDK should not be confused with the JRE (Java
Runtime Environment). The JRE is a JVM for running, as opposed to compiling, Java
programs.

Downloading and Installing :- To download and install the JDK, go to


http://www.oracle.com/technetwork/java/javase/downloads/index.html. Click on "JDK with
NetBeans Bundle". Follow the instructions for downloading the JDK installation file.
Windows: If you are running Windows, simply run the executable file and follow the
installation instructions. Unix, Solaris, or Linux: For Linux and Unix, download the "jdk1
6.0" for Linux systems. Save the downloaded file in any drive. Once you have saved the file,
extract it to a place that you can remember, by using Terminal or by double clicking on the
file. When you have finished extracting the file, copy the JDK 1.6.0 folder and paste it in the
usr/local(To paste to the usr/local directory, you have to be in root) so that every user can use
the java files. You can delete the downloaded zip file so that it doesn't take up space on your
drive.

Macintosh: The latest available JDK is automatically installed by the operating system.
Because Java for Macintosh is developed and maintained by Apple, in coordination with Sun,
the current version on the Macintosh may not be the current version that is available Note on
Editions  The JDK comes in three editions.

vi
Java Standard Edition (JSE) – This version is the basic platform for Java. The course will
focus on this edition.

Java Enterprise Edition (JEE) – This edition is mainly for developing and running distributed
multitier architecture Java applications, based largely on modular software components
running on an application server. We will not be covering this version in the course.

Java Micro Edition (JME) – This edition is primarily for developing programs to run on
consumer appliances, such as PDAs and cell phones.

2.4 Configuring Variables

Before writing code, it is recommended that you set the Path variable on your system so you
can compile your code more easily.

For Windows Users - From the Control Panel, double click "System" (System and
Maintenance in Vista)

For Windows 7 or Vista, click on "System," "Advanced System Settings" on the left, and
then on "Environment Variables."

For XP and 2000, click on the "Advanced" tab and click on "Environment Variables", For
NT, click on the "Environment" tab. Select the Path variable and click "Edit", Add the path
to the bin directory of where Java is installed on your hard drive. It should probably be: C:\
Program Files\Java\jdk1.6.0_20\bin unless you changed it during installation. Click OK.

For Linux and UNIX - One way to set your path in Linux/Unix is to add a path export to your
bash profile.

In order to do this, first open your bash profile in a text editor. For example,

pico ~/.bash_profile  Then add this line:  export PATH=$PATH:/usr/local/jdk/bin  Note


that the path to the java directory "/usr/local/jdk/bin" may be different on your machine,
Restart your shell.

For Macintosh , Apple sets everything up for you. Sit back and relax.

vii
The only drawback is that because Apple handles development and maintenance of Java on
the Mac, there is usually a delay from the time that a new version is released by Sun and the
time that the new version is released on the Mac. Also, getting the latest version sometimes
requires an operating system upgrade. Oh well, you can't have everything. Validate
installation, switch again to the command line and run the following command. java -version

The output should be similar to the following output.  java version "1.7.0_25" OpenJDK
Runtime Environment (IcedTea 2.3.10) (7u25-2.3.10-1ubuntu0.13.04.2) OpenJDK 64-Bit
Server VM (build 23.7-b01, mixed mode) Development Process with Java  Java source files
are written as plain text documents. The programmer typically writes Java source code in an
Integrated Development Environment (IDE) for programming. An IDE supports the
programmer in the task of writing code, e.g. it provides auto-formatting of the source code,
highlighting of the important keywords, etc.

At some point the programmer (or the IDE) calls the Java compiler (javac). The Java
compiler creates the bytecode instructions. These instructions are stored in .class files and can
be executed by the Java Virtual Machine.

Garbage collector - The JVM automatically re-collects the memory which is not referred to
by other objects. The java garbage collector checks all object references and find the objects
which can be automatically released.

While the garbage collector releases the programmer from the need to explicitly manage
memory the programmer still need to ensure that he does not keep unneeded object references
otherwise the garbage collector cannot release the associated memory. Keeping unneeded
object references are typically called memory leaks. 0132cs111116 Classpath  The
classpath defines where the Java compiler and Java runtime look for .class files to load. This
instructions can be used in the Java program.

For example if you want to use an external Java library you have to add this library to your
classpath to use it in your program.

2.5 Write, Compile and Run JAVA program

viii
Write source code - The following Java program is developed under Linux using a text editor
and the command line. The process on other operating system should be similar and but is not
covered in this description.

Select or create a new directory which will be used for your Java development. In this
description the path \home\vogella\javastarter is used. On Microsoft Windows you might
want to use c:\temp\javastarter. This path is called javadir in the following description. Open
a text editor which supports plain text, e.g. gedit under Linux or Notepad under Windows and
write the following source code.

the source code in your javadir directory with the HelloWorld.java filename. The name of a
Java source file must always equals the class name (within the source code) and end with
the .java extension. In this example the filename must be HelloWorld.java because the class
is called HelloWorld.

Compile and run your Java program - Open a shell for command line access. Switch to the
javadir directory with the command cd javadir, for example in the above example via the cd \
home\vogella\javastarter command. Use the ls command (dir under Microsoft Windows) to
verify that the source file is in the directory. Compile your Java source file into a class file
with the following command.

javac HelloWorld.java - Afterwards list again the content of the directory with the ls or dir
command. The directory contains now a file "HelloWorld.class". If you see this file you have

ix
successfully compiled your first Java source code into bytecode. You can now start your
compiled Java program. Ensure that you are still in the jardir directory and enter the
following command to start your Java program.

java HelloWorld - The system should write "Hello World" on the command line.

Using the classpath - You can use the classpath to run the program from another place in your
directory.

Switch to the command line, e.g. under Windows Start-> Run -> cmd. Switch to any
directory you want. Type: java HelloWorld - If you are not in the directory in which the
compiled class is stored then the system should result an error message Exception in thread
"main" java.lang.NoClassDefFoundError: test/TestClass.

To use the class type the following command. Replace "mydirectory" with the directory
which contains the test directory. You should again see the "HelloWorld" output.

java -classpath "mydirectory" HelloWorld Java basic terms

Basics: Package, Class and Object It is important to understand the base terminology of Java
in terms of packages, classes and objects. This section gives an overview of these terms.

2.6 Packages

Java groups classes into functional packages.

x
Packages are typically used to group classes into logical units. For example all graphical
views of an application might be placed in the same package called
com.vogella.webapplication.views.

It is common practice to use the reverse domain name of the company as top level package.
For example the company might own the domain, vogella.com and in this example the Java
packages of this company starts with com.vogella.

Other main reason for the usage of packages is to avoid name collisions of classes. A name
collision occurs if two programmers give the same fully qualified name to a class. The fully
qualified name of a class in Java consists out of the package name followed by a dot (.) and
the class name. Without packages, a programmer may create a Java class called Test. Another
programmer may create a class with the same name.

With the usage of packages you can tell the system which class to call. For example if the
first programmer puts the Test class into package report and the second programmer puts his
class into package xmlreader you can distinguish between these classes by using the fully
qualified name, e.g. xmlreader.Test or report.Test.

2.7 Classes and Objects

Class - Template that describes the data and behavior associated with an instance of that
class. In Java source code a class is defined by the class keyword and must start with a capital
letter. The body of a class is surrounded by {}. package test; class MyClass {} The data
associated with a class is stored in variables ; the behavior associated to a class or object is
implemented with methods. A class is contained in a Java source file with the same name as
the class plus the .java extension. 

Object: An object is an instance of a class. The object is the real element which has data and
can perform actions. Each object is created based on the class definition.

xi
2.8 Inheritance

A class can be derived from another class. In this case this class is called a subclass.

Another common phrase is that a class extends another class. The class from which the
subclass is derived is called a superclass.

Inheritance allows a class to inherit the behavior and data definitions of another class. The
following codes demonstrates how a class can extend another class. In Java a class can extend
a maximum of one class.

Override methods and the @override annotation - If a class extends another class it inherits
the methods from its superclass. If it wants to change these methods it can override these
methods. To override a method you use the same method signature in the source code of the
subclass.

To indicate to the reader of the source code and the Java compiler that you have the intention
to override a method you can use the @override annotation. The following code demonstrates
how you can override a method from a superclass.

xii
Object has superclass. Every object in Java implicitly extends the Object class. The class
defines the following methods for every Java object:

equals(o1) - allows to check if the current object is equal to o1

getClass() returns the class of the object

hashCode() returns an identifier of the current object

toString() Give a string representation of the current object

2.9 Variables and Methods

Variables - Variables allow the Java program to store values during the runtime of the
program. A variable can either be a primitive variable or a reference variable. A primitive
variable contains value while the reference variable contains a reference (pointer) to the
object. Hence if you compare two reference variables, you compare if both point to the same
object.

To compare objects use the object1.equals(object2) method call.

Instance variable - Instance variable is associated with an instance of the class (also called
object). Access works over these objects. Instance variables can have any access control and
can be marked final or transient. Instance variables marked as final can not be changed after
assigned to a value.

Local variable - Local (stack) variable declarations cannot have access modifiers. final is the
only modifier available to local variables. This modifier defines that the variable can not be
changed after first assignment. Local variables do not get default values, so they must be
initialized before use

Methods - A method is a block of code with parameters and a return value. It can be called on
the object.

xiii
Method can be declared with var-args. In this case the method declares a parameter which
accepts from zero to many arguments (syntax: type .. name;) A method can only have one
var-args parameter and this must be the last parameter in the method.

Overwrite of a superclass method: A method must be of the exact same return parameter and
the same arguments. Also, the return parameter must be the same. Overload methods: An
overloaded method is a method with the same name, but different arguments. The return type
cannot be used to overload a method.

Main Method - public static method with the following signature can be used to start a Java
application. Such a method is typically called main method.

public static void main(String[] args){

Constructor - A class contains constructors that are invoked to create objects based on the
class definition. Constructor declarations look like method declarations except that they use
the name of the class and have no return type.

A class can have several constructors with different parameters. Each class must define at
least one constructor. In the following example the constructor of the class expects a
parameter.

xiv
If no explicit constructor is defined the compiler adds implicitly a constructor. If the class is
sub-classed then the constructor of the super class is always implicitly called in this case.

In the following example the definition of the constructor without parameters (also known as
the empty constructor) is unnecessary. If not specified the compiler would create one.

The naming conversion for creating a constructor is the following:

classname (Parameter p1, ..) {

}.

Every object is created based on a constructor. This constructor method is the first statement
called before anything else can be done with the object.

xv
2.10 Modifiers and Import statement

Access modifiers - There are three access modifiers keywords available in Java. public,
protected and private. There are four access levels: public, protected, default and private.
They define how the corresponding element is visible to other components. If something is
declared public, e.g. classes or methods can be freely created or called by other Java objects.
If something is declared private, e.g. a method, it can only be accessed within the class in
which it is declared. protected and default are similar. A protected class can be accessed from
the package and sub-classes outside the package while a default class can get only accessed
via the same package. The following table describes the visibility

TABLE 1 – Access Level

Modifier Class Package Subclass World

public Y Y Y Y

protected Y Y Y N

private Y N N N

Other modifiers :-

final methods: cannot be overwritten in a subclass

abstract method: no method body

synchronized method: threat safe, can be final and have any access control

native methods: platform dependent code, apply only to methods

strictfp: class or method

xvi
Import Statement – In Java you have to access a class always via its full-qualified name, e.g.
the package name and the class name. You can add import statements for classes or packages
into your class file, which allow you to use the related classes in your code without the
package qualifier.

Static imports - Static import is a feature that allows members (fields and methods) which are
defined in a class with the public static access modifier to be used in Java code without
specifying the class in which the member is defined. The feature provides a typesafe
mechanism to include constants into code without having to reference the class that originally
defined the field.

2.11 Interfaces

Interfaces are contracts for what a class can do but they say nothing about the way in which
the class must do it. An interface is a type similar to a class. Like a class an interface defines
methods. An interface can have only abstract methods, no concrete methods are allowed.
Methods defined in interfaces are by default public and abstract – explicit declaration of these
modifiers is optional. Interfaces can have constants which are always implicitly public, static
and final. A class can implement an interface. In this case it must provide concrete
implementations of the interface methods. If you override a method defined by an interface
you can also use the @override annotation. The following code shows an example
implementation of an interface and its usage within a class.

xvii
Class methods and class variables - Class methods and class variables are associated with the
class and not an instance of the class, i.e. objects. To refer to these element you can use the
class name and a dot (".") followed by the class method or class variable name. Class

xviii
methods and class variables are declared with the static keyword. Class methods are also
called static methods and class variables are also called static variables or static fields.

An example for the usage of a static field is println of the following statement:
System.out.println("Hello World"). out is a static field, an object of type PrintStream, and you
call the println() method on this object. If you define a static variable the Java runtime
environment associates one class variable for a class no matter how many instances (objects)
exists. The static variable can therefore be seen as a global variable. The following code
demonstrates the usage of static fields.

If a variable should be defined as constant, you declare it with the static and the final
keyword. The static method runs without any instance of the class, it cannot directly access
non-static variables or methods.

xix
Abstract class and methods - A class and method can be declared as abstract. An abstract
class can not be directly instantiated. If a class has at least one method which only contain the
declaration of the method but not the implementation then this class is abstract and can not be
instantiated. Sub-classes need then to define the methods except if they are also declared as
abstract. If a class contains an abstract method it also needs to get defined with the keyword
abstract. The following example shows an abstract class.

2.12 Working with Classes

TABLE 2

What to do? How to do it?

Create a new class called MyNewClass. package test;

public class MyNewClass { }

Create a new attribute (instance variable) package test;


called var1 of type String in the
public class MyNewClass {
MyNewClass class

private String var1;

xx
}

Create a Constructor for your MyNewClass package test;


class which has a String parameter and
public class MyNewClass {
assigns the value of it to the var1 instance
variable. private String var1;

public MyNewClass(String
para1) {

var1 = para1;

// or this.var1= para1; } }

Create a new method called doSomeThing package test;


in your class which does not return a value
public class MyNewClass {
and has no parameters

private String var1;

public MyNewClass(String
para1) {

var1 = para1;

// or

this.var1= para1; }

public void doSomeThing() {

xxi
Create a new method called doSomeThing2 package test;
in your class which does not return a value
public class MyNewClass {
and has two parameters, a int and a Person
package test; public class MyNewClass private String var1;
{ private String var1; public
MyNewClass(String para1) { public MyNewClass(String
para1) {

var1 = para1;

// or

this.var1= para1;

public void doSomeThing()

public void doSomeThing2(int


a, Person person) {

Create a new method called doSomeThing2 package test;


in your class which returns an int value and
public class MyNewClass {
has three parameters, two Strings and a
Person private String var1;

public MyNewClass(String

xxii
para1) {

var1 = para1; // or

this.var1= para1;

public void doSomeThing() {

public void doSomeThing2(int


a, Person person) {

public int
doSomeThing3(String a, String
b, Person person) {

return 5; // Any value will


do for this example } }

Create a class called MyOtherClass with package test;


two instance variables. One will store a
public class MyOtherClass {
String, the other will store a Dog. Create
getter and setter for these variables. String myvalue;

Dog dog;

public String getMyvalue() {

return myvalue;

xxiii
public void setMyvalue(String
myvalue) { this.myvalue =
myvalue;

public Dog getDog() {

return dog;

public void setDog(Dog dog) {

this.dog = dog;

Working with Local Variables

TABLE 3

Declare a (local) variable of type string. String variable1;

Declare a (local) variable of type string and String variable2 = "Test";


assign "Test" to it.

Declare a (local) variable of type Person Person person;

Declare a (local) variable of type Person, Person person = new Person();

xxiv
create a new Object and assign the variable to
this object

Declare a array of type String String array[];

Declare a array of type Person and create an Person array[]= new Person[5];
array for this variable which can hold 5
Persons.

Assign 5 to the int variable var1 (which was var1 = 5;


already declared)

Assign the existing variable pers2 to the pers1 = pers2;


exiting variable pers1;

Declare a ArrayList variable which can hold ArrayList persons;


objects of type Person

Create a new ArrayList with objects of type persons = new ArrayList();


Person and assign it to the existing variable
persons

Declare a ArrayList variable which can hold ArrayList persons = new


objects of type Person and create a new ArrayList();
Object for it.

Declare a (local) variable of type Person Person person;

xxv
2.13 IDE(Integrated Development Environment)

The previous chapter explained how to create and compile a Java program on the command
line. A Java Integrated Development Environment (IDE) provides lots of ease of use
functionality for creating java programs. There are other very powerful IDE's available, for
example the Eclipse IDE. . For an introduction on how to use the Eclipse IDE please see
Eclipse IDE Tutorial. The remaining description uses the phrase: Create a Java project
called... ". This refers to creating a Java project in Eclipse. If you are using a different IDE
please follow the required steps in this IDE. Exercises - Creating Java objects and methods
Create a Person class and instantiate it Create a new Java project called
com.vogella.javastarter.exercises1 and a package with the same name. Create a class called
Person. Add three instance variables to it, one for storing the first name of the person, on for
storing the last name and one for storing the age of the Person. Use the constructor of the
Person object to set the values to some default value. Write a public method called
writeName() which uses the System.out.println( method to print the first name of the person
to the console. Create a new class called Main with a public static void main(String[] args). In
this method create an instance of the Person class.

Use constructor - Add a constructor to your Person class which takes the first name, last
name and the age as parameter. Assign the values to your instance variables. Create in your
main method two objects of type Person and call the write Name method on it.

Define getter and setter - methods Define methods which allow you to read the values of the
instance variables and to set them. These methods are called setter and getter. Getters should
start with get followed by the variable name whereby the first letter of the variable is
capitized. Setter should start with set followed by the variable name whereby the first letter of
the variable is capitized. ` For example the variable called firstName would have the
getFirstName() getter method and the setFirstName(String s) setter method. Change your
main method so that you create one person object and use the setter method to change the last
name.

Create an Address object - Create a new object called Address. The Address should allow
you to store the address of a person. Add a new instance variable of this type in the Person
object. Also create a getter and setter for the Address object in the Person object.

xxvi
CREATE A PERSON CLASS AND INSTANTIATE IT

class Person {

String firstname = "Jim";

String lastname = "Knopf";

int age = 12; void writeName() { // Writes the firstname

System.out.println(firstname);

// Alternatively you can combine strings with +

System.out.println(firstname + " " + lastname + "" + age);

package exercises.exercise04;

public class Main {

public static void main(String[] args) {

Person person = new Person();

person.writeName();

USE CONSTRUCTOR

package com.vogella.javastarter.exercises1;

class Person {

xxvii
String firstName;

String lastName;

int age;

public Person(String a, String b, int value) {

firstName = a;

lastName = b;

age=value;

void writeName() {

// Writes the firstname

System.out.println(firstName);

// Alternatively you can combine strings with +

System.out.println(firstName + " " + lastName + "" + age);

package com.vogella.javastarter.exercises1;

public class Main { void main(String[] args) {

Person person = new Person("Jim", "Knopf" , 12);

person.writeName();

// Reuse the same variable and assign new object to it

xxviii
person = new Person("Henry", "Ford", 104);

person.writeName();

DEFINE GETTER AND SETTER METHODS

package com.vogella.javastarter.exercises1;

class Person {

String firstName;

String lastName;

int age;

public Person(String a, String b, int value) {

firstName = a;

lastName = b;

age = value;

public String getFirstName() {

return firstName;

public void setFirstName(String firstName) {

this.firstName = firstName;

xxix
}

public String getLastName() {

return lastName;

public void setLastName(String lastName) {

this.lastName = lastName;

public int getAge() {

return age;

public void setAge(int age) {

this.age = age;

void writeName() {

// Writes the firstname

System.out.println(firstName);

// Alternatively you can combine strings with +

System.out.println(firstName + " " + lastName + "" + age);

xxx
package com.vogella.javastarter.exercises1;

public class Main {

public static void main(String[] args) {

Person person = new Person("Jim", "Knopf", 21);

Person person2 = new Person("Jill", "Sanders", 20);

// Jill get married to Jim

person2.setLastName("Knopf");

person2.writeName();

CREATE AN ADDRESS OBJECT

package com.vogella.javastarter.exercises1;

public class Address {

private String street;

private String number;

private String postalCode;

private String city;

private string country;

public String getStreet() {

return street;

xxxi
}

public void setStreet(String street) {

this.street = street;

public String getNumber() {

return number;

public void setNumber(String number) {

this.number = number;

public String getPostalCode() {

return postalCode;

PostalCode(String postalCode) {

this.postalCode = postalCode;

public String getCity() {

return city;

public void setCity(String city) {

xxxii
this.city = city;

public String getCountry() {

return country;

public void setCountry(String country) {

this.country = country;

public String toString() {

return street + " " + number + " " + postalCode + " " + city +
" " + country;

package com.vogella.javastarter.exercises1;

class Person {

String firstName;

String lastName;

int age;

private Address address;

public Person(String a, String b, int value) {

firstName = a;

xxxiii
lastName = b;

age=value;

public String getFirstName() {

return firstName;

public void setFirstName(String firstName) {

this.firstName = firstName;

public String getLastName() {

return lastName;

public void setLastName(String lastName) {

this.lastName = lastName;

public int getAge() {

return age;

public void setAge(int age) {

this.age = age;

xxxiv
}

public Address getAddress() {

return address;

public void setAddress(Address address) {

this.address = address;

void writeName() {

// Writes the firstname

System.out.println(firstName);

// Alternatively you can combine strings with +

System.out.println(firstName + " " + lastName + "" + age);

package com.vogella.javastarter.exercises1;

public class Main {

public static void main(String[] args) {

// I create a person

Person pers = new Person("Jim", "Knopf", 31);

// I set the age of the person to 32

xxxv
// Just for testing I write this to the console

System.out.println(pers.toString());

/* * Actually System.out.println calls always toString, if


you do not

* specify it so you could also have written

System.out.println(pers);

*/ // I create an address

Address address = new Address();

// I set the values for the address

address.setCity("Heidelberg");

address.setCountry("Germany");

address.setNumber("104");

address.setPostalCode("69214");

address.setStreet("Musterstr.");

address = null;

// person is moving to the next house in the same street

pers.getAddress().setNumber("105"); }}

2.14 History of JAVA

It is quite interesting to know the development of Java technology, which is widely accepted
in the area of networked/distributed computing. Java evolved from a project developing a
language for programming consumer electronic devices at Sun Microsystems, USA.

xxxvi
Sun’s Stealth Project in 1990 was aimed to do research in the area of application of
computers in the consumer electronics market. Bill Joy, James Gosling, Mike Sheridan,
Patrick Naughton (formerly the project leader of Sun’s Open Windows user environment),
and several other individuals discussed the ideas for the Stealth Project in January 1991.

The vision of this project was to develop smart consumer electronic devices that could all be
centrally controlled and programmed from a handheld-remote-control-like device. The
Stealth group began to work to achieve this goal. It was realized that a platform-independent
development-environment was needed. Green Project was initiated by Patrick Naughton,
Mike Sheridan, and James Gosling of Sun Microsystems in 1991 (Members of the Stealth
Project, which later became known as the Green Project) The tasks of the project were
divided amongst the members of Green Project.

Mike Sheridan concentrated on business development, Patrick Naughton worked on the


graphics system, and James Gosling was to identify the appropriate programming language
for the Green Project. Even though creating a new language was not the aim of Green Project,
a new language was created as a programming tool in this project since C++ was found
unsuitable for the project.

An intelligent remote control called *7 (Star Seven) was delivered as the first product of
Green Project in 1992. It is a PDA- like device comprising of a new language oak, an
operating system called GreenOS, user interface, and hardware. This device was quite
impressive to Sun Executives. But no customer was interested in this project.

The market was not conducive to this type of device in the consumer electronics industry.
The new language Oak was created by James Gosling, a Green Team member, specifically
for *7. Gosling named the new language Oak because that name was struck while looking at
an oak three outside of his office window.

The name Oak was later renamed to Java in order to avoid legal issues since Oak was the
name of an existing language.

In November 1992, the Green Project was incorporated under the name FirstPerson. In 1993.
Time-Warner was demanding for proposals for set-top box operating systems and videoon-

xxxvii
demand technology with an objective of sending the data to consumer all over the country for
display on the television sets.

At the same time (1993, NCSA released the first graphical web browser Mosaic 1.0, an easy-
to-use front end to the World Wide Web. When FirstPerson was bidding on the Time-Warner
TV trial based on video-on-demand technology, Time-Warner chose Silicon Graphics, Inc.
(SGI) over Sun. Hence, half of the members of FirstPerson left for SGI and the remaining
members continued to work at Sun.

Mosaic web browser revolutionized people’s perceptions. The remaining member of


FirstPerson returned to work on Java (Oak was renamed Java) to develop Java-based web
browser.

FirstPerson was dissolved gradually. Naughton and Jonathan Payne developed WebRunner
(named after the movie Blade Runner). Later WevRunner was officially announced as the
HotJavaTM browser in 1994. This was the turning point for Java.

At that time the World Wide Web changed the face of Internet and it was winning the race on
Internet. Arthur Ban Hoff implemented the Java compiler in Java itself whereas Gosling
implemented it in C. The Java compiler, written in Java made the people to accept Java as a
fullfeatured language. Sun Microsystems officially announced Java environment at Sun
World’95 on May 23, 1995.

Java entered into the mainstream of the Internet after a struggle for about four years.
Netscape Communications incorporated Java into its web browser Netscape Navigator.
Within a decade, Java was destined to be the most overreaching technology in the Internet.

Java was not restricted to the Internet alone. The initial goal of Sun was also achieved by
using Java technology in interactive set-top boxes, hand-held devices and other consumer
electronics products. Sun released the first version 1.0 of Java in 1996.

Java is an object-oriented programming language which evolved from C++. It is also a high-
level programming language.

xxxviii
2.15 Features of JAVA

According to Sun, Java is defined as a simple, object-oriented, distributed, interpreted, robust,


secure, architecture –neutral, portable, high performance, multithreaded, and dynamic
programming language and platform.

Java is simple because the syntax of well-known languages such as C and C++ are used with
modifications meant for simplification and improvement. It is easy to read and write Java
code if the reader is familiar with C/C++.

Almost everything in Java is centered on creating objects, manipulating the objects and
making objects work together. Only the primitive operations and data types are at the sub-
object level.

Hence Java is an object-oriented programming language. An application can be distributed in


many systems which are connected together.

Since networking capability is incorporated in Java, the data/file can be sent across many
systems to run the application.

Java is robust because it is more reliable. It ensures the reliability by providing early checking
for possible errors. It eliminates error-prone constructs such as pointer. It eliminates error-
prone constructs such as pointer.

xxxix
It also supports runtime error handling. Java programs are compiled to a byte code format
that can be read and run by interpreters on many platforms including Windows, Linux, etc.
Hence, it is architecture neutral. Because of this feature it is portable to new hardware and
operating systems.

Although the speed of execution of Java programs is slower compared to C/C++ programs,
Java is meant for distributed applications. Whenever the file/data is transmitted from one
system to another, the performance is not affected. Hence, it is having high performance. Java
supports multithreaded programming to perform several tasks simultaneously.

Any code can be loaded without recompilation at runtime. Hence it is dynamic.

CHAPTER 3
INTRODUCTION TO PROJECT

Student Management System

xl
The student management system is an environment where all the process of the student in the
institution is managed. It is done through the automated computerized method. Convention-
ally this system is done using papers, files, and binders.

This system saves the time of the student and of the administrator. It includes processes like
registration of the student’s details, assigning the department based on their course, and main-
tenance of the record. This system reduces the cost and workforce required for this job. As
the system is online the information is globally present to everyone.

This makes the system easy to handle and feasible for finding the omission with updating at
the same time. As for the existing system, they use to maintain their record manually which
makes it vulnerable to security. If filed a query to search or update in a manual system, it will
take a lot of time to process the query and make a report which is a tedious job.

As the system used in the institute is outdated as it requires paper, files, and binders, which
will require the human workforce to maintain them. To get registered in the institute, a stu-
dent in this system should come to the university. Get the forms from the counter while
standing in the queue which consumes a lot of the student’s time as well as of the manage-
ment team.

As the number of the student increases in the institute manually managing the strength be-
comes a hectic job for the administrator. This computerized system stores all the data in the
database which makes it easy to fetch and update whenever needed.

3.1 Project Background

Once the planning and analysis of the project are completed, the design phase begins. The
goal of system design is to transform the information collected about the project into the
blueprint structure which will serve as a base while constructing the system. It is considered
to be an unwieldy process as most of the errors are introduced in this phase.

xli
However, if an error gets unnoticed in the later process it may become difficult to track them
down. In our system, we are developing a system that helps in student management by the in-
stitution. It will minimize the problems faced by both students and the institutes for the dura-
tion.

3.2 Project Requirements

The hardware required for the development of the project is:


 Processor: Intel P-IV System
 Processor Speed: 250 MHz to 833 MHz
 Ram: 512 Mb Ram
 Hard Disk: 40 Gb

The software required for the development of the project is:


 Operating System: Windows 2000 Professional
 Environment: Visual Studio .NET 2002
 Framework: Version 1.0
 Language: Visual Basic
 NET Backend: SQL Server 2000

3.3 Project Methodology

xlii
CHAPTER 4
xliii
Results and Discussions

The undertaken project gave the following output:

xliv
Practical knowledge means the visualization of the knowledge, which we read in our books.
For this, we perform experiments and get observations. Practical knowledge is very important
in every field. One must be familiar with the problems related to that field so that he may
solve them and become a successful person. After achieving the proper goal in life, an engi-
neer has to enter in professional life.

According to this life, he has to serve an industry, may be public or private sector or self-
own. For the efficient work in the field, he must be well aware of the practical knowledge as
well as theoretical knowledge.

Due to all above reasons and to bridge the gap between theory and practical, our Engineering
curriculum provides a practical training of 45 days. During this period a student work in the
industry and get well all type of experience and knowledge about the working of companies
and hardware and software tools.

CHAPTER 5
xlv
Future Enhancement of the Project

The project has a very vast scope in future. The project can be implemented on intranet in fu-
ture. Project can be updated in near future as and when requirement for the same arises, as it
is very flexible in terms of expansion. With the proposed software of database Space Man-
ager ready and fully functional the client is now able to manage and hence run the entire
work in a much better, accurate and error free manner. The following are the future scope for
the project.

1. Discontinue of particular student eliminate potential attendance.

2. Bar code Reader based attendance system

3. Individual Attendance system with photo using Student login

The use of various software for school management will allow students to interact with learn-
ing communities from across the world. Students across the world with similar learning styles
and similar interests can connect with the help of the app, thus creating a diverse and interac-
tive learning culture. This will not only give students a wider exposure to different cultures,
but it will lead to a collaboration of ideas across borders.

CHAPTER 6
REFERENCES

xlvi
1. W3schools.com

2. Thinking in JAVA(2nd Edition)

3. OOPS Concepts by Sumita Arora

4. Google Group - javatechzone

xlvii

You might also like