Java Programming Language Mr.Rungrote Phonkam rungrote...

Preview:

Citation preview

77

Java Programming LanguageMr.Rungrote Phonkamrungrote@it.kmitl.ac.th

ContentsContents

1. Method Member #22. Constructor3. Finalize4. Mutation and Assessor Method5. Overloading6. Static Scope7. Inner Class

1. Method Member #22. Constructor3. Finalize4. Mutation and Assessor Method5. Overloading6. Static Scope7. Inner Class

Java Programming Language by Rungrote Phonkam

1. Method Member #21. Method Member #21. Method Member #2

� ������������� �����������������������

� ���������������������� ���– Copy Value Parameter– Reference Parameter

� ��������������� ��� !"������#$"%������ Data &�"' ��(���������($ �)� ��������#$��#$" ������%��&�� ����#��*����($���������#���&��'��� ����+,

� -����*�� ��������������*��( �������!"������.� "�����$�return

� ������������� �����������������������

� ���������������������� ���– Copy Value Parameter– Reference Parameter

� ��������������� ��� !"������#$"%������ Data &�"' ��(���������($ �)� ��������#$��#$" ������%��&�� ����#��*����($���������#���&��'��� ����+,

� -����*�� ��������������*��( �������!"������.� "�����$�return

Java Programming Language by Rungrote Phonkam

1. Method Member #21. Method Member #21. Method Member #2

���������������������������������������

Java Programming Language by Rungrote Phonkam

Access_Level final static Return_Type Method_Name ( Argument_List ){

Statementsreturn Expression

}

1. Method Member #21. Method Member #21. Method Member #2

Java Programming Language by Rungrote Phonkam

�������� 1

void methodA ( ){ … }

�������� 1

void methodA ( ){ … }

�������� 2

void methodB (int a){ … }

�������� 2

void methodB (int a){ … }

1. Method Member #21. Method Member #21. Method Member #2

Java Programming Language by Rungrote Phonkam

�������� 3

void methodC (char c, Double obj){ … }

�������� 3

void methodC (char c, Double obj){ … }

�������� 4

int methodD (Float f){ …

return 15;}

�������� 4

int methodD (Float f){ …

return 15;}

1. Method Member #21. Method Member #21. Method Member #2

Java Programming Language by Rungrote Phonkam

�������� 5

Double methodE (Double obj){ …

return new Double(12.45);}

�������� 5

Double methodE (Double obj){ …

return new Double(12.45);}

�������� 6

String methodG (){ … ..

return new Double(12.45);…...

}

�������� 6

String methodG (){ … ..

return new Double(12.45);…...

}

2. Constructors2. Constructors2. Constructors

�����������

� ������������� � ������������������������

� �� ������������ �������������! Data "�#�����������

� � ��������������� �$%�� �����#&��!� ���'�����

� �'��������'�� ����(�������������������)���'�#�*$�!!

� ����+���'�#������������� ����������������������' �������������������*$�!!�� �*$�!!�����

� ������������� ) �������������� �� � �� ���,������&)$

�����������

� ������������� � ������������������������

� �� ������������ �������������! Data "�#�����������

� � ��������������� �$%�� �����#&��!� ���'�����

� �'��������'�� ����(�������������������)���'�#�*$�!!

� ����+���'�#������������� ����������������������' �������������������*$�!!�� �*$�!!�����

� ������������� ) �������������� �� � �� ���,������&)$

Java Programming Language by Rungrote Phonkam

2. Constructors2. Constructors2. Constructorsclass Pen{ private String color;

Pen(String c) { color = c; }public void printPenColor( ){ System.out.println(“Pen is “ + color); }

}class MyPen{ public static void main(String args[])

{ Pen Pen1 = new Pen(“RED”);Pen Pen2 = new Pen(“BLUE”);Pen1.printPenColor( ); Pen2.printPenColor( );

}}

class Pen{ private String color;

Pen(String c) { color = c; }public void printPenColor( ){ System.out.println(“Pen is “ + color); }

}class MyPen{ public static void main(String args[])

{ Pen Pen1 = new Pen(“RED”);Pen Pen2 = new Pen(“BLUE”);Pen1.printPenColor( ); Pen2.printPenColor( );

}}

