Java Basics: Variables and Data Types Class Objects Methods Constructor
Java Basics: Variables and Data Types Class Objects Methods Constructor
1
Variables and Data Types
• Variables are locations in memory.
2
Data Types
3
Variable Types
5
Variables in a Class
• class ArithmeticTest {
public static void main (String[] args) {
short x = 6;
int y = 4;
float a = 12.5f;
float b = 7f;
System.out.println(“x is “ + x + “, y is “ + y);
System.out.println(“x + y = “ + (x + y));
System.out.println(“a is “ + a + “, b is “ + b;
}
}
6
Object-Oriented Nomenclature
• “Class” means a category of things
– A class name can be used in Java as the type of a field or
local variable or as the return type of a function (method)
• “Object” means a particular item that
belongs to a class
– Also called an “instance”
7
Example 1: Major Points
• Java naming convention
• Format of class definitions
• Creating classes with “new”
• Accessing fields with
“variableName.fieldName”
8
Example 1: Instance Variables
(“Fields” or “Data Members”)
class Ship1 {
public double x, y, speed, direction;
public String name;
}
}
9
Instance Variables: Results
• Compiling and Running:
javac Test1.java
java Test1
Output:
Ship1 is initially at (1,0).
Ship2 has moved to (-1.41421,1.41421).
10
Java Naming Conventions
• Leading uppercase letter in class name
11
First Look at Java Classes
• The general form of a simple class is
modifier class Classname {
...
14
Example 2: Methods
class Ship2 {
public double x=0.0, y=0.0, speed=1.0, direction=0.0;
public String name = "UnnamedShip";
17
Defining Methods
(Functions Inside Classes)
• Basic method declaration:
public ReturnType methodName(type1 arg1,
type2 arg2, ...) {
...
return(something of ReturnType);
}
18
Examples of Defining Methods
• Here are two examples:
– The first squares an integer
– The second returns the faster of two Ship objects, assuming that a
class called Ship has been defined that has a field named speed
// Example function call:
// int val = square(7);
– For example, the Math class has a static method called cos that
expects a double precision number as an argument
• So you can call Math.cos(3.5) without ever having any object
(instance) of the Math class
21
Method Visibility
• public/private distinction
– A declaration of private means that “outside” methods
can’t call it -- only methods within the same class can
• Thus, for example, the main method of the Test2
class could not have done
double x = s1.degreesToRadians(2.2);
– Attempting to do so would have resulted in an
error at compile time
– Only say public for methods that you want to guarantee
your class will make available to users
– You are free to change or eliminate private methods
without telling users of your class about
22
Example 3: Constructors
class Ship3 {
public double x, y, speed, direction;
public String name;
23
Constructors (Continued)
public void move() {
double angle = degreesToRadians(direction);
x = x + speed * Math.cos(angle);
y = y + speed * Math.sin(angle);
}
public void printLocation() {
System.out.println(name + " is at ("
+ x + "," + y + ").");
}
}
public class Test3 {
public static void main(String[] args) {
Ship3 s1 = new Ship3(0.0, 0.0, 1.0, 0.0, "Ship1");
Ship3 s2 = new Ship3(0.0, 0.0, 2.0, 135.0, "Ship2");
s1.move();
s2.move();
s1.printLocation();
s2.printLocation();
}
}
24
Constructor Example: Results
• Compiling and Running:
javac Test3.java
java Test3
• Output:
Ship1 is at (1,0).
Ship2 is at (-1.41421,1.41421).
25
Constructors
• Constructors are special functions called when a
class is created with new
– Constructors are especially useful for supplying values of fields
– Constructors are declared through:
public ClassName(args) {
...
}
– Notice that the constructor name must exactly match the class name
– Constructors have no return type (not even void), unlike a regular
method
– Java automatically provides a zero-argument constructor if and only
if the class doesn’t define it’s own constructor
• That’s why you could say
Ship1 s1 = new Ship1();
in the first example, even though a constructor was never
defined
26
The this Variable
• The this object reference can be used inside any
non-static method to refer to the current object
• The common uses of the this reference are:
1. To pass a reference to the current object as a parameter to other
methods
someMethod(this);
27
Summary
• Class names should start with uppercase; method
names with lowercase
• Methods must define a return type or void if no
result is returned
• If a method accepts no arguments, the arg-list in
the method declaration is empty instead of void as
in C
• Static methods do not require an instance of the
class; static methods can be accessed through the
class name
• The this reference in a class refers to the current
object
• Class constructors do not declare a return type
• Java performs its own memory management and
requires no destructors
28