Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
0% found this document useful (0 votes)
7 views

Lecture 3 OOP (Java Syntax)

Uploaded by

haseebkhalid589
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views

Lecture 3 OOP (Java Syntax)

Uploaded by

haseebkhalid589
Copyright
© © All Rights Reserved
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 47

JAVA SYNTAX

BY MUHAMMAD ABU BAKAR


WRITING BASIC JAVA PROGRAM

SYNTAX FOR C++ PROGRAMMERS


SOFTWARE REQUIREMENTS
• For the start following software will do the job
• You need to have the latest version of JDK. (J2SE 5.0) You can
download it for free from
 http://java.sun.com/j2se/
 A little older versions such JDK 1.4 or 1.3 will also work
• Notepad
• And you should set your path variable.
CANONICAL EXAMPLE
HELLOWORLD APPLICATION IN JAVA

/* The HelloWorldApp class implements an application that simply displays


"Hello World!" to the standard output. */

public class HelloWorldApp {

public static void main(String[] args) {

//Display the string. No global main

System.out.println("Hello World!"); }
}
COMPILING AND RUNNING
THE PROGRAM

• Save this file in some directory and compile it using


• javac HelloWorldApp.java

• Run the compiled file by using the command


• java HelloWorldApp
JAVA PROGRAM DEVELOPMENT AND EXECUTION
STEPS

• Java Systems
• Consist of environment, language, Java Applications
Programming Interface (API)
• Java programs have five phases

1. Edit
• .java extension

2. Compile
• javac command: javac MyProgram.java
• Creates .class file containing bytecodes with similar name
JAVA PROGRAM DEVELOPMENT AND EXECUTION
STEPS…

3. Loading
• Class loader transfers .class file into memory
• Classes loaded and executed by interpreter with java
command
• To load,
appletviewer Welcome.html
OR
java MyProgram
JAVA PROGRAM DEVELOPMENT AND EXECUTION
STEPS…

4. Verify
• Bytecode verifier makes sure bytecodes are valid and do
not violate security

5. Execute
• Computer interprets program one bytecode at a time
• Performs actions specified in program
Program is created in
Phase 1 Editor Disk the editor and stored
on disk.
Compiler creates
Phase 2 Compiler Disk bytecodes and stores
them on disk.
Primary
Memory
Class Loader
Phase 3
Class loader puts
bytecodes in memory.
Disk
..
..
..
Primary
Memory
Bytecode Verifier
Phase 4 Bytecode verifier
confirms that all
bytecodes are valid
and do not violate
Java’s security
.. restrictions.
..
..
Primary
Interpreter Memory Interpreter reads
Phase 5 bytecodes and
translates them into a
language that the
computer can
understand, possibly
.. storing data values as
.. the program executes.
..
UNDERSTANDING BASICS

• Naming Conventions
• MyClass
• myMethod()
• myVariable
• MY_CONSTANT
PERFORMING BASIC
TASKS
IN JAVA
TOPICS
• Things to Remember
• Taking in command line arguments
• Primitives vs. Objects
• Wrapper classes and Conversions
• Taking Input and Output using Swing
• Selection and Control Structures
• OOP in java (Defining and using class)
THINGS TO REMEMBER
• Name of file must match name of class
• It is case sensitive

• Processing starts in main


• public static void main(String[] args)

• Printing is done with System.out


• System.out.println, System.out.print

• Compile with “javac”


• Open DOS/command prompt window; work from
there
• Supply full case-sensitive file name (with file
extension)

• Execute with “java”


AN IDIOM EXPLAINED
• You will see the following line of code often:
• public static void main(String args[]) { …}

• About main()
• “main” is the function from which your program
starts

• Why public?
• So that run time can call it from outside

• Why static ?
• it is made static so that we can call it without creating an
object

• What is String args[] ?


• Way of specifying input at startup of application
THINGS TO REMEMBER
• “+” operator when used with Strings concatenates them
• System.out.pritln(“Hello” + “World”) will produce Hello World
on console

• String concatenated with any other data type such as int will
also convert that datatype to String and the result will be a
concatenated String displayed on console
• For Example
• int i = 4
• int j = 5 ;
• System .out.println (“Hello” + i) // will print Hello 4 on screen
• However
• System,.out..println( i+j) ; // will print 9 on the console

