Java
20220531
Fist notes on java programming.
public class HelloWorld {
public static void main(String args[] ) {
String text = "hello world";
System.out.println( text );
}
}
If a class implements an interface all methods in that interface must be defined in the class
Variables
- int var1 = 0
- Variables must be declared and initialized
- private int var1;
- Private variables in classes can only be accessed from within the class (same for methods).
Access levels
- Public all can use it. Public attributes can be changes by all
- Protected, can be used within the class, by subclasses and by classes in the same package (A package is a group of related classes in one namespace)
- Default, like protected but no access from subclasses outside the package. If nothing is specified it is Default.
- Private can only be used within the class
Methods
- Every program must have a main method, that is executed when the program starts
- A 'void' method is a method with no return value, else the return value type must be specified
- Private methods in classes can only be accessed from within the class (same for variables).
Classes
abstract classes cannot be instantiated by itself it is only a superclass for its subclasses.
- public class <subclass> extends <superclass>
- Instantiate a subclass object
public class <subclass> extends <superclass> {
public <subclass> (<types and attributes from superclass>)
super(<attributes defined in superclass>)
}
private <type> <subclass specific attribute>
public void <subclass specific method>() {
}
Superclasses can have 'protected' attributes and methods making them available for subclasses and in the same package.
Methods and attributes in subclasses can override the superclass methods and attributes.
Interfaces
A bit like subclasses but only describing the methods used from the superclass. It does not implement the method but only declares it. The implementation is in the subclass. A subclass can implement multiple interfaces unlike inheritance that can have only 1 superclass.
Interface can extend other interfaces.
public class <subclass> implements <interface> {
<attribute declarations>
public void <method from interface>() {
}
}