Java Programming Language by Rungrote Phonkam

2. Constructors2. Constructors2. Constructors

Java Programming Language by Rungrote Phonkam

java MyPenPen is REDpen is BLUE

3. Finalize3. Finalize3. Finalize

���� � �

� ���������������������!�������������

� ���������!'! �� ����'�#� �!��� ��# ���������

� ������������������ ����������� (*����'�#'� -���')� Garbage

Collector

� ��"�.�� �� �� � C++ � ����������������'������� ��)/��')'��� ����������,���-���&� Deconstructor ����-0������� ���������������� free ��!���������

���� � �

� ���������������������!�������������

� ���������!'! �� ����'�#� �!��� ��# ���������

� ������������������ ����������� (*����'�#'� -���')� Garbage

Collector

� ��"�.�� �� �� � C++ � ����������������'������� ��)/��')'��� ����������,���-���&� Deconstructor ����-0������� ���������������� free ��!���������

Java Programming Language by Rungrote Phonkam

3. Finalize3. Finalize3. Finalize

"��-��'������������������) ���#!���#"��-��'������������������) ���#!���#

Java Programming Language by Rungrote Phonkam

������������� ��

��������������� ��

A. ���������

������������� ��

��������������� ��

B. ������������������

������������� ��

��������������� ��

C. ���� ��

������������� ��

��������������� ��

D. ��������� ���!���" ������"�����

3. Finalize3. Finalize3. Finalize

"��-��'���������������������#!���# (�������-��� &��������#&����)"��-��'���������������������#!���# (�������-��� &��������#&����)

Java Programming Language by Rungrote Phonkam

������������� ��

��������������� ��

A. ���������

������������� ��

��������������� ��

B. ������������������

������������� ��

��������������� ��

C. ���� ��

������������� ��

��������������� ��

D. ��������� ���!���" ������"�����

3. Finalize3. Finalize3. Finalizeclass Connection{ Connection( )

{ System.out.print(" Connecting\n"); }void SendData( ){ System.out.print(" Sending\n"); }protected void finalize( ) throws Throwable{ System.out.print(" Closing\n"); }

}class MyConnection{ public static void main(String args[])

{ Connection conn = new Connection( );conn.SendData( );System.runFinalizersOnExit(true);

}}

class Connection{ Connection( )

{ System.out.print(" Connecting\n"); }void SendData( ){ System.out.print(" Sending\n"); }protected void finalize( ) throws Throwable{ System.out.print(" Closing\n"); }

}class MyConnection{ public static void main(String args[])

{ Connection conn = new Connection( );conn.SendData( );System.runFinalizersOnExit(true);

}}

Java Programming Language by Rungrote Phonkam

3. Finalize3. Finalize3. Finalize

Java Programming Language by Rungrote Phonkam

javac –deprecation FileName.javajava MyConnection

4. Mutation and Assessor4. Mutation and Assessor4. Mutation and Assessor

���������� (Mutation)

� �,���������!�����0�������� �� ���$'��#��$'�� ���� Data

"�#���'��� �� ���-��) ���������������$'��#��$'�� � Data �#���� ���������&# set �� � setData( )

�������� ��� (Assessor)

� �,���������!�����0�������� �� ������� �� ��� ���� Data

"�#���'��� �� ���-��) ��������������� ��� � Data �#���� ���������&# get �� � getData( )

���������� (Mutation)

� �,���������!�����0�������� �� ���$'��#��$'�� ���� Data

"�#���'��� �� ���-��) ���������������$'��#��$'�� � Data �#���� ���������&# set �� � setData( )

�������� ��� (Assessor)

� �,���������!�����0�������� �� ������� �� ��� ���� Data

"�#���'��� �� ���-��) ��������������� ��� � Data �#���� ���������&# get �� � getData( )

Java Programming Language by Rungrote Phonkam

4. Mutation and Assessor4. Mutation and Assessor4. Mutation and Assessorclass Baby{ private String name;

private char gender;void setName(String n) { name = n; }String getName ( ) { return name; }void setGender(char g) { gender = g; }char getGender ( ) { return gender; }

}class MyBaby{ public static void main(String args[])

{ Baby Kid = new Baby( );Kid.setName(args[0]);Kid.setGender(args[1].charAt(0));if (Kid.getGender( )=='M')

System.out.print("My Son is ");else System.out.print("My Daughter is ");System.out.print(Kid.getName( ) ); }

}

class Baby{ private String name;

private char gender;void setName(String n) { name = n; }String getName ( ) { return name; }void setGender(char g) { gender = g; }char getGender ( ) { return gender; }

}class MyBaby{ public static void main(String args[])

{ Baby Kid = new Baby( );Kid.setName(args[0]);Kid.setGender(args[1].charAt(0));if (Kid.getGender( )=='M')

System.out.print("My Son is ");else System.out.print("My Daughter is ");System.out.print(Kid.getName( ) ); }

}

Java Programming Language by Rungrote Phonkam

4. Mutation and Assessor4. Mutation and Assessor4. Mutation and Assessor

Java Programming Language by Rungrote Phonkam

java MyBaby Somchai MaleMy Son is Somchaijava MyBaby Somsrt FemaleMy Daughter is Somsri

5. Overloading5. Overloading5. Overloading

������� �����

� � ��1��+2����3.�����������#�$��������&��(4

� ����(�����������,���� ���� �����)�� �� ���������������� �����

� �&����� ���������������������#(��� �������� ��� methodA(int a) �� methodB(char ch)

� ���� ����� ��� methodA(int a) �� methodB(int a, int b)

� ����(���)$�����!�,������&)$ �� ��������������)��

