Java – Methods Lecture Notes 5
Methods All objects, including software objects, have state and behavior. example, a student as an object has name, address, courses, grades, this is a state. On the other hand, the student has behaviors/methods, such that adding/changing course.
Objects Objects are defined by classes. A class can contain any number of data and methods - they are called members of a class. Methods allow the programmer to modularize a program. All variables declared in method definitions are local variables–they are known only in the method in which they are defined Most methods have a list of parameters that provide the means for communicating information between methods via method calls. A method’s parameters are also local variables.
Methods The formal method definition: access_modifiers method_modifiers return_type method_name( parameter_list ) { method body } A method has two major parts: method declaration (the first line) and method body. The method declaration defines all of the method's attributes, such as access level, return type, name, and arguments. The method body is where all the action takes place.
Classes and Objects All what is said below is true for fields and classes as well. access_modifiers You control which other classes have access to a method using one of four access levels: public, private, protected and package. An example package my_package; public class Point { int x, y; private int moves = 0; public void move(int dx, int dy) { x += dx; y += dy; moves++; }
Class Member Access A public class member is accessible throughout the package where it is declared and from any other package. A private class member is accessible only within the class body in which the member is declared. Subclasses cannot see private names declared in their parent classes. protected class members can be visible to subclasses or other classes within the same package. Eg: public class Shape extends Object{ protected x; } public class Circle extends Shape{ // have the access to x; } If none of keywords public, private, protected are specified, the method is not accessible in any other package.
Methods method name Method names should be verbs or verb phrases with the first letter lowercase and the first letter of any subsequent words capitalized, for example toLowerCase. field name Names of fields that are not final should be nouns or noun phrases with a lowercase first letter and the first letters of subsequent words capitalized.
Methods method_modifiers static method This is as a class method. A class method is always invoked without reference to a particular object. A method that is NOT declared static is called an instance method, and sometimes called a non-static method. abstract method This method has no implementation, but it does have a signature: name and number and type of parameters. final method This method cannot be overridden by subclasses. native method is implemented in platform-dependent code, typically written in another programming language. synchronized method We discuss this when we learn threads.
An Example public class Coin { // our public data final public int head = 0; final public int tail = 1; // our private data private int face; //result of flipping // methods public void flip() // Math.random() generate a float number between 0 and 1 { face = (int)(Math.random()*2); //casting is necesary } public int getFace() //since face is private we have to define a method { //which returns the result of flipping return face; }
An Example public class CountFlips { public static void main(String[] args) { final int NUM = 10000; // number of flips int counter=0; //instantiate(create) an object Coin mycoin = new Coin(); for(int i=1; i <= NUM; i++) { mycoin.flip(); if (mycoin.getFace() == mycoin.tail) //count tails counter++; } double prob = (double) counter/NUM * 100; System.out.println( "The probability of having a tail is " + prob); }