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

Lecture 3 OOP (Java Syntax)

Uploaded by

haseebkhalid589
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
17 views

Lecture 3 OOP (Java Syntax)

Uploaded by

haseebkhalid589
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
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