������� �����

� � ��1��+2����3.�����������#�$��������&��(4

� ����(�����������,���� ���� �����)�� �� ���������������� �����

� �&����� ���������������������#(��� �������� ��� methodA(int a) �� methodB(char ch)

� ���� ����� ��� methodA(int a) �� methodB(int a, int b)

� ����(���)$�����!�,������&)$ �� ��������������)��

Java Programming Language by Rungrote Phonkam

5. Overloading5. Overloading5. Overloadingclass Flight1{ String captain_name; int qty_hostess, qty_seat;

void FlightTeam(String n, int h, int s){ captain_name = n; qty_hostess = h; qty_seat = s; }void FlightTeam(String n) { captain_name = n; }void FlightTeam(int s, int h, String n){ captain_name = n; qty_hostess = h; qty_seat = s; }void printInfo( ){ System.out.println("Captain Name \t\t" + captain_name);

System.out.println("Amount of Seat \t\t" + qty_seat);System.out.println("Amount of Air-Hostess\t" + qty_hostess);

}}

class Flight1{ String captain_name; int qty_hostess, qty_seat;

void FlightTeam(String n, int h, int s){ captain_name = n; qty_hostess = h; qty_seat = s; }void FlightTeam(String n) { captain_name = n; }void FlightTeam(int s, int h, String n){ captain_name = n; qty_hostess = h; qty_seat = s; }void printInfo( ){ System.out.println("Captain Name \t\t" + captain_name);

System.out.println("Amount of Seat \t\t" + qty_seat);System.out.println("Amount of Air-Hostess\t" + qty_hostess);

}}

Java Programming Language by Rungrote Phonkam

5. Overloading5. Overloading5. Overloading

class AirLine{ public static void main(String args[])

{ Flight1 f1 = new Flight1();Flight1 f2 = new Flight1();Flight1 f3 = new Flight1();f1.FlightTeam("Peter Anderson", 5, 50);f2.FlightTeam("Sompong N. Lumpang");f3.FlightTeam(120, 10, "Alen Tangee");f1.printInfo(); f2.printInfo(); f3.printInfo();

}}

class AirLine{ public static void main(String args[])

{ Flight1 f1 = new Flight1();Flight1 f2 = new Flight1();Flight1 f3 = new Flight1();f1.FlightTeam("Peter Anderson", 5, 50);f2.FlightTeam("Sompong N. Lumpang");f3.FlightTeam(120, 10, "Alen Tangee");f1.printInfo(); f2.printInfo(); f3.printInfo();

}}

