SlideShare a Scribd company logo
1 of 29
Mobile Programming with J2ME
               By Oluwatosin Adesanya
Lesson 01:
Basic Java Programming
Java is ...
     •   A Pure OOP Language
     •   A Hybrid Programming Language
     •   First Compiled and Interpreted
     •   Runs on a JVM (Java Virtual Machine)



                      Byte Code




Source                                          Object
 Code                                           Code
Getting Started

• JDK (Java Development Kit)
• Editor (Notepad) OR ...
• Integrated Development Environment (Netbeans, Eclipse,
  JCreator etc.)
Setting Up Java

• Install the JDK
• The JDK Sits in C:Program FilesJavajdk1.6.0
• Set the PATH Environmental Variable (How?)
Setting the PATH Environmental Variable

Open your Systems Property: choose Advanced System Settings, Click
the Environmental Variable Button on the Dialog that shows Up
Setting the PATH Environmental Variable

Scroll and Select Path , Click Edit Button
Setting the PATH Environmental Variable

Append the current path with the path to the Java bin folder
Running Java

• Save your Java source code as a .java file
• Use the javac Command to compile your source codes (.java files)
  e.g javac Result.java
• A .class file is generated called a bytecode
• Use java Command to run the .class file e.g java Result
• Do not add .class when compiling




      Source                                          Object
                  javac     Byte Code     java
       Code                                           Code
The Structure of a Java Program

• Java Programs are made up of classes
• Classes are made up of methods
• Java existing (ready-made) classes are found in the Java Class
  Libraries (Also Called Java APIs)
• Execution of Java programs begin at the main method
A Simple Java Program


public class HelloWorld {
  public static void main(String[] args) {
      System.out.println("Hello World!");
  }
}
Classes and Objects

• A Class is like a factory from which Objects are churned Out.

   Example
   Class Car could produce objects Volkswagen bettles, Toyota Camri,
   Peugeout 306

   An Object is a model of the Real World and has
   States (Or Properties) and
   Behaviours (Or Actions)

   Example
   Object Car States are Color, Speed, Size, Plate Licence No, Cost
   Behaviours are Start, Stop, Accelerate, Fuel, Open Door, etc.
Creating a Class

Use the class Keyword

Example
public class HelloWorld {
          .
          .
          .
    }

Do NOT Forget!
Name your java file ClassName.java
Adding States (Properties)

• States in Java are simply variables (Otherwise called fields)

   Example

   public class PaySlip {
       int numdone;
       String name;
   }


   Observe?!
   Every Line of Java code ends with a semicolon (;)

  int,float, double,
  boolean, char … are Java Primitive Types
Adding Behaviours (Methods)

•   Methods are functions that control states or fields or variables. They
    change the state of an object.

    Example

    public class PaySlip {
        int numdone;
        String name;

         public double getPay() {
               return 40.00 * numdone;
         }
                                                         Method getPay()
    }


    Guess What? We already have a working Java Class!
Using Our Class PaySlip

We implement another tester class which
contains the main method.


public class TestPaySlip {
      public static void main(String[] args){
            PaySlip opay=new PaySlip();
            System.out.println("n"+opay.getPay());
      }
}
Constructors

•   Initializes the Object after memory allocation
•   Takes the same name as the Class
•   May accept parameters OR... may not
•   Every Class has a default constructor that accepts no parameter
•   Has No Return Type
•   Can be Overloaded (there can be multiple Constructors)
Constructors
public class PaySlip {
   int numdone;
   String name;

    public PaySlip(int numdone, String name) {
        this.numdone=numdone; this.name=name;
    }

    public PaySlip(){
        name=“Nobody”;
        numdone=0;
    }

    public double getPay() {
        return 40.00 * numdone;
    }
}
Sorry...



• Confused?
• Questions?
Lesson 02:
Java 2 Micro Edition(J2ME)
J2ME is ...

•   Java for small devices
•   Divided into Configurations, Profiles and Optional APIs

    Configurations, Profiles and Optional APIs combined together make up
    a stack

    Configurations: Specifies a JVM. We have CDC and CLDC

    CLDC (Connected Limited Device Configuration) is designed for
    devices with limited memory, displays, battery power and inputs.

    Profiles: Layered on top of CLDC and adds APIs for specific devices.
    We have MIDP, PDAP and Personal Profiles

    MIDP (Mobile Information Device Profile) has characteristics that makes
    most low end phones and PDAs fit in. J2ME is covered by MIDPs
