10
2004-2-9 1 CSc31800: Internet Programming - Jinzhong Niu Introduction to Java (tentative) Introduction to Java (tentative) Jinzhong Jinzhong Niu Niu Sunday, February 08, 2004 Sunday, February 08, 2004 CSc31800: Internet Programming - Jinzhong Niu 2 How to Program in Java v Text editor to edit Java source code files Notepad, UltraEdit, etc. v Sun’s in JDK (Java Development Kit) Java compiler - javac JVM (Java Virtual Machine) - java

Introduction to Java (tentative) - Brooklyn Collegejniu/teaching/csc31800/notes/0209-Java-1.pdfIntroduction to Java (tentative) Introduction to Java (tentative) Jinzhong Niu Sunday,

  • Upload
    others

  • View
    19

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Introduction to Java (tentative) - Brooklyn Collegejniu/teaching/csc31800/notes/0209-Java-1.pdfIntroduction to Java (tentative) Introduction to Java (tentative) Jinzhong Niu Sunday,

2004-2-9

1

CSc31800: Internet Programming - Jinzhong Niu

Introduction to Java(tentative)

Introduction to Java(tentative)

JinzhongJinzhong NiuNiuSunday, February 08, 2004Sunday, February 08, 2004

CSc31800: Internet Programming - Jinzhong Niu 2

How to Program in Java

v Text editor to edit Java source code files³ Notepad, UltraEdit, etc.

v Sun’s in JDK (Java Development Kit)³ Java compiler - javac

³ JVM (Java Virtual Machine) - java

Page 2: Introduction to Java (tentative) - Brooklyn Collegejniu/teaching/csc31800/notes/0209-Java-1.pdfIntroduction to Java (tentative) Introduction to Java (tentative) Jinzhong Niu Sunday,

2004-2-9

2

CSc31800: Internet Programming - Jinzhong Niu 3

Example: Hello Java World!

vHelloWorldApp.java

public class HelloWorldApp {

public static void main(String[] args) {

System.out.println("Hello Java World!");

}

}

CSc31800: Internet Programming - Jinzhong Niu 4

Write Once, Run Anywhere

Page 3: Introduction to Java (tentative) - Brooklyn Collegejniu/teaching/csc31800/notes/0209-Java-1.pdfIntroduction to Java (tentative) Introduction to Java (tentative) Jinzhong Niu Sunday,

2004-2-9

3

CSc31800: Internet Programming - Jinzhong Niu 5

The Java Platform

v Platform

³ Hardware or software environment in which a program runs

³ Combination of the operating system and hardware

v The Java platform

³ Software-only platform that runs on top of other hardware-based platforms

³ Slow Java execution on such a platform

CSc31800: Internet Programming - Jinzhong Niu 6

Object Orientation (OO)

v Java Application³ a set of related classes³ main class with public static void main(String[] args)

method defined

v Class³ Constructors, Methods, variables (public, private, … ), …

³ Descendant of Object

³ Coded in a separate file with the same name

Page 4: Introduction to Java (tentative) - Brooklyn Collegejniu/teaching/csc31800/notes/0209-Java-1.pdfIntroduction to Java (tentative) Introduction to Java (tentative) Jinzhong Niu Sunday,

2004-2-9

4

CSc31800: Internet Programming - Jinzhong Niu 7

OO – Using Objects

v Here, code in one class creates an instance of another class and does something with it …

Fruit plum=new Fruit();int cals;cals = plum.total_calories();

v Dot operator allows you to access (public) data/methods inside Fruit class

CSc31800: Internet Programming - Jinzhong Niu 8

OO – Public and Private

v Methods/variables may be declared public or private

meaning they may or may not be accessed by code in other

classes …

v Good practice:

³ keep data private

³ keep most methods private

v Well-defined interface between classes - helps to eliminate errors

Page 5: Introduction to Java (tentative) - Brooklyn Collegejniu/teaching/csc31800/notes/0209-Java-1.pdfIntroduction to Java (tentative) Introduction to Java (tentative) Jinzhong Niu Sunday,

2004-2-9

5

CSc31800: Internet Programming - Jinzhong Niu 9

OO – Creating objects

v Following code creates an instance of the Fruitclass