Java Programming Language by Rungrote Phonkam

5. Overloading5. Overloading5. Overloading

Java Programming Language by Rungrote Phonkam

java AirLineCaptain Name Peter AndersonAmount of Seat 50Amount of Air-Hostess 5Captain Name Sompong N. Lumpang

5. Overloading5. Overloading5. Overloadingclass Flight2{ String captain_name;

int qty_hostess, qty_seat;Flight2(String n, int h, int s){ captain_name = n; qty_hostess = h; qty_seat = s; }Flight2(String n){ captain_name = n; }Flight2(int s, int h, String n){ captain_name = n; qty_hostess = h; qty_seat = s; }void printInfo( ){ System.out.println("Captain Name \t\t" + captain_name);

System.out.println("Amount of Seat \t\t" + qty_seat);System.out.println("Amount of Air-Hostess\t" + qty_hostess);

}}

class Flight2{ String captain_name;

int qty_hostess, qty_seat;Flight2(String n, int h, int s){ captain_name = n; qty_hostess = h; qty_seat = s; }Flight2(String n){ captain_name = n; }Flight2(int s, int h, String n){ captain_name = n; qty_hostess = h; qty_seat = s; }void printInfo( ){ System.out.println("Captain Name \t\t" + captain_name);

System.out.println("Amount of Seat \t\t" + qty_seat);System.out.println("Amount of Air-Hostess\t" + qty_hostess);

}}

Java Programming Language by Rungrote Phonkam

5. Overloading5. Overloading5. Overloadingclass AirLine{ public static void main(String a[])

{ Flight2 f1 = new Flight2("Peter Anderson", 5, 50);Flight2 f2 = new Flight2("Sompong N. Lumpang");Flight2 f3 = new Flight2(120, 10, "Alen Tangee");f1.printInfo(); f2.printInfo(); f3.printInfo();

}}

class AirLine{ public static void main(String a[])

{ Flight2 f1 = new Flight2("Peter Anderson", 5, 50);Flight2 f2 = new Flight2("Sompong N. Lumpang");Flight2 f3 = new Flight2(120, 10, "Alen Tangee");f1.printInfo(); f2.printInfo(); f3.printInfo();

}}

Java Programming Language by Rungrote Phonkam

6. Static Block6. Static Block6. Static Block

������ ��� (Static Block)

� ��$�� �!'5��������������&#��#��&���� static