Anatomy of MIDP Apps
MIDP Apps are ...

• Called MIDlets
• Portable
• Secured
• represented by instances of
  javax.microedition.midlet.MIDlet class
• Distributed as JAR (Java Archive) files along with a MANIFEST file
  and an Application Descriptor File (.jad file)
• Reduced to small sizes before distribution by an Obfuscator




    Popular J2ME Apps: Opera Mini, 2go, Go Bible
The MIDlet Life Cycle
Shall We Create a MIDlet?

package com.thinkit2ru;

import javax.microedition.midlet.*;

public class Metric extends MIDlet {

    public void startApp() {
    }

    public void pauseApp() {
    }

    public void destroyApp(boolean unconditional) {
    }
}
Remember the Constructor?
package com.thinkit2ru;

import javax.microedition.midlet.*;

public class Metric extends MIDlet {

    public Metric() {          The Contructor:
    }                          Build Components Here
    public void startApp() {
    }

    public void pauseApp() {
    }

    public void destroyApp(boolean unconditional) {
    }
}
You need to Know...

•   Primitive data types
•   String Manipulation
•   Control Statements
•   Arrays and other data structures
•   GUI Design
•   Database Connectivity
•   Multithreading
•   Ethics and Conventions
Questions Please...
System.out.println(“Thank You”);

More Related Content

What's hot

Collection Framework in Java | Generics | Input-Output in Java | Serializatio...
Collection Framework in Java | Generics | Input-Output in Java | Serializatio...Collection Framework in Java | Generics | Input-Output in Java | Serializatio...
Collection Framework in Java | Generics | Input-Output in Java | Serializatio...Sagar Verma
 
Java tutorials
Java tutorialsJava tutorials
Java tutorialssaryu2011
 
Java basic part 2 : Datatypes Keywords Features Components Security Exceptions
Java basic part 2 : Datatypes Keywords Features Components Security Exceptions Java basic part 2 : Datatypes Keywords Features Components Security Exceptions
Java basic part 2 : Datatypes Keywords Features Components Security Exceptions Soumen Santra
 
Java 201 Intro to Test Driven Development in Java
Java 201   Intro to Test Driven Development in JavaJava 201   Intro to Test Driven Development in Java
Java 201 Intro to Test Driven Development in Javaagorolabs
 
Java 101 Intro to Java Programming
Java 101 Intro to Java ProgrammingJava 101 Intro to Java Programming
Java 101 Intro to Java Programmingagorolabs
 
Synapseindia reviews.odp.
Synapseindia reviews.odp.Synapseindia reviews.odp.
Synapseindia reviews.odp.Tarunsingh198
 
Core Java introduction | Basics | free course
Core Java introduction | Basics | free course Core Java introduction | Basics | free course
Core Java introduction | Basics | free course Kernel Training
 
New Features Of JDK 7
New Features Of JDK 7New Features Of JDK 7
New Features Of JDK 7Deniz Oguz
 
Core java Basics
Core java BasicsCore java Basics
Core java BasicsRAMU KOLLI
 
Intro to Object Oriented Programming with Java
Intro to Object Oriented Programming with Java Intro to Object Oriented Programming with Java
Intro to Object Oriented Programming with Java Hitesh-Java
 
Manuel - SPR - Intro to Java Language_2016
Manuel - SPR - Intro to Java Language_2016Manuel - SPR - Intro to Java Language_2016
Manuel - SPR - Intro to Java Language_2016Manuel Fomitescu
 
Introduction to java 101
Introduction to java 101Introduction to java 101
Introduction to java 101kankemwa Ishaku
 

What's hot (20)

Core Java Tutorial
Core Java TutorialCore Java Tutorial
Core Java Tutorial
 
Core java
Core javaCore java
Core java
 
Core java
Core java Core java
Core java
 
Java Tutorial
Java TutorialJava Tutorial
Java Tutorial
 
1_JavIntro
1_JavIntro1_JavIntro
1_JavIntro
 
