Title here
Summary here
Java supports methods defined on class types.
public class Rectangle {
private int width;
private int height;
public Rectangle(int width, int height) {
this.width = width;
this.height = height;
}
// This area method is defined on the Rectangle class
public int area() {
return this.width * this.height;
}
// Methods can be defined for the class itself
public int perimeter() {
return 2 * this.width + 2 * this.height;
}
public static void main(String[] args) {
Rectangle r = new Rectangle(10, 5);
// Here we call the 2 methods defined for our class
System.out.println("area: " + r.area());
System.out.println("perimeter: " + r.perimeter());
// In Java, all object variables are references, so there's no need
// for explicit pointer syntax
Rectangle rp = r;
System.out.println("area: " + rp.area());
System.out.println("perimeter: " + rp.perimeter());
}
}
To run the program:
$ javac Rectangle.java
$ java Rectangle
area: 50
perimeter: 30
area: 50
perimeter: 30
In Java, methods are always defined as part of a class. There’s no distinction between pointer and value receivers as in some other languages. All non-primitive types in Java are reference types, so method calls always operate on the same instance of the object.
Java uses the this
keyword to refer to the current instance of the class within a method, similar to how the receiver is used in some other languages.
Next, we’ll look at Java’s mechanism for defining abstract types and behaviors: interfaces.