Fruit plum = new Fruit();

v The initial data of an object may be passed as parameters.

v Several different type of constructor with different argument lists, e.g. Fruit(), Fruit(a) ...

CSc31800: Internet Programming - Jinzhong Niu 10

Usage of JDK Tools

vCompilation, generating HelloWorldApp.class

javac HelloWorldApp.java

Executionjava HelloWorldApp

Page 6: Introduction to Java (tentative) - Brooklyn Collegejniu/teaching/csc31800/notes/0209-Java-1.pdfIntroduction to Java (tentative) Introduction to Java (tentative) Jinzhong Niu Sunday,

2004-2-9

6

CSc31800: Internet Programming - Jinzhong Niu 11

Socket Programming

vWhat is Socket?³A socket is a communication endpoint — an

object through which an application sends or receives packets of data across a network.

vThe purpose is to abstract away the underlining network.

CSc31800: Internet Programming - Jinzhong Niu 12

Socket Programming (cont.)

v A server runs on a specific computer and has a socket that is bound to a specific port number.

v A client makes a connection request based on the host name of the server and the port number.

Page 7: Introduction to Java (tentative) - Brooklyn Collegejniu/teaching/csc31800/notes/0209-Java-1.pdfIntroduction to Java (tentative) Introduction to Java (tentative) Jinzhong Niu Sunday,

2004-2-9

7

CSc31800: Internet Programming - Jinzhong Niu 13

Socket Programming (cont.)

v Upon acceptance, the server gets a new socket bound to a different port.

v If the connection is accepted, a socket is successfully created and the client can use the socket to communicate with the server.

CSc31800: Internet Programming - Jinzhong Niu 14

Socket Programming (cont.)v ServerCreate a server socket

Start listening on a port

Create a new socketAccept connection

Sending & Receiving

v ClientCreate the socket

Seek a connection

Sending & Receiving

Page 8: Introduction to Java (tentative) - Brooklyn Collegejniu/teaching/csc31800/notes/0209-Java-1.pdfIntroduction to Java (tentative) Introduction to Java (tentative) Jinzhong Niu Sunday,

2004-2-9

8

CSc31800: Internet Programming - Jinzhong Niu 15

Socket Programming (cont.)v Client side

³ Socket· This class implements client sockets· A socket is an endpoint for communication between two machines

v Server side³ ServerSocket

· This class implements server sockets. · A server socket waits for requests to come in over the network. · It performs some operation based on that request, and then

possibly returns a result to the requester.

CSc31800: Internet Programming - Jinzhong Niu 16

Client Side –Socket

v Common methods³ getInetAddress() - Returns the address to which the

socket is connected³ getInputStream() - Returns an input stream for this

socket³ getOutputStream() - Returns an output stream for this

socket.³ getPort() - Returns the remote port to which this socket

is connected³ close() –close this socket

Page 9: Introduction to Java (tentative) - Brooklyn Collegejniu/teaching/csc31800/notes/0209-Java-1.pdfIntroduction to Java (tentative) Introduction to Java (tentative) Jinzhong Niu Sunday,

2004-2-9

9

CSc31800: Internet Programming - Jinzhong Niu 17

Client Connection

v PrintWriter³ Print formatted representations of objects to a text-

output stream. ³ It does not contain methods for writing raw bytes, for

which a program should use unicoded byte streams.

v BufferReader³ Read text from a character-input stream, buffering

characters so as to provide for the efficient reading of characters, arrays, and lines

CSc31800: Internet Programming - Jinzhong Niu 18

Client Side –Operation

v Client flows1. Open a socket. 2. Open an input stream and

output stream to the socket. 3. Read from and write to the stream

according to the server's protocol.4. Close the streams.5. Close the socket.

Page 10: Introduction to Java (tentative) - Brooklyn Collegejniu/teaching/csc31800/notes/0209-Java-1.pdfIntroduction to Java (tentative) Introduction to Java (tentative) Jinzhong Niu Sunday,

2004-2-9

10

CSc31800: Internet Programming - Jinzhong Niu 19

Server Side

vServer flows1. create a ServerSocket

No need to bind and listen, the constructor has already done that.

2. accept a client call3. Send/Receive data4. close socket