Collection Framework in Java | Generics | Input-Output in Java | Serializatio...
Collection Framework in Java | Generics | Input-Output in Java | Serializatio...Collection Framework in Java | Generics | Input-Output in Java | Serializatio...
Collection Framework in Java | Generics | Input-Output in Java | Serializatio...
 
Java tutorials
Java tutorialsJava tutorials
Java tutorials
 
Java tutorials
Java tutorialsJava tutorials
Java tutorials
 
Java basic part 2 : Datatypes Keywords Features Components Security Exceptions
Java basic part 2 : Datatypes Keywords Features Components Security Exceptions Java basic part 2 : Datatypes Keywords Features Components Security Exceptions
Java basic part 2 : Datatypes Keywords Features Components Security Exceptions
 
Java 201 Intro to Test Driven Development in Java
Java 201   Intro to Test Driven Development in JavaJava 201   Intro to Test Driven Development in Java
Java 201 Intro to Test Driven Development in Java
 
Java 101 Intro to Java Programming
Java 101 Intro to Java ProgrammingJava 101 Intro to Java Programming
Java 101 Intro to Java Programming
 
Basic java for Android Developer
Basic java for Android DeveloperBasic java for Android Developer
Basic java for Android Developer
 
Synapseindia reviews.odp.
Synapseindia reviews.odp.Synapseindia reviews.odp.
Synapseindia reviews.odp.
 
Java for the Beginners
Java for the BeginnersJava for the Beginners
Java for the Beginners
 
Core Java introduction | Basics | free course
Core Java introduction | Basics | free course Core Java introduction | Basics | free course
Core Java introduction | Basics | free course
 
New Features Of JDK 7
New Features Of JDK 7New Features Of JDK 7
New Features Of JDK 7
 
Core java Basics
Core java BasicsCore java Basics
Core java Basics
 
Intro to Object Oriented Programming with Java
Intro to Object Oriented Programming with Java Intro to Object Oriented Programming with Java
Intro to Object Oriented Programming with Java
 
Manuel - SPR - Intro to Java Language_2016
Manuel - SPR - Intro to Java Language_2016Manuel - SPR - Intro to Java Language_2016
Manuel - SPR - Intro to Java Language_2016
 
Introduction to java 101
Introduction to java 101Introduction to java 101
Introduction to java 101
 

Similar to Java Programming and J2ME: The Basics

Similar to Java Programming and J2ME: The Basics (20)

oop unit1.pptx
oop unit1.pptxoop unit1.pptx
oop unit1.pptx
 
CS8392 OOP
CS8392 OOPCS8392 OOP
CS8392 OOP
 
1 java programming- introduction
1  java programming- introduction1  java programming- introduction
1 java programming- introduction
 
Java For beginners and CSIT and IT students
Java  For beginners and CSIT and IT studentsJava  For beginners and CSIT and IT students
Java For beginners and CSIT and IT students
 
Pj01 2-install java and write first java program
Pj01 2-install java and write first java programPj01 2-install java and write first java program
Pj01 2-install java and write first java program
 
Module 1.pptx
Module 1.pptxModule 1.pptx
Module 1.pptx
 
Introduction to java
Introduction to java Introduction to java
Introduction to java
 
ITFT - Java Coding
ITFT - Java CodingITFT - Java Coding
ITFT - Java Coding
 
Java introduction
Java introductionJava introduction
Java introduction
 
JavaClassPresentation
JavaClassPresentationJavaClassPresentation
JavaClassPresentation
 
Java Programming concept
Java Programming concept Java Programming concept
Java Programming concept
 
Letest
LetestLetest
Letest
 
02 basic java programming and operators
02 basic java programming and operators02 basic java programming and operators
02 basic java programming and operators
 
Java Programming
Java ProgrammingJava Programming
Java Programming
 
Fundamentals of java --- version 2
Fundamentals of java --- version 2Fundamentals of java --- version 2
Fundamentals of java --- version 2
 
Object Oriented Programming-JAVA
Object Oriented Programming-JAVAObject Oriented Programming-JAVA
Object Oriented Programming-JAVA
 
OOP with Java
OOP with JavaOOP with Java
OOP with Java
 
