1 java programming- introduction
DESCRIPTION
Introduction to javaTRANSCRIPT
![Page 1: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/1.jpg)
JAVA PROGRAMMING
Introduction
![Page 2: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/2.jpg)
What is Java
• A general purpose Programming Language• Most Famous Object Oriented Programming
Language.• Suited for the web and networked services,
applications, platform independent desktops, robotics, embedded devices.
![Page 3: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/3.jpg)
Java No Longer a Programming Language
but a Platform
![Page 4: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/4.jpg)
History of Java
• Developed by James Gosling, Mike Sheridan, Patrick Naughton et. al;
• When working on green project;• The goal of this project was to control
microprocessor embedded in electronic devices.
• To perform this task, a platform independent, reliable, and compact language was needed
![Page 5: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/5.jpg)
History of Java
• Gosling was given task to identify the proper programming language for the project.
• Gosling decided to develop a new language to avoid the problems of current programming languages(C++ especially)
• The new language developed for this purpose is called “Oak”
![Page 6: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/6.jpg)
History of Java
It consist of –
• Oak Programming Language• An Operating System• An User Interface• A Hardware
![Page 7: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/7.jpg)
Java Versions
• JDK 1.0 1996• JDK 1.1 1997• JDk 1.2 1998 (Java 2)• JDK 1.3 2000 (Java 2)• JDK 1.4 2002 (Java 2)• JDK 5.0 2004 (J2SE 5.0)• JDK 6.0 2006 (Java SE 6)• JDK 7.0 2010
![Page 8: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/8.jpg)
With the advancement of Java and its widespread popularity, multiple configurations were built to suite various types of platforms.
Ex: J2EE for Enterprise Applications J2ME for Mobile Applications.
Diff erent Language for diff erent Platform…
![Page 9: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/9.jpg)
• Sun Microsystems has renamed the new J2 versions as Java SE, Java EE and Java ME respectively.
• Java is guaranteed to be Write Once, Run Anywhere.
![Page 10: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/10.jpg)
Java Features
![Page 11: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/11.jpg)
Object Oriented
• Java, everything is an Object.
• Java can be easily extended since it is based on the Object model.
![Page 12: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/12.jpg)
Platform independent
• Unlike many other programming languages including C and C++, when Java is compiled, it is not compiled into platform specific machine, rather into platform independent byte code. This byte code is distributed over the web and interpreted by virtual Machine (JVM) on whichever platform it is being run.
![Page 13: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/13.jpg)
Simple
• Java is designed to be easy to learn. If you understand the basic concept of OOP Java would be easy to master.
![Page 14: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/14.jpg)
Secure
• With Java's secure feature it enables to develop virus-free, tamper-free systems. Authentication techniques are based on public-key encryption.
![Page 15: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/15.jpg)
Architectural-neutral
• Java compiler generates an architecture-neutral object file format which makes the compiled code to be executable on many processors, with the presence of Java runtime system.
![Page 16: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/16.jpg)
Portable
• Being architectural-neutral and having no implementation dependent aspects of the specification makes Java portable.
• Compiler in Java is written in ANSI C
![Page 17: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/17.jpg)
Robust
• Java makes an effort to eliminate error prone situations by emphasizing mainly on compile time error checking and runtime checking.
![Page 18: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/18.jpg)
Multithreaded
• With Java's multithreaded feature it is possible to write programs that can do many tasks simultaneously. This design feature allows developers to construct smoothly running interactive applications.
![Page 19: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/19.jpg)
Interpreted
• Java byte code is translated on the fly to native machine instructions and is not stored anywhere. The development process is more rapid and analytical since the linking is an incremental and light weight process.
![Page 20: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/20.jpg)
High Performance
• With the use of Just-In-Time compilers, Java enables high performance
![Page 21: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/21.jpg)
Distributed
• Java is designed for the distributed environment of the internet
![Page 22: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/22.jpg)
Dynamic
• Java is considered to be more dynamic than C or C++ since it is designed to adapt to an evolving environment. Java programs can carry extensive amount of run-time information that can be used to verify and resolve accesses to objects on run-time.
![Page 23: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/23.jpg)
Java Environment
Java Programming Language
JDK JSL
Java Programming Environment
![Page 24: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/24.jpg)
Java Environment
JDK(Java Development Environment)
A set of Programming Tools
JSL(Java Standard Library)
(A collection of Classes and Methods)It is also called Java API
![Page 25: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/25.jpg)
Java Development Kit(JDK)
• A Software Package
• Sun Microsystems made it available free on the website
• Includes all basic components of Java Environment
![Page 26: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/26.jpg)
• Java Compiler• Java Interpreter• Applet Viewer• Utilities• Documentation • Sample Code
Java Development Kit(JDK) - Tools
![Page 27: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/27.jpg)
Java Development KitFile Structure(C:\jdk)
jdk
include
bin
lib
jre demo
Src.zip
![Page 28: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/28.jpg)
• A collection of utilities that help u to develop, execute, debug and document java programs
• Include-– javac.exe– java.exe– javadoc.exe– appletviewer.exe
Java Development Kitbin
![Page 29: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/29.jpg)
• Contains files that support native code programming
• integrate java with other programming languages.
• Include- – jawet.h– jni.h
Java Development Kitinclude
![Page 30: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/30.jpg)
Un T
• Root directory of Java Run Time Environment • Includes– JVM(Java Virtual Machine)– runtime class libraries– java application launcher
Java Development Kitjre
![Page 31: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/31.jpg)
• Includes additional class libraries and support files required by the development tools
– htmlconvertor– jconsole
Java Development Kitlib
![Page 32: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/32.jpg)
• Consist of sample programs with source code
Java Development Kitdemo
![Page 33: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/33.jpg)
• Compressed files contain source code for java API classes(that are included in JDK)
• We can unpack these files.
• The source code in these files helps developers to learn and use the java programming language
Java Development Kitsrc.zip
![Page 34: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/34.jpg)
JDK Tools
• Java Compiler• The Runtime Interpreter• Applet Viewer• Debugger• Class File Disassembler• Header and Stub File Generator• Documentation Generator
![Page 35: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/35.jpg)
• A command line tool that reads java source code files and compiles it into executable byte code classes.
Java Compiler (javac)
javacHello.java Hello.class
javac [Options] [File Name]
Example- Javac Hello.java
Syntax
![Page 36: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/36.jpg)
• Java programs are compiled to byte code and not in native code.
• Hence it can not be run on the machine directly.
• Java Runtime Interpreter implements Java Virtual Machine(JVM) and runs java applications.
Java Runtime interpreter (java)
![Page 37: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/37.jpg)
• It is used to run java .class file by doing following two things-
– Starting Java Runtime Environment(JRE)– Loading the specified class– Invoking the main() method
Java Runtime interpreter (java)
![Page 38: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/38.jpg)
Java Runtime interpreter (java)
javaHello.class
java [ Options ] [ Class Name ] [ Arguments ]
Example- Java Hello
Syntax
OUTPUT
![Page 39: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/39.jpg)
• A command line tool• Used to run applet without the need of a web
browser
Applet Viewer
![Page 40: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/40.jpg)
• Command line tool helps• Used to find out and fixes bugs in java
programs
jdb [Options] [Class Name] [Arguments]
Java Debugger(jdb)
![Page 41: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/41.jpg)
• A command line tool• Reads java bytecode class files• Print human readable version of API defined
by those classes.
Class File Disassembler (javap)
![Page 42: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/42.jpg)
• A command line tool• Produces two c files– C Header file– C stub file
• These C files are used to implement native methods
Header and Stub File Generator(javah)
![Page 43: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/43.jpg)
• The header file contains the declaration for the C implementation function and structure definition
• Stub file provide the glue that binds the java method invocations and object references to the C code
• The header file name is appended with .h • The stub file name is appended with .c
Header and Stub File Generator(javah)
![Page 44: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/44.jpg)
• A command line tool• Used to generate documentation in the form
of HTML pages
Documentation Generator(javadoc)
![Page 45: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/45.jpg)
txt •Text Editor
.java •Java Source Code
Javac •Java Compiler
.class •Java Class File
Java •Java Interpreter
Java •Java Program Output
javadoc HTML Files
javah Header and Stub Files
jdb
The Overall Process
![Page 46: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/46.jpg)
Java Virtual Machine (JVM)
![Page 47: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/47.jpg)
Introduction to the JVM
• A Component of Java System• It interprets and executes the instructions in
our class files.
![Page 48: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/48.jpg)
Figure 1: Memory configuration by the JVM.
Introduction to the JVM
eaMethod
Area Heap Java Stacks
PC Registers
Native Method Stacks
Class Loader Subsystem
Class Files
Execution Engine
Native Method Interface
Native Method Libraries
![Page 49: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/49.jpg)
• Each instance of the JVM has one method area, one heap, and one or more stacks - one for each thread
• When JVM loads a class file, it puts its information in the method area
• As the program runs, all objects instantiated are stored in the heap
• The stack area is used to store activation records as a program runs
Introduction to the JVM
![Page 50: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/50.jpg)
Memory Blocks at Runtime
Content of Memory Blocks at Runtime
Stack Frame
Stack Frame
Stack Frame
Stack Frame
Stack Frame
Stack Frame
Object Object
Object Object
Object Object
Class Data
Class Data
Class Data
Class Data
Class Data
Class Data
Method Area Heap Stack Area
Thread 1 Thread 2
![Page 51: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/51.jpg)
The Class Loader Subsystem
• The class loader performs three main functions of JVM, namely:
• Loading• Linking• Initialization
• The linking process consists of three sub-tasks, namely,
• Verification• Preparation• Resolution
![Page 52: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/52.jpg)
Load
Link
Initialize
Verify
Prepare
Resolve
Class Loading Process
The Class Loader Subsystem
![Page 53: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/53.jpg)
Class Loading Process
• Loading means reading the class file for a type, parsing it to get its information, and storing the information in the method area.
• For each type it loads, the JVM must store the following information in the method area: – The fully qualified name of the type– The fully qualified name of the type's direct superclass or if the type is an
interface, a list of its direct super interfaces .– Whether the type is a class or an interface– The type's modifiers ( public, abstract, final, etc)– Constant pool for the type: constants and symbolic references.– Field info : name, type and modifiers of variables (not constants)– Method info: name, return type, number & types of parameters, modifiers,
bytecodes, size of stack frame and exception table.
![Page 54: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/54.jpg)
• The end of the loading process is the creation of an instance of java.lang.Class for the loaded type.
• The purpose is to give access to some of the information captured in the method area for the type, to the programmer.
• Some of the methods of the class java.lang.Class are:
• Note that for any loaded type T, only one instance of java.lang.Class is created even if T is used several times in an application.
• To use the above methods, we need to first call the getClass() method on any instance of T to get the reference to the Class instance for T.
public String getName()public Class getSupClass()public boolean isInterface()public Class[] getInterfaces()public Method[] getMethods()public Fields[] getFields()public Constructor[] getConstructors()
Class Loading Process
![Page 55: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/55.jpg)
Instances of Class objects created in the heap at runtime
Class Loading Process
Object
String
Shape
Class
Class
Class
Method Area Heap
![Page 56: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/56.jpg)
import java.lang.reflect.Method; // Required!
//you must import your Circle classpublic class TestClassClass{ public static void main(String[] args) { String name = new String(“Ahmed”); Class nameClassInfo = name.getClass(); System.out.println("Class name is : “ + nameClassInfo.getName()); System.out.println("Parent is : “ + nameClassInfo.getSuperclass()); Method[] methods = nameClassInfo.getMethods(); System.out.println("\nMethods are: "); for(int i = 0; i < methods.length; i++) System.out.println(methods[i]); }}
Class Loading Process
![Page 57: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/57.jpg)
Class Linking Process
Verify
Prepare
Resolve
![Page 58: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/58.jpg)
Verification During Linking Process• The next process handled by the class loader is Linking. This involves three sub-
processes: Verification, Preparation and Resolution• Verification is the process of ensuring that binary representation of a class is
structurally correct• The JVM has to make sure that a file it is asked to load was generated by a valid
compiler and it is well formed• Class B may be a valid sub-class of A at the time A and B were compiled, but class A
may have been changed and re-compiled• Example of some of the things that are checked at verification are:
– Every method is provided with a structurally correct signature– Every instruction obeys the type discipline of the Java language– Every branch instruction branches to the start not middle of another
instruction
![Page 59: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/59.jpg)
Preparation
• In this phase, the JVM allocates memory for the class (i.e static) variables and sets them to default initial values.
• Note that class variables are not initialized to their proper initial values until the initialization phase - no java code is executed until initialization.
• The default values for the various types are shown below:
![Page 60: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/60.jpg)
Resolution
• Resolution is the process of replacing symbolic names for types, fields and methods used by a loaded type with their actual references.
• Symbolic references are resolved into a direct references by searching through the method area to locate the referenced entity.
• For the class below, at the loading phase, the class loader would have loaded the classes: TestClassClass, String, System and Object.
• The names of these classes would have been stored in the constant pool for TestClassClass.• In this phase, the names are replaced with their actual references.
public class TestClassClass{ public static void main(String[] args){ String name = new String(“Ahmed”); Class nameClassInfo = name.getClass(); System.out.println("Parent is: “ + nameClassInfo.getSuperclass()); }}
![Page 61: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/61.jpg)
Class Initialization• This is the process of setting class variables to their proper initial values - initial values desired by
the programmer.
• Initialization of a class consists of two steps: – Initializing its direct superclass (if any and if not already initialized)– Executing its own initialization statements
• The above imply that, the first class that gets initialized is Object.• Note that static final variables are not treated as class variables but as constants and are
assigned their values at compilation.
class Example1 {static double rate = 3.5;static int size = 3*(int)(Math.random()*5);...
}
class Example2 {static final int angle = 35;static final int length = angle * 2;...
}
![Page 62: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/62.jpg)
• After a class is loaded, linked, and initialized, it is ready for use. Its static fields and static methods can be used and it can be instantiated.
• When a new class instance is created, memory is allocated for all its instance variables in the heap.
• Memory is also allocated recursively for all the instance variables declared in its super class and all classes up is inheritance hierarchy.
• All instance variables in the new object and those of its superclasses are then initialized to their default values.
• The constructor invoked in the instantiation is then processed according to the rules shown on the next page.
• Finally, the reference to the newly created object is returned as the result.
Class Initialization (Cont’d)
![Page 63: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/63.jpg)
Class Instantiation
Rules for processing a constructor:1. Assign the arguments for the constructor to its parameter variables.
2. If this constructor begins with an explicit invocation of another constructor in the same class (using this), then evaluate the arguments and process that constructor invocation recursively.
3. If this constructor is for a class other than Object, then it will begin with an explicit or implicit invocation of a superclass constructor (using super). Evaluate the arguments and process that superclass constructor invocation recursively.
4. Initialize the instance variables for this class with their proper values.
5. Execute the rest of the body of this constructor.
![Page 64: 1 java programming- introduction](https://reader035.vdocument.in/reader035/viewer/2022081413/5462abdbb4af9f491c8b47bf/html5/thumbnails/64.jpg)
class GrandFather {int grandy = 70;public GrandFather(int grandy) {
this.grandy = grandy;System.out.println("Grandy: "+grandy);
}}class Father extends GrandFather {
int father = 40;public Father(int grandy, int father) {
super(grandy);this.father = father;System.out.println("Grandy: "+grandy+" Father: "+father);
}}class Son extends Father {
int son = 10;public Son(int grandy, int father, int son) {
super(grandy, father);this.son = son;System.out.println("Grandy: "+grandy+" Father: "+father+" Son: "+son);
}}public class Instantiation {
public static void main(String[] args) {Son s = new Son(65, 35, 5);
}}
Class Instantiation: Example 1