Introduction to Java 2 Programming

advertisement
Introduction to Java 2
Programming
Lecture 2
Java Syntax, Robocode
Overview
• Java Syntax
– The Basics
– Classes, Packages
• Robocode
– How it works
– Writing Robots
– Anatomy of a Robot
• Practical Exercises
Naming
• All Java syntax is case sensitive
• Valid Java names
– Consist of letters, numbers, underscore, and dollar
– Names can only start with letter or underscore
– E.g. firstAttribute but not 1stAttribute
• “Camel case” convention
– Java encourages long, explanatory names
– Start with a lower case letter, with words capitalised
– E.g. thisIsCamelCase, andSoIsThisAsWell
Java Types
• Java has two basic types
– Primitive types
– Reference Types
• Primitive types
– integers, floating point numbers, characters, etc
– Refer to actual values
• Reference types
– Arrays, Classes, Objects, etc
– Refer to memory locations (by name, not location)
Primitive Types
Type
Description
Size
Boolean (boolean)
True/false value
1 bit
Byte (byte)
Byte-length integer
1 byte
Short (short)
Short integer
2 bytes
Integer (int)
Integer
4 bytes
Long (long)
Long Integer
8 bytes
Float (float)
Single precision floating
point number
4 bytes
Double (double)
Double precision float
8 bytes
Char (char)
Single character
2 bytes
Syntax Examples (Variables)
int anInteger;
Boolean isSwitchOn;
Variables can be initialised when they are declared
Int anInteger = 10;
Boolean isSwitchOn = true;
Syntax Examples (if)
if (x == y)
{
//executes if true
}
if (somethingIsTrue())
{
doSomething();
}
else
{
doSomethingElse();
}
Example (for)
int x=0;
for (int i=1; i<=10; i++)
{
//code to repeat ten times
x = x + i;
}
Example (while)
int x=0;
while (x < 10)
{
doSomething();
x++;
}
//loop forever
while (true)
{
}
Methods
• Define some behaviour of a class
• Method declarations have four basic
sections, and a method body:
–
–
–
–
Visibility modifier (who can call the method)
Return type (what does it return)
Method name
Parameter list (what parameters does it accept)
Syntax Examples (Methods)
public void calculatePayroll()
{
//code goes here
}
private int addNumbers(int x, int y)
{
//code goes here
}
Method Naming Conventions
• If a method sets some value on an object
public void setVatLevel(float vat);
• If a method retrieves some value from the
object
public float getTotalPayroll();
• If a method returns a boolean value
public boolean isSwitchOn();
Classes
• One Java class defined in each .java file
• File name must match the name of the class
– Otherwise there will be compilation errors
– Class names start with an upper case letter
• Compiler will generate a .class file with
same name
– Contains the bytecode
• Classes defined using the class keyword.
Packages
• Group related classes together
• Each class in a package must have a unique name
• Indicate the package a class belongs to with the
package keyword
• Recommended each class is put in a package
• Gain access to public classes in other packages
using the import keyword
– The JVM needs to know where the classes are defined
before you can use them
Anatomy of a Java Source File
package intro2java;
import java.util.*;
/**
* A description of the class
*/
public class MyFirstClass {
//attributes
private boolean isSomething;
private int aCounter;
//methods
public void doSomething()
{
//code goes here
}
}
Common Sources of Error
• Mistakes in naming
– Wrong case, illegal names
– class name and source file name not the same
• Missing semi-colon
• Missing curly brackets
• Incorrect Loop checks
– Loop is too large/small, or occurs forever
• Testing equality
– Assignment with = (single equals sign)
– Comparison with == (two equals signs)
Overview
• Java Syntax
– Quick Overview
• Robocode
– How it works
– Writing Robots
– Anatomy of a Robot
• Practical Exercises
Anatomy of a Robot
package yourname;
import robocode.*;
/**
* Description of Robot
*/
public class MyRobot extends Robot
{
/**
* Description of run method
*/
public void run() {
//the robots behaviour
}
}
Download