Java part 1
Java part 1Java part 1
Java part 1
 
Java
JavaJava
Java
 
Introduction to java programming part 1
Introduction to java programming   part 1Introduction to java programming   part 1
Introduction to java programming part 1
 

Recently uploaded

call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4MiaBumagat1
 
DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersSabitha Banu
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxthorishapillay1
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designMIPLM
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptxmary850239
 
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYKayeClaireEstoconing
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Mark Reed
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxCarlos105
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxAshokKarra1
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPCeline George
 
Science 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxScience 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxMaryGraceBautista27
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSJoshuaGantuangco2
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfSpandanaRallapalli
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfTechSoup
 
Gas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxGas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxDr.Ibrahim Hassaan
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Celine George
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for BeginnersSabitha Banu
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfphamnguyenenglishnb
 

Recently uploaded (20)

call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
call girls in Kamla Market (DELHI) 🔝 >༒9953330565🔝 genuine Escort Service 🔝✔️✔️
 
ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4ANG SEKTOR NG agrikultura.pptx QUARTER 4
ANG SEKTOR NG agrikultura.pptx QUARTER 4
 
DATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginnersDATA STRUCTURE AND ALGORITHM for beginners
DATA STRUCTURE AND ALGORITHM for beginners
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptx
 
Keynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-designKeynote by Prof. Wurzer at Nordex about IP-design
Keynote by Prof. Wurzer at Nordex about IP-design
 
4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx
 
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITYISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
ISYU TUNGKOL SA SEKSWLADIDA (ISSUE ABOUT SEXUALITY
 
Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)Influencing policy (training slides from Fast Track Impact)
Influencing policy (training slides from Fast Track Impact)
 
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptxBarangay Council for the Protection of Children (BCPC) Orientation.pptx
Barangay Council for the Protection of Children (BCPC) Orientation.pptx
 
OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...OS-operating systems- ch04 (Threads) ...
OS-operating systems- ch04 (Threads) ...
 
Karra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptxKarra SKD Conference Presentation Revised.pptx
Karra SKD Conference Presentation Revised.pptx
 
How to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERPHow to do quick user assign in kanban in Odoo 17 ERP
How to do quick user assign in kanban in Odoo 17 ERP
 
Science 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptxScience 7 Quarter 4 Module 2: Natural Resources.pptx
Science 7 Quarter 4 Module 2: Natural Resources.pptx
 
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTSGRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
GRADE 4 - SUMMATIVE TEST QUARTER 4 ALL SUBJECTS
 
ACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdfACC 2024 Chronicles. Cardiology. Exam.pdf
ACC 2024 Chronicles. Cardiology. Exam.pdf
 
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdfInclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
Inclusivity Essentials_ Creating Accessible Websites for Nonprofits .pdf
 
Gas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptxGas measurement O2,Co2,& ph) 04/2024.pptx
Gas measurement O2,Co2,& ph) 04/2024.pptx
 
Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17Field Attribute Index Feature in Odoo 17
Field Attribute Index Feature in Odoo 17
 
Full Stack Web Development Course for Beginners
Full Stack Web Development Course  for BeginnersFull Stack Web Development Course  for Beginners
Full Stack Web Development Course for Beginners
 
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdfAMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
AMERICAN LANGUAGE HUB_Level2_Student'sBook_Answerkey.pdf
 

