Professional Documents
Culture Documents
ClassFiles:
SubClass1.class
SubClass1$SubClass2.class
DemoInnerClass2.class(MainClass)
Note:
=>In Instance member InnerClass the InnerClass object will hold the reference of
OuterClass object,in this process the methods of InnerClass object can access the
--------------------------------------------------------------------
*imp
1
2.Local member InnerClasses:
=>The NonStatic member InnerClasses which are declared inside the methods of
Rules:
=>Local InnerClass objects are created inside the same methods where
Ex:
2
SubClass1.java
package p2;
public class SubClass1 {
public int a=10;
public static int b=20;
public void m1() {
class SubClass2{
public void m2() {
System.out.println("===Instance m2()====");
System.out.println("The value a:"+a);
System.out.println("The value b:"+b);
}
public static void m22() {
System.out.println("===Static m22()====");
//System.out.println("The value a:"+a);
System.out.println("The value b:"+b);
}
}//InnerClass
SubClass2 ob2 = new SubClass2();//InnerClass Object
ob2.m2();
SubClass2.m22();
}//OuterClass Instance method
public static void m11() {
class SubClass22{
public void m3() {
System.out.println("===Instance m3()====");
//System.out.println("The value a:"+a);
System.out.println("The value b:"+b);
}
public static void m33() {
System.out.println("===Static m33()====");
//System.out.println("The value a:"+a);
System.out.println("The value b:"+b);
}
}//InnerClass
SubClass22 ob22 = new SubClass22();//InnerClass object
ob22.m3();
SubClass22.m33();
}//OuterClass Static method
}//OuterClass
DemoInnerClass3.java(MainClass)
3
package p1;
import p2.*;
public class DemoInnerClass3 {
public static void main(String[] args) {
SubClass1 ob1 = new SubClass1();//OuterClass object
ob1.m1();//OuterClass Instance method Call
SubClass1.m11();//OuterClass Static method Call
}
}
o/p:
===Instance m2()====
===Static m22()====
===Instance m3()====
===Static m33()====
-----------------------------------------------------------------
ClassFiles:
SubClass1.class
SubClass1$1SubClass2.class
SubClass1$1SubClass22.class
DemoInnerClass3.class(MainClass)
====================================================================
4
Summary:
=>In Static member InnerClasses,InnerClasses will get the memory within the
OuterClass.
of OuterClass objects.
========================================================================
Dt : 23/6/2022
*imp
=>The process in which one object is created holding all the member from the
PClass and only Overriding members from the CClass is known as Generalization
process.
Diagram:
5
Ex:
PClass.java
package test;
public class PClass {
public PClass(int z) {
System.out.println("===PClass(z)===");
System.out.println("The value z:"+z);
}
public void m1(int x) {
System.out.println("====PClass m1(x)===");
System.out.println("The value x:"+x);
}
public void m2(int y) {
System.out.println("====PClass m2(y)===");
System.out.println("The value y:"+y);
}
}
CClass.java
package test;
public class CClass extends PClass{
public CClass(int k) {
super(k);
System.out.println("====CClas(k)===");
System.out.println("The value k:"+k);
}
6
public void m1(int x) {
System.out.println("====CClass m1(x)===");
System.out.println("The value x:"+x);
}
public void m3(int z) {
System.out.println("====CClass m3(z)===");
System.out.println("The value z:"+z);
}
}
DemoGeneralization1.java(MainClass)
package maccess;
import test.*;
public class DemoGeneralization1 {
public static void main(String[] args) {
PClass ob = new CClass(111);//Generalization_Con_Call
ob.m1(123);
ob.m2(234);
//ob.m3(235);//Error
}
}
o/p:
===PClass(z)===
====CClas(k)===
====CClass m1(x)===
====PClass m2(y)===
==================================================================
7
Note:
=>We can also perform Generalization process on Interfaces using the following
Syntax:
Diagram:
Ex:
ITest.java
package test;
public interface ITest {
public abstract void m1(int x);
public default void m2(int y) {
System.out.println("===default m2(y)====");
System.out.println("The value y:"+y);
}
}
IClass.java
package test;
public class IClass implements ITest{
public IClass(int k) {
System.out.println("====IClass(k)====");
System.out.println("The value k:"+k);
8
}
public void m1(int x) {
System.out.println("===implemented m1(x)===");
System.out.println("The value x:"+x);
}
public void m3(int z) {
System.out.println("===NonImplemented m3(z)====");
System.out.println("The value z:"+z);
}
}
DemoGeneralization2.java(MainClass)
package maccess;
import test.*;
public class DemoGeneralization2 {
public static void main(String[] args) {
ITest ob = new IClass(111);//Generalization
ob.m1(12);
ob.m2(23);
//ob.m3(56);//Error
}
}
o/p:
====IClass(k)====
===implemented m1(x)===
===default m2(y)====
========================================================================
=
9
Note:
========================================================================
faq:
=>The process in which we construct CClass by taking one feature from the
Rule:
Note:
Ex for Specialization:
Cloning process
De-Serialization process
10
========================================================================
===
*imp
(b)Anonymous InnerClasses:
=>The InnerClasses which are declared without name are known as Anonymous
InnerClasses.
as Class extention.
syntax:
class PClass
//PClass_body
//CClass_body
11
};
Ex:
PClass.java
package test;
public class PClass {
public void m1(int x) {
System.out.println("====PClass m1(x)===");
System.out.println("The value x:"+x);
}
public void m2(int y) {
System.out.println("====PClass m2(y)===");
System.out.println("The value y:"+y);
}
}
DemoAnonymous1.java(MainClass)
package maccess;
import test.*;
public class DemoAnonymous1 {
public static void main(String[] args) {
//Anonymous InnerClass as Class_extention
PClass ob = new PClass()
{
public void m1(int x) {
System.out.println("====CClass m1(x)===");
System.out.println("The value x:"+x);
}
public void m3(int z) {
System.out.println("====CClass m3(z)===");
System.out.println("The value z:"+z);
}
};
ob.m1(123);
ob.m2(234);
//ob.m3(235);//Error
}
}
12
o/p:
====CClass m1(x)===
====PClass m2(y)===
Note:
======================================================================
syntax:
interface ITest
//Interface_body
//IClass_body
13
};
Ex:
ITest.java
package test;
public interface ITest {
public abstract void m1(int x);
public default void m2(int y) {
System.out.println("===default m2(y)====");
System.out.println("The value y:"+y);
}
}
DemoAnonymous2.java(MainClass)
package maccess;
import test.*;
public class DemoAnonymous2 {
public static void main(String[] args) {
//Anonymous InnerClass as implementation class
ITest ob = new ITest()
{
public void m1(int x) {
System.out.println("===implemented
m1(x)===");
System.out.println("The value x:"+x);
}
public void m3(int z) {
System.out.println("===NonImplemented
m3(z)====");
System.out.println("The value z:"+z);
}
};
ob.m1(12);
ob.m2(23);
//ob.m3(56);//Error
}
}
14
o/p:
===implemented m1(x)===
===default m2(y)====
Note:
=================================================================
15