Class Note 05 - OOP
Class Note 05 - OOP
Interface as a Contract
01.
import javax.swing.*;
import java.awt.*;
class Calculator extends JFrame{
JButton exitButton;
Calculator(){
setSize(300,300);
setTitle("Calculator");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setLayout(new FlowLayout());
exitButton=new JButton("Exit");
exitButton.setFont(new Font("",1,25));
exitButton.add(new MyClass());
add(exitButton);
setVisible(true);
}
}
class MyClass{
public void myMethod(){
System.out.println("You presss the exit button..");
System.exit(0);
}
}
class Demo{
public static void main(String args[]){
new Calculator();
}
}
02.
ActionListener vs ActionEvent
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Calculator extends JFrame{
JButton exitButton;
Calculator(){
setSize(300,300);
Page 1 of 30
CMJD Diploma in Comprehensive Master Java Developer
setTitle("Calculator");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setLayout(new FlowLayout());
exitButton=new JButton("Exit");
exitButton.setFont(new Font("",1,25));
exitButton.addActionListener(new MyClass());
add(exitButton);
setVisible(true);
}
}
/*
interface ActionListener{
public void actionPerformed(ActionEvent evt);
}
*/
03.
MouseListener vs MouseEvent
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Calculator extends JFrame{
JButton exitButton;
Calculator(){
setSize(300,300);
setTitle("Calculator");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
Page 2 of 30
CMJD Diploma in Comprehensive Master Java Developer
setLayout(new FlowLayout());
exitButton=new JButton("Exit");
exitButton.setFont(new Font("",1,25));
exitButton.addMouseListener(new MyClass());
add(exitButton);
setVisible(true);
}
}
/*
interface MouseListener{
public void mouseEntered(MouseEvent evt);
public void mousePressed(MouseEvent evt);
public void mouseReleased(MouseEvent evt);
public void mouseClicked(MouseEvent evt);
public void mouseExited(MouseEvent evt);
}
*/
Page 3 of 30
CMJD Diploma in Comprehensive Master Java Developer
04. Exercise
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Calculator extends JFrame{
JButton setTitleButton;
JTextField textField;
Calculator(){
setSize(300,300);
setTitle("Calculator");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setLayout(new FlowLayout());
textField=new JTextField(10);
textField.setFont(new Font("",1,25));
add(textField);
setVisible(true);
}
}
Page 4 of 30
CMJD Diploma in Comprehensive Master Java Developer
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Calculator extends JFrame{
JButton setTitleButton;
JTextField textField;
Calculator(){
setSize(300,300);
setTitle("Calculator");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setLayout(new FlowLayout());
textField=new JTextField(10);
textField.setFont(new Font("",1,25));
add(textField);
setVisible(true);
}
}
Page 5 of 30
CMJD Diploma in Comprehensive Master Java Developer
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Calculator extends JFrame{
JButton setTitleButton;
JTextField textField;
Calculator(){
setSize(300,300);
setTitle("Calculator");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setLayout(new FlowLayout());
textField=new JTextField(10);
textField.setFont(new Font("",1,25));
add(textField);
setVisible(true);
}
class SetTitleButtonAction implements ActionListener{
public void actionPerformed(ActionEvent evt){
String title=textField.getText();
setTitle(title);
}
}
class Demo{
public static void main(String args[]){
new Calculator();
}
}
Page 6 of 30
CMJD Diploma in Comprehensive Master Java Developer
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Calculator extends JFrame{
JButton setTitleButton;
JTextField textField;
Calculator(){
setSize(300,300);
setTitle("Calculator");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setLayout(new FlowLayout());
textField=new JTextField(10);
textField.setFont(new Font("",1,25));
add(textField);
setTitleButton.addActionListener(new SetTitleButtonAction());
add(setTitleButton);
setVisible(true);
}
class Demo{
public static void main(String args[]){
new Calculator();
Page 7 of 30
CMJD Diploma in Comprehensive Master Java Developer
}
}
Calculator(){
setSize(300,300);
setTitle("Calculator");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setLayout(new FlowLayout());
textField=new JTextField(10);
textField.setFont(new Font("",1,25));
add(textField);
setTitleButton.addActionListener(this);
add(setTitleButton);
setVisible(true);
}
public void actionPerformed(ActionEvent evt){
String title=textField.getText();
setTitle(title);
}
class Demo{
Page 8 of 30
CMJD Diploma in Comprehensive Master Java Developer
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Calculator extends JFrame{
JButton setTitleButton;
JTextField textField;
Calculator(){
setSize(300,300);
setTitle("Calculator");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setLayout(new FlowLayout());
textField=new JTextField(10);
textField.setFont(new Font("",1,25));
add(textField);
setTitleButton=new JButton("Set Title");
setTitleButton.setFont(new Font("",1,25));
//---------------Anonymous Inner Classes-----------------
ActionListener ob=new ActionListener(){
int x;
public void myMethod(){
}
public void actionPerformed(ActionEvent evt){
String title=textField.getText();
setTitle(title);
}
};
setTitleButton.addActionListener(ob);
add(setTitleButton);
setVisible(true);
}
}
class Demo{
public static void main(String args[]){
new Calculator();
}
}
Page 9 of 30
CMJD Diploma in Comprehensive Master Java Developer
10.
Anonymous Inner classes
class Vehicle{
public void park(){
System.out.println("Vehicle Parking...");
}
}
class Demo{
public static void main(String args[]){
Vehicle v1=new Vehicle();
v1.park();
11.
interface Vehicle{
public void park();
}
class Demo{
public static void main(String args[]){
//Vehicle v1=new Vehicle();//Illegal
Page 10 of 30
CMJD Diploma in Comprehensive Master Java Developer
12.
interface Vehicle{
public void park();
}
class Demo{
public static void main(String args[]){
Vehicle v2=new Vehicle(){
//
public void park(){
System.out.println("Car Parking...");
}
}//;//Illegal
v2.park();
}
}
13.
Option 6 for 04 (From Option4)
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Calculator extends JFrame{
JButton setTitleButton;
JTextField textField;
Calculator(){
setSize(300,300);
setTitle("Calculator");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setLayout(new FlowLayout());
textField=new JTextField(10);
textField.setFont(new Font("",1,25));
add(textField);
Page 11 of 30
CMJD Diploma in Comprehensive Master Java Developer
setTitleButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent evt){
String title=textField.getText();
setTitle(title);
}
});
add(setTitleButton);
setVisible(true);
}
class Demo{
public static void main(String args[]){
new Calculator();
}
}
14.
Option 7 for 04 Using “Lambda expression”
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class Calculator extends JFrame{
JButton setTitleButton;
JTextField textField;
Calculator(){
setSize(300,300);
setTitle("Calculator");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setLayout(new FlowLayout());
textField=new JTextField(10);
textField.setFont(new Font("",1,25));
add(textField);
setTitleButton=new JButton("Set Title");
setTitleButton.setFont(new Font("",1,25));
ActionListener ob=(evt)->{
String title=textField.getText();
setTitle(title);
};
Page 12 of 30
CMJD Diploma in Comprehensive Master Java Developer
setTitleButton.addActionListener(ob);
add(setTitleButton);
setVisible(true);
}
class Demo{
public static void main(String args[]){
new Calculator();
}
}
15.
interface Vehicle{
public void park();
}
class Demo{
public static void main(String args[]){
Vehicle v1=new Vehicle(){
public void park(){
System.out.println("Car Parking...");
}
};
v1.park();
Vehicle v2=()->{
System.out.println("Car Parking... Lambda Expression");
};
v2.park();
}
}
16. Case I
interface Vehicle{
public void park();
}
class Demo{
public static void main(String args[]){
Vehicle v1=()->System.out.println("Car Parking... Lambda Expression");
Page 13 of 30
CMJD Diploma in Comprehensive Master Java Developer
v1.park();
}
}
17. Case II
interface Vehicle{
public void park();
}
class Demo{
public static void main(String args[]){
Vehicle v1=()->{
System.out.println("Statement 1 ");
System.out.println("Statement 2 ");
};
v1.park();
}
}
19. Case IV
interface Vehicle{
public void park(int location);
}
class Demo{
public static void main(String args[]){
Vehicle v1=(x)->{
System.out.println("Car Parking "+x);
};
v1.park(1001);
Page 14 of 30
CMJD Diploma in Comprehensive Master Java Developer
20 Case V
interface Vehicle{
public boolean park();
}
class Demo{
public static void main(String args[]){
Vehicle v1=()->true;
//Vehicle v2=()->return true;
Vehicle v3=()->{
//
//
return true;
};
}
}
21. Case VI
interface Vehicle{
public void park();
public void start();
}
class Demo{
public static void main(String args[]){
Vehicle v1=()->{ //illegal
};
Page 15 of 30
CMJD Diploma in Comprehensive Master Java Developer
interface Vehicle{
public void park();
default public void start(){
System.out.println("Default Implementation of start");
}
}
class Demo{
public static void main(String args[]){
Vehicle v1=()->{ //illegal
System.out.println("Car Parking.");
};
v1.park();
v1.start();
}
}
//Vehicle is a functional interface
23. Exercise
interface Math{
public int operate(int num1,int num2);
}
class Demo{
public static void main(String args[]){
}
}
24.
interface Math{
public int operate(int num1,int num2);
}
class Addition implements Math{
public int operate(int num1,int num2){
return num1+num2;
}
}
class Substraction implements Math{
public int operate(int num1,int num2){
return num1-num2;
Page 16 of 30
CMJD Diploma in Comprehensive Master Java Developer
}
}
class Division implements Math{
public int operate(int num1,int num2){
return num1/num2;
}
}
class Multiplication implements Math{
public int operate(int num1,int num2){
return num1*num2;
}
}
class Demo{
public static void main(String args[]){
int a=100,b=50;
int result;
Addition add=new Addition();
Substraction sub=new Substraction();
Division div=new Division();
Multiplication mul=new Multiplication();
}
}
interface Math{
public int operate(int num1,int num2);
}
class Demo{
public static void main(String args[]){
class Addition implements Math{
public int operate(int num1,int num2){
return num1+num2;
}
}
class Substraction implements Math{
public int operate(int num1,int num2){
return num1-num2;
Page 17 of 30
CMJD Diploma in Comprehensive Master Java Developer
}
}
class Division implements Math{
public int operate(int num1,int num2){
return num1/num2;
}
}
class Multiplication implements Math{
public int operate(int num1,int num2){
return num1*num2;
}
}
int a=100,b=50;
int result;
Addition add=new Addition();
Substraction sub=new Substraction();
Division div=new Division();
Multiplication mul=new Multiplication();
}
}
26 From 24.
Using Anonymous
interface Math{
public int operate(int num1,int num2);
}
class Demo{
public static void main(String args[]){
Addition add=new Addition(){
public int operate(int num1,int num2){
return num1+num2;
}
};
Substraction sub= new Substraction(){
public int operate(int num1,int num2){
Page 18 of 30
CMJD Diploma in Comprehensive Master Java Developer
return num1-num2;
}
};
Division div=new Division(){
public int operate(int num1,int num2){
return num1/num2;
}
};
Multiplication mul=new Multiplication(){
public int operate(int num1,int num2){
return num1*num2;
}
};
int a=100,b=50;
int result;
}
}
27 From 24.
Using Lambda Expression
interface Math{
public int operate(int num1,int num2);
}
class Demo{
public static void main(String args[]){
Math add=(num1,num2)->num1+num2;
Math sub=(num1,num2)->num1-num2;
Math div=(num1,num2)->num1/num2;
Math mul=(num1,num2)->num1*num2;
int a=100,b=50;
int result;
Page 19 of 30
CMJD Diploma in Comprehensive Master Java Developer
}
}
Garbage Collections
28.
class MyClass{
long[] ar=new long[100000];
}
class Demo{
public static void main(String args[]){
System.out.println("Start main");
for (int i = 0; i < 10000; i++){
System.out.println("i : "+i);
new MyClass();
}
System.out.println("End main");
}
}
29 From 28
class MyClass{
long[] ar=new long[100000];
}
class Demo{
public static void main(String args[]){
MyClass[] cr=new MyClass[10000];
System.out.println("Start main");
for (int i = 0; i < 10000; i++){
System.out.println("i : "+i);
cr[i]=new MyClass();
}
System.out.println("End main");
}
}
30 Case I.
Page 20 of 30
CMJD Diploma in Comprehensive Master Java Developer
class MyClass{
long[] ar=new long[100000];
public void finalize(){
System.out.println("Deleted...");
}
}
class Demo{
public static void main(String args[]){
MyClass[] cr=new MyClass[10000];
System.out.println("Start main");
for (int i = 0; i < 10000; i++){
System.out.println("i : "+i);
new MyClass();
}
System.out.println("End main");
}
}
31 Case II
class MyClass{
long[] ar=new long[100000];
public void finalize(){
System.out.println("Deleted...");
}
}
class Demo{
public static void main(String args[]){
MyClass[] cr=new MyClass[10000];
System.out.println("Start main");
new MyClass();
new MyClass();
new MyClass();
try{Thread.sleep(2000);}catch(Exception ex){}
System.out.println("End main");
}
}
32 Case III
Page 21 of 30
CMJD Diploma in Comprehensive Master Java Developer
class MyClass{
long[] ar=new long[100000];
public void finalize(){
System.out.println("Deleted...");
}
}
class Demo{
public static void main(String args[]){
MyClass[] cr=new MyClass[10000];
System.out.println("Start main");
new MyClass();
new MyClass();
new MyClass();
System.gc(); //Runtime.getRuntime().gc();
try{Thread.sleep(2000);}catch(Exception ex){}
System.out.println("End main");
}
}
34 Case IV
(Null Referencing)
class MyClass{
int a;
MyClass(int a){this.a=a;}
Page 22 of 30
CMJD Diploma in Comprehensive Master Java Developer
class MyClass{
int a;
MyClass(int a){this.a=a;}
public void finalize(){
System.out.println("Deleted..."+a);
}
}
class Demo{
public static void main(String args[]){
MyClass c1=new MyClass(100);
//c1.ff
//c1.
//
c1=new MyClass(200);
System.gc(); //Runtime.getRuntime().gc();
try{Thread.sleep(1000);}catch(Exception ex){}
System.out.println("End main");
}
}
36 Case VI
class MyClass{
int a;
MyClass(int a){this.a=a;}
public void finalize(){
System.out.println("Deleted..."+a);
}
public void callMethod(){
System.out.println("Running ");
}
}
class Demo{
public static void main(String args[]){
new MyClass(100).callMethod();
//
//
System.gc(); //Runtime.getRuntime().gc();
try{Thread.sleep(1000);}catch(Exception ex){}
System.out.println("End main");
}
}
37 Case VII.
Page 23 of 30
CMJD Diploma in Comprehensive Master Java Developer
Local Scope
class MyClass{
int a;
MyClass(int a){this.a=a;}
}
class Demo{
int x=100;
if(x>0){
MyClass c1=new MyClass(100);
//
//
//
}
System.gc(); //Runtime.getRuntime().gc();
try{Thread.sleep(1000);}catch(Exception ex){}
System.out.println("End main");
}
}
Page 24 of 30
CMJD Diploma in Comprehensive Master Java Developer
SQL JOINS
Traditional Join
INNER JOIN
LEFT JOIN
RIGHT JOIN
Page 25 of 30
CMJD Diploma in Comprehensive Master Java Developer
// wrong**
**SELECT DISTINCT CustName FROM Customer LEFT JOIN Orders ON
Customer.CustID = Orders.CustID;
Page 26 of 30
CMJD Diploma in Comprehensive Master Java Developer
4. Find the customers who have placed orders between January and April
in 2008.
Page 27 of 30
CMJD Diploma in Comprehensive Master Java Developer
9. Find the most movable 10 times of the shop in April 2008 who’s coming
from western province.
11. Find the total income of each order earned by the company in April
2008
Page 28 of 30
CMJD Diploma in Comprehensive Master Java Developer
12. Find the total income of each customer earned by the shop in 2008
13. Find the total income of each customer earned by the shop in 2008 who
are above 65 years old.
Page 29 of 30
CMJD Diploma in Comprehensive Master Java Developer
SUB Query
● SELECT * FROM Customer WHERE CustID IN (SELECT CustID FROM
Customer WHERE Salary > 40000);
Page 30 of 30