Java Programming and J2ME: The Basics

  • 1. Mobile Programming with J2ME By Oluwatosin Adesanya
  • 2. Lesson 01: Basic Java Programming
  • 3. Java is ... • A Pure OOP Language • A Hybrid Programming Language • First Compiled and Interpreted • Runs on a JVM (Java Virtual Machine) Byte Code Source Object Code Code
  • 4. Getting Started • JDK (Java Development Kit) • Editor (Notepad) OR ... • Integrated Development Environment (Netbeans, Eclipse, JCreator etc.)
  • 5. Setting Up Java • Install the JDK • The JDK Sits in C:Program FilesJavajdk1.6.0 • Set the PATH Environmental Variable (How?)
  • 6. Setting the PATH Environmental Variable Open your Systems Property: choose Advanced System Settings, Click the Environmental Variable Button on the Dialog that shows Up
  • 7. Setting the PATH Environmental Variable Scroll and Select Path , Click Edit Button
  • 8. Setting the PATH Environmental Variable Append the current path with the path to the Java bin folder
  • 9. Running Java • Save your Java source code as a .java file • Use the javac Command to compile your source codes (.java files) e.g javac Result.java • A .class file is generated called a bytecode • Use java Command to run the .class file e.g java Result • Do not add .class when compiling Source Object javac Byte Code java Code Code
  • 10. The Structure of a Java Program • Java Programs are made up of classes • Classes are made up of methods • Java existing (ready-made) classes are found in the Java Class Libraries (Also Called Java APIs) • Execution of Java programs begin at the main method
  • 11. A Simple Java Program public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } }
  • 12. Classes and Objects • A Class is like a factory from which Objects are churned Out. Example Class Car could produce objects Volkswagen bettles, Toyota Camri, Peugeout 306 An Object is a model of the Real World and has States (Or Properties) and Behaviours (Or Actions) Example Object Car States are Color, Speed, Size, Plate Licence No, Cost Behaviours are Start, Stop, Accelerate, Fuel, Open Door, etc.
  • 13. Creating a Class Use the class Keyword Example public class HelloWorld { . . . } Do NOT Forget! Name your java file ClassName.java
  • 14. Adding States (Properties) • States in Java are simply variables (Otherwise called fields) Example public class PaySlip { int numdone; String name; } Observe?! Every Line of Java code ends with a semicolon (;) int,float, double, boolean, char … are Java Primitive Types
  • 15. Adding Behaviours (Methods) • Methods are functions that control states or fields or variables. They change the state of an object. Example public class PaySlip { int numdone; String name; public double getPay() { return 40.00 * numdone; } Method getPay() } Guess What? We already have a working Java Class!
  • 16. Using Our Class PaySlip We implement another tester class which contains the main method. public class TestPaySlip { public static void main(String[] args){ PaySlip opay=new PaySlip(); System.out.println("n"+opay.getPay()); } }
  • 17. Constructors • Initializes the Object after memory allocation • Takes the same name as the Class • May accept parameters OR... may not • Every Class has a default constructor that accepts no parameter • Has No Return Type • Can be Overloaded (there can be multiple Constructors)
  • 18. Constructors public class PaySlip { int numdone; String name; public PaySlip(int numdone, String name) { this.numdone=numdone; this.name=name; } public PaySlip(){ name=“Nobody”; numdone=0; } public double getPay() { return 40.00 * numdone; } }
  • 20. Lesson 02: Java 2 Micro Edition(J2ME)
  • 21. J2ME is ... • Java for small devices • Divided into Configurations, Profiles and Optional APIs Configurations, Profiles and Optional APIs combined together make up a stack Configurations: Specifies a JVM. We have CDC and CLDC CLDC (Connected Limited Device Configuration) is designed for devices with limited memory, displays, battery power and inputs. Profiles: Layered on top of CLDC and adds APIs for specific devices. We have MIDP, PDAP and Personal Profiles MIDP (Mobile Information Device Profile) has characteristics that makes most low end phones and PDAs fit in. J2ME is covered by MIDPs
  • 23. MIDP Apps are ... • Called MIDlets • Portable • Secured • represented by instances of javax.microedition.midlet.MIDlet class • Distributed as JAR (Java Archive) files along with a MANIFEST file and an Application Descriptor File (.jad file) • Reduced to small sizes before distribution by an Obfuscator Popular J2ME Apps: Opera Mini, 2go, Go Bible
  • 25. Shall We Create a MIDlet? package com.thinkit2ru; import javax.microedition.midlet.*; public class Metric extends MIDlet { public void startApp() { } public void pauseApp() { } public void destroyApp(boolean unconditional) { } }
  • 26. Remember the Constructor? package com.thinkit2ru; import javax.microedition.midlet.*; public class Metric extends MIDlet { public Metric() { The Contructor: } Build Components Here public void startApp() { } public void pauseApp() { } public void destroyApp(boolean unconditional) { } }
  • 27. You need to Know... • Primitive data types • String Manipulation • Control Statements • Arrays and other data structures • GUI Design • Database Connectivity • Multithreading • Ethics and Conventions