SOFTWARE AND PROGRAMMING 1 EACH student must have obtained access to Birkbeck computing by 26.01.11 – otherwise no use in the lab Instructor: Prof. Boris Mirkin DCSIS, room 744 MAL, tel. 020 7631 6746 E-mail: [email protected]Course Assistant: Lab/WebCT/Tests/Assignments: Mr Martin O’Shea E-mail: [email protected](FROM 26 January: Lectures 6.00-7.30, Labs 7.30-9.00)
42
Embed
SOFTWARE AND PROGRAMMING 1 EACH student must have obtained access to Birkbeck computing by 26.01.11 – otherwise no use in the lab Instructor: Prof. Boris.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
SOFTWARE AND PROGRAMMING 1
EACH student must have obtained access to Birkbeck computing by 26.01.11 – otherwise no use in the
lab
Instructor: Prof. Boris MirkinDCSIS, room 744 MAL, tel. 020 7631 6746E-mail: [email protected]
Course Assistant:
Lab/WebCT/Tests/Assignments: Mr Martin O’SheaE-mail: [email protected]
JAVA in Two Semesters, 2nd Edition, McGraw-Hill, 2006, ISBN-10 0077108892
2. David J. Barnes & Michael Kölling [BK]Objects First with Java: A Practical
Introduction using BlueJ, 2nd edition, Pearson Education, 2005, ISBN 0-13-124933-9The publisher supplies a helpline in installing related software
3. I. Pohl, C. McDowell [PM]Java by dissection, Addison-Wesley, 2000,
ISBN 02017515854. J. Farrell [F]
Java Programming, 2-4 editions, Course Technology, Thompson, 2003-7, ISBN 0-619-21500-3 etc.
5. Free: ON-LINE text by D. Eck (on my web site); other URLs
4
Teaching Goal: Coding in Real FRAMEWORK: 1. the interpreter/compiler Java working;2. classes, objects and instances;3. variables and static variables;4. Java data types: primitive and user-
defined;5. arithmetic and Boolean expressions;6. for/while and if…elseif…else structures;7. processing strings;8. elements of input/output in Java;9. methods and constructors;10. arrays and their usage, including
arrays of a user-defined type
5
Teaching Goal PRACTICE:
To have developed skills in practical programming of small but real-world problems e.g. keeping transaction records,
assigning seats to customers, managing a bus schedule, etc.
6
Control• Final exam: 75% of mark• Course-work: 25% of mark
– 2 open-book in-class tests, 9.02 & 9.03,– 2 assignments for home work via WebCT,
• Blue J (A public project to make JAVA coding easier)
11
Conventional JDK: Editing• A source code can be edited in any
text editor: Notepad, emacs, PFE, ...• MS Word caveat: by default, Word
does not save in ASCII text format• Make sure to save the code before
compiling! The file name: the same as that of the class, with extension:
say, class NicTe{…} must be saved as file NicTe.java, case sensitive
12
Command line invocation
• compilation and execution of Java in JDK are done from a command line
• On Microsoft systems: DOS shell• On Unix: Unix shell• Must make sure that the commands
for compiler and runtime (JVM) are in the command path.
13
Getting JDK on a system’s path
• Click “Properties” on right-buttoned “My computer”
• Click “Advanced”• Click “Environmental variables”• Enter new path (to the directory
in which javac.exe and java.exe reside)
14
Compiling with JDK
• Name of the JDK compiler: javac• To invoke:javac <source name>
• compiles <source name> and all classes it depends on into an executable on JVM file <source name>.class
• Example:
javac NicTe.javaproduces file NicTe.class
15
Execution in JDK
• “java” starts the Java virtual machine:
java NicTe• The named class is loaded and
execution is started.• Other classes are loaded as
needed.• Only possible if class has been
compiled into a file, say, NicTe.class
16
JDK Problem: Execute what?
How does the system know which of the methods in a class to execute?
17
“main” method in JDK• BlueJ executes what the user says;• The JDK java system always executes a
method called main, it should have a certain signature:
Signature _______________________
public static void main(String[ ] args){ ...}
• To work with JDK, such a method must be present in your program!
18
A primer program (=class)/* HelloWorld.java Purpose: printing a message to the screen */ class HelloWorld {
// Each program is organised as a class public static void main(String[] args) { System.out.println("Hello World!"); } } // end of class HelloWorld /* Always Three Types of Elements ONLY: -comments-class (with modifiers)-methods (with modifiers & parameters/arguments) */
19
BlueJ coding
• BlueJ programs are organised in the so-called projects
• A BlueJ project is stored in a project-specific directory on disk
• Some files store the source code, some store the compiled code, some store additional BlueJ related information.
20
The BlueJ directory structure
UserInterface
CalcEngine
Calculator
project: calculator c:\bluej\calculator\bluej.pkg
bluej.pkh
Calculator.java
Calculator.class
Calculator.ctxt
UserInterface.java
UserInterface.class
UserInterface.ctxt
CalcEngine.java
CalcEngine.class
CalcEngine.ctxt
21
The BlueJ file structure
• bluej.pkg - the package file. Contains information about classes in the package. One per package.
• bluej.pkh - backup of the package file.• *.java - standard Java source file (text).
One per class.• *.class - standard Java code file. One per
class• *.ctxt - BlueJ context file. Contains extra
information for a class. One per class.
22
• Available on BBK’s network – Java JDK (which allows you to compile and
execute your program)– BlueJ (Preferred editor)
• Installing BlueJ (for home use)– First download the Java JDK from
http://java.sun.com/j2se/1.5.2/download.jsp– Then download BlueJ from
http://www.bluej.org/download/download.html
– Run “bluejsetup-202.exe” and follow the given instructions
Software is free
23
Objects and classes
• Classes: program templates– represent all objects of a kind
(example: “student”)• Objects === instances
– A template copy to represent a specific element of the class (“an individual student”)
– Instances are created with the so-called constructors, explicitly in JDK or somewhat easier in BlueJ
24
Variables, methods and parameters
• classes contain data stored in the so-called variables and operations which can be invoked (they are called methods in Java)
• methods may have inputs (they are called parameters in Java) to get additional data needed to have them executed
25
Remarks• Many instances can be created from a
single class• An object has attributes/variables:
values stored in fields (memory locations).
• The class defines what fields any its object has (a template), but each object may store its own set of values (the state of the object)
• A variable is initialised with assigning it a value, an object – with a constructor
26
More on Method
Method in Java is a named set of instructions that transforms some input into an output. This is, actually, a machine implementation of the concept of algorithm which itself is a computational analogue to the mathematical concept of function.
Static method: is shared by all instances.
27
Example of a method (1)Square function y = x2
x y 1 1 2 4 5 2511 121
The table can be used for invoking a specific value, like, 72 = 49 or 102 = 100.
28
Example of a method (2) A Java method to calculate the square function:
public int sq(int x){return xx;} To make it work, variables are needed:
int sevs=sq(7); //puts 49 into sevs
int tens=sq(10);// puts 100 into tens
29
Structure of a method
modifiers return-type name ( parameter-list ) {
statements;return variable/expression; //if return type is not void
}Modifiers:
– static - method/variable that belongs to class as whole and is shared by all instances
– public - method/variable that is accessible from anywhere
– private - method/variable that is accessible from only within the class
Output’s type Inputs
30
HelloWorld with a method// Hello-world program to demonstrate BlueJ
class Hello{ // Method that does the work of printing
public void go() { System.out.println("Hello, world"); } // main method for working outside BlueJ
public static void main(String[] args) { Hello hi = new Hello(); //instance
hi.go(); //method in instance hi
}}
31
HelloWorld : WHY
Why dots in System.out.println("Hello, world"); hi.go();
?1) To take method from a specific class
instance2) To take a class from a set of classes: Java is
organised as a hierarchically structured set of classes in individual files
32
Assigning values
• Values are stored into fields (and other variables) via assignment statements:– variable = expression;– price = ticketCost;
• The value on the right is assigned to a variable on the left.
• A variable stores a single value, so any previous value is lost.
33
Variable• It provides for multiple uses of the
same program• A variable is a name for a location in
memory that can hold data. • Variables are declared and/or
initialised A variable declaration includes the following:– A data type that identifies the type of data that is stored in
the variable
– An identifier that is the variable’s name– An optional assigned initial value
34
int p;
p
p = 4;
4
In memory:
35
36
Scope of a variable:
The range of statements that can access the variable.
It stretches from the declaration point to the end of the block containing the declaration
Q: WHAT is BLOCK ? (part within curly braces{…} )
Q: WHAT is DECLARATION? (type name ; 3-part command)
37
HelloWorld N times BlueJpublic class HelloN { int number; \\ variable declared
public void go() { System.out.println("Hello,
world"); } public HelloN(int howmany) {number=howmany; } \\constr to initialise
object
public void prrt() \\printing number times
{ for(int i=1;i<=number;i++) \\loop
go(); System.out.println("ok"); } }
38
Loop for
for(int var=1;var<=st;var++){do operation depending on var}
• Two types of parentheses: () and {}• The expression in () consists of three
different items: initialising a variable, variable update, and stop-condition
• Given a value of var, {} is executed, after which var is updated, then stop-condition checked and, if yes, {} is executed again; if no, the program proceeds further on
Java uses a natural precedence structure of arithmetic operations. If you are not sure, use parentheses!!!
41
Basic class structure
public class TicketMachine{ Inner part of the class omitted.}
public class ClassName{ Variables Constructors Methods}
The outer wrapperof TicketMachine
The contents of aclass
42
Concepts considered: overview
• Compiler & interpreter• JDK/JDS and BlueJ environments• Method• Variable; declaration and intialisation• Primitive variable types• Class type• Arithmetic operators and expressions• Class and instance• HelloWorld class in three versions