� ����(*�������#* "�#���'�� �'0����,���� (*����������!���������� �������� (Initialization)

� (*������������������������'�������'�-��)/'� Bytecodes �����* JVM

������class Class_Name {

static { … }}

������ ��� (Static Block)

� ��$�� �!'5��������������&#��#��&���� static

� ����(*�������#* "�#���'�� �'0����,���� (*����������!���������� �������� (Initialization)

� (*������������������������'�������'�-��)/'� Bytecodes �����* JVM

������class Class_Name {

static { … }}

Java Programming Language by Rungrote Phonkam

6. Static Block6. Static Block6. Static Blockclass Employee{ String name;

long salary;short employee_number;

static int total_payroll;

static{ System.out.println(“Calculating payroll total “);

salary = 3000;}

}

class Employee{ String name;

long salary;short employee_number;

static int total_payroll;

static{ System.out.println(“Calculating payroll total “);

salary = 3000;}

}

Java Programming Language by Rungrote Phonkam

7. Static Class7. Static Class7. Static Class

������� �� (Static Class)

� ������!��������������'�� ������#(�� Constructors, Method, Data

Member ����#* "�#�� �����4+�!����$%�������������

� (*�����������"�#���'�� ���������&#��#��&���� static

� ������� &��!��#��&���� this ) )��

������class Outer_Class_Name {

static class Inner_Class_Name{ … }…..

}

������� �� (Static Class)

� ������!��������������'�� ������#(�� Constructors, Method, Data

Member ����#* "�#�� �����4+�!����$%�������������

� (*�����������"�#���'�� ���������&#��#��&���� static

� ������� &��!��#��&���� this ) )��

������class Outer_Class_Name {

static class Inner_Class_Name{ … }…..

}

Java Programming Language by Rungrote Phonkam

8. Inner Class8. Inner Class8. Inner Class

������� �� (Inner Class)

� �! ��$%� 3 �!!� Member Class

�'�����(*�������)&�"�#���'�� (�0��!���#&��! Data �'0Method)

� Local Class

�'����������)&�"�#�� Method

� Anonymous Class

�'�������������&#���������������������

������� �� (Inner Class)

� �! ��$%� 3 �!!� Member Class

�'�����(*�������)&�"�#���'�� (�0��!���#&��! Data �'0Method)

� Local Class

�'����������)&�"�#�� Method

� Anonymous Class

�'�������������&#���������������������

Java Programming Language by Rungrote Phonkam

8. Inner Class8. Inner Class8. Inner Class

� ) ����(����(��)��"�#�����&�'������$%� Parent

� ���0��!���������'�������������) ��� (*�������������������0!! GUI �� �������! Event Handler

� ) ����(����(��)��"�#�����&�'������$%� Parent

� ���0��!���������'�������������) ��� (*�������������������0!! GUI �� �������! Event Handler

Java Programming Language by Rungrote Phonkam

8.1. Member Class8.1. Member Class8.1. Member Classclass top {

int I=33;

class myNested {int k=I;void foo() { }

}

void bar() {myNested mn1 = new myNested();myNested mn2 = new myNested();mn1.k = 564 * mn2.k;

}}

class top {int I=33;

class myNested {int k=I;void foo() { }

}

void bar() {myNested mn1 = new myNested();myNested mn2 = new myNested();mn1.k = 564 * mn2.k;

}}

Java Programming Language by Rungrote Phonkam

8.2. Local Class8.2. Local Class8.2. Local Class//<applet code=f.class height=100 width=200> </applet>

import java.applet.*;import java.awt.*;import java.awt.event.*;public class f extends Applet {

Button apple = new Button("press me");public void init() {

class MyinnerBHClass implements java.awt.event.ActionListener{ int i=1;

public void actionPerformed(ActionEvent e){ System.out.println("button pressed "+ i++ +" times"); }

}

add(apple);apple.addActionListener( new MyinnerBHClass() );

}}

//<applet code=f.class height=100 width=200> </applet>import java.applet.*;import java.awt.*;import java.awt.event.*;public class f extends Applet {

Button apple = new Button("press me");public void init() {

class MyinnerBHClass implements java.awt.event.ActionListener{ int i=1;

public void actionPerformed(ActionEvent e){ System.out.println("button pressed "+ i++ +" times"); }

}

add(apple);apple.addActionListener( new MyinnerBHClass() );

}}

Java Programming Language by Rungrote Phonkam

8.2. Local Class8.2. Local Class8.2. Local Class

�����������

• f.class• f$1$MyinnerBHClass.class

�����������

• f.class• f$1$MyinnerBHClass.class

Java Programming Language by Rungrote Phonkam

8.3. Anonymous Class8.3. Anonymous Class8.3. Anonymous Class//<applet code=f2.class height=100 width=200> </applet>import java.applet.*;import java.awt.*;import java.awt.event.*;public class f2 extends Applet {

Button apple = new Button("press me");public void init() {

add(apple);apple.addActionListener(

new ActionListener(){ public void actionPerformed(ActionEvent e)

{ System.out.println( e.paramString() + " pressed"); }} // end anon class

); // end method call}

}

//<applet code=f2.class height=100 width=200> </applet>import java.applet.*;import java.awt.*;import java.awt.event.*;public class f2 extends Applet {

Button apple = new Button("press me");public void init() {

add(apple);apple.addActionListener(

new ActionListener(){ public void actionPerformed(ActionEvent e)

{ System.out.println( e.paramString() + " pressed"); }} // end anon class

); // end method call}

}

Java Programming Language by Rungrote Phonkam

8.3. Anonymous Class8.3. Anonymous Class8.3. Anonymous Class

�����������

• f.class• f$1.class

�����������

• f.class• f$1.class

Java Programming Language by Rungrote Phonkam

Recommended