• For comparing Strings never use == operator, use


equals methos.
• == compares addresses (shallow comparison) while equals
compares values (deep comparison)
• E.g string1.equals(string2)
STRING CONCATENATION
public class StringTest {

public static void main(String[] args) {


int i = 4;
int j = 5;

System.out.println("Hello" + i);
System.out.println(i + j);

String s1 = new String (“pakistan”);


String s2 = “pakistan”;

if (s1 == s2) {
System.out.println(“comparing string using == operator”);
}

if (s1.equals( s2) ) {
System.out.println(“comparing string using equal method”);
}
}
COMPILE AND EXECUTE
TAKING IN COMMAND
LINE ARGUMENTS
TAKING IN COMMAND LINE
ARGUMENTS
/* This program will take two arguments Hello World from the
command prompt and prints them to standard console. If you
specify less than two arguments an exception will be thrown */

public class TwoArgsApp {

public static void main(String[] args) {

//Displays the first argument on console


System.out.println(“First argument “ +
args[0]);

//Displays the second argument on console


System.out.println(“Second argument “ + args[1]);
}
PASSING ANY NUMBER OF
ARGUMENTS
/* This program is able to receive any number of arguments and prints them to
console using for loop. In java, arrays knows about their size by using length
property
*/

public class AnyArgsApp {

public static void main(String[] args) {

for (int i=0; i<args.length; i++)


{

// The “+” operator here works similar to “<<“ operator in C++. This line
is // equivalent to
cout<<“Arguments:”<<i<<“value”<<args[i];
// where cout is replaced by System.out.println, and “<<“ is
replaced by + for // concatenation

System.out.println(“Argument:” + i + “value: ” + args[i] );


}
COMPILE AND EXECUTE
PRIMITIVES VS. OBJECTS
PRIMITIVES VS. OBJECTS
• Everything in Java is an “Object”, as every class by default inherits from
class “Object” , except a few primitive data types, which are there for
efficiency reasons.

• Primitive Data Types


• 8 Primitive Data types of java
• boolean, byte  1 byte
• char, short  2 bytes
• int, float  4 bytes
• long, double  8 bytes

• Primitive data types are generally used for local variables, parameters and
instance variables (properties of an object)

• Primitive datatypes are located on the stack and we can only access their
value, while objects are located on heap and we have a reference to these
objects

• Also primitive data types are always passed by value while objects are
always passed by reference in java. There is no C++ like methods
STACK VS. HEAP
Stack Heap
public static void main(String args[])
{
int num= 5; num
5
Student st = new Student();

} 0F59
name
ali
st
0F59
PRIMITIVES (CONT)
• For all built-in primitive data types java uses lowercase. E.g int , float
etc

• Primitives can be stored in arrays

• You cannot get a reference to a primitive


• To do that you need an Object or a Wrapper class
WRAPPER CLASSES
WRAPPER CLASSES
• Each primitive data type
has a corresponding Primitive Corresponding
object (wrapper class) Data Type Object Class
byte Byte
short Short

• These Wrapper classes int


long
Integer
Long
provides additional float Float
functionality double Double
(conversion, size char Character
checking etc), which a boolean Boolean
primitive data type can
not provide
WRAPPER USE
• You can create an object of Wrapper class using a String or a
primitive data type
• Integer num = new Integer(4); or
• Integer num = new Integer(“4”);
• Num is an object over here not a primitive data type

• You can get a primitive data type from a Wrapper using the
corresponding value function
• int primNum = num.intValue();
STACK VS. HEAP
Stack Heap
public static void main(String args[])
{
int num= 5; num
5
Integer numObj = new Integer (10);
}
04E2

10
numObj

04E2
WRAPPER USES
• Defines useful constants for each data type
• For example,
Integer.MAX_VALUE

• Convert between data types


• Use parseXxx method to convert a String to the
corresponding primitive data type
• String value = “532";
int d = Integer.parseInt(value);

• String value = "3.14e6";


double d = Double.parseDouble(value);
WRAPPERS: CONVERTING
STRINGS
Data Type Convert String using either …
byte Byte.parseByte( string )
new Byte(string ).byteValue()
short Short.parseShort( string )
new Short(string ).shortValue()
int (stringstring
Integer.parseInteger( ) )
new Integer( string ).intValue()
long Long.parseLong( string )
new Long(string ).longValue()
float Float.parseFloat( string )
new Float(string ).floatValue()
double Double.parseDouble( string )
new Double( string ).doubleValue()
WRAPPER USES
• When a method does not except an int primitive but still you need to pass an int value, you can
use the corresponding Wrapper.
• someVector.add(new Integer(4) ); // this was required prior to jdk5.0 the l

• Boxing/Unboxing Conversions
• New feature added in j2se 5.0
• Boxing
• Integer iWrapper = 10;
• Prior to J2SE 5.0, we use
• Integer a = new Integer(10);

• Unboxing
• int iPrimitive = iWrapper;
• Prior to J2SE 5.0, we use
• int b = iWrapper.intValue();
INPUT / OUTPUT
CONSOLE BASED OUTPUT
SYSTEM.OUT
• System class
• Out represents the screen
• System.out.println()
• Prints the string followed by an end of line
• Forces a flush
• System.out.print()
• Does not print the end of line
• Does not force a flush
• System.out.flush()
• Force a flush
INPUT / OUTPUT
/* This program will takes the input (number) through GUI and prints its square on the console as
well as on the GUI. */

import javax.swing.*;

public class InputOutputTest {

public static void main(String[] args) {

//takes input through GUI


String input = JOptionPane.showInputDialog("Enter the number");

int number = Integer.parseInt(input);


int square = number * number;

//Display square on console


System.out.println("square:" + square);

//Display square on GUI


JOptionPane.showMessageDialog(null, "square:"+ square);

System.exit(0); //Don’t forget to write when using JOptionPane. Don’t need it in


//J2SE 5.0
}
COMPILE AND EXECUTE
SELECTION STRUCTURES
IF-ELSE AND SWITCH
IF–ELSE SELECTION STRUCTURE
/* This program will demonstrates the use of if-else selection structure.
Note that its syntax is very similar to C++
*/

public class IfElseTest {

public static void main(String[] args) {


int firstNumber = 10;
int secondNumber = 20;

//comparing first number with second number


if (firstNumber > secondNumber) {
System.out.println(“first number is greater than second”);
}
else if (firstNumber == secondNumber) {
System.out.println(“first number is equals to second number”);
}
else {
System.out.println(“first number is smaller than second number”);
}
COMPILE AND EXECUTE
BOOLEAN OPERATORS
• ==, !=
• Equality, inequality. In addition to comparing primitive
types, == tests if two objects are identical (the same
object), not just if they appear equal (have the same
fields). More details when we introduce objects.

• <, <=, >, >=


• Numeric less than, less than or equal to, greater than,
greater than or equal to.

• &&, ||
• Logical AND, OR. Both use short-circuit evaluation to
more efficiently compute the results of complicated
expressions.

•!
• Logical negation.
SWITCH SELECTION
STRUCTURE
import javax.swing.*;
public class SwitchTest {

public static void main(String[] args) {


int operand1 = 10;
int operand2 = 20;

String choice = JOptionPane.showInputDialog(“Enter


1 for sum, 2 for product”);
int ch = Integer.parseInt(choice);

// continue….
SWITCH SELECTION
STRUCTURE…
switch(ch)
{
case 1:
int sum = operand1 + operand2;
System.out.println(“sum: ” + sum );
break;
case 2:
int product = operand1 * operand2;
System.out.println(“product: ” + product );
break;
default:
System.out.println(“wrong choice!”);

System.exit(0);
}
}
COMPILE AND EXECUTE
CONTROL STRUCTURES
FOR, WHILE & DO-WHILE
LOOPING CONSTRUCTS
• while
while (continueTest) {
body;
}

• do
do {
body;
} while (continueTest);
// ^ don’t forget semicolon

• for
for(init; continueTest; updateOp) {
body;
}
CONTROL STRUCTURES
public class ControlStructTest {

public static void main(String[] args) {

// for loop
for (int i=1; i<= 5; i++) {
System.out.println("hello from for");
}

// while loop
int j = 1;
while (j <= 5) {
System.out.println("Hello from while");
j++;
}

//do while loop


int k =1;
do{
System.out.println("Hello from do-while");
k++;
}while(k <= 5);
}
}
COMPILE AND EXECUTE

You might also like