Java public return type

Chapter 8. Classes

A class declaration defines a new class and describes how it is implemented (§8.1).

A top level class (§7.6) is a class declared directly in a compilation unit.

A nested class is any class whose declaration occurs within the body of another class or interface declaration. A nested class may be a member class (§8.5, §9.5), a local class (§14.3), or an anonymous class (§15.9.5).

Some kinds of nested class are an inner class (§8.1.3), which is a class that can refer to enclosing class instances, local variables, and type variables.

An enum class (§8.9) is a class declared with abbreviated syntax that defines a small set of named class instances.

A record class (§8.10) is a class declared with abbreviated syntax that defines a simple aggregate of values.

This chapter discusses the common semantics of all classes. Details that are specific to particular kinds of classes are discussed in the sections dedicated to these constructs.

A class may be declared public (§8.1.1) so it can be referred to from code in any package of its module and potentially from code in other modules.

A class may be declared abstract (§8.1.1.1), and must be declared abstract if it is incompletely implemented; such a class cannot be instantiated, but can be extended by subclasses. The degree to which a class can be extended can be controlled explicitly (§8.1.1.2): it may be declared sealed to limit its subclasses, or it may be declared final to ensure no subclasses. Each class except Object is an extension of (that is, a subclass of) a single existing class (§8.1.4) and may implement interfaces (§8.1.5).

A class may be generic (§8.1.2), that is, its declaration may introduce type variables whose bindings differ among different instances of the class.

Class declarations may be decorated with annotations (§9.7) just like any other kind of declaration.

The body of a class declares members (fields, methods, classes, and interfaces), instance and static initializers, and constructors (§8.1.7). The scope (§6.3) of a member (§8.2) is the entire body of the declaration of the class to which the member belongs. Field, method, member class, member interface, and constructor declarations may include the access modifiers public , protected , or private (§6.6). The members of a class include both declared and inherited members (§8.2). Newly declared fields can hide fields declared in a superclass or superinterface. Newly declared member classes and member interfaces can hide member classes and member interfaces declared in a superclass or superinterface. Newly declared methods can hide, implement, or override methods declared in a superclass or superinterface.

Field declarations (§8.3) describe class variables, which are incarnated once, and instance variables, which are freshly incarnated for each instance of the class. A field may be declared final (§8.3.1.2), in which case it can be assigned to only once. Any field declaration may include an initializer.

Member class declarations (§8.5) describe nested classes that are members of the surrounding class. Member classes may be static , in which case they have no access to the instance variables of the surrounding class; or they may be inner classes.

Member interface declarations (§8.5) describe nested interfaces that are members of the surrounding class.

Method declarations (§8.4) describe code that may be invoked by method invocation expressions (§15.12). A class method is invoked relative to the class; an instance method is invoked with respect to some particular object that is an instance of a class. A method whose declaration does not indicate how it is implemented must be declared abstract . A method may be declared final (§8.4.3.3), in which case it cannot be hidden or overridden. A method may be implemented by platform-dependent native code (§8.4.3.4). A synchronized method (§8.4.3.6) automatically locks an object before executing its body and automatically unlocks the object on return, as if by use of a synchronized statement (§14.19), thus allowing its activities to be synchronized with those of other threads (§17 (Threads and Locks)).

Читайте также:  Select option submit php

Method names may be overloaded (§8.4.9).

Instance initializers (§8.6) are blocks of executable code that may be used to help initialize an instance when it is created (§15.9).

Static initializers (§8.7) are blocks of executable code that may be used to help initialize a class.

Constructors (§8.8) are similar to methods, but cannot be invoked directly by a method call; they are used to initialize new class instances. Like methods, they may be overloaded (§8.8.8).

Источник

Return type in Java | Example Program

Scientech Easy

Return type in Java | We know that a method is a function declared inside a class that contains a group of statements.

It is used to perform certain tasks or processing of data in the program to yield the expected results.

A method can accept data from outside and can also return the results. To return the result, a return statement is used inside a method to come out of it to the calling method.

In Java, return is a keyword that is used to exit from the method only with or without returning a value. Every method is declared with a return type in java and it is mandatory for Java methods.

Return type may be a primitive data type like int, float, double, a reference type, or void type which represents “return nothing”. i.e, they don’t give anything back.

When a method is called, the method may return a value to the caller method.

Let’s take an example program to understand the concept of java return type better.

Here, we will write a program to return the square of a number from a method. Look at the following source code.

Program source code 1:

public class Test < int square(int num)< return num * num; // return a square value. >public static void main(String[] args) < // Create an obejct of class Test. Test t = new Test(); // Call the method using object reference variable. Since the return type of this method is int, we will store it using a variable of type int. int squareOfNumber = t.square(20); // Displaying the result. System.out.println("Square of 20: " +squareOfNumber); >>

Explanation: Look at the below figure and understand the explanation that will help you to understand better.

Return types in Java

a. In this example program, we have created a method named square(). This method accepts an integer value and calculates the square of it.

After calculating square of value, square() method returns that value to the main() method that is the calling method.

b. Inside the main() method, we are calling square() method using object reference variable t and passing 20 to it as follows: t.square(20);.

c. To get the result returned from the square() method, we have taken a variable “squareOfNumber” of type int as follows: int squareOfNumber = t.square(20);.

d. int before a method name specifies the type of value returned by the method.

e. After method name, we wrote int num as a parameter that receives an integer value into the method. We are passing a value 20 to the method at the time of calling from main method.

f. Now to calculate the square value and return it, we have used return statement (return num * num;) inside the square() method.

Thus, a return statement in java is used to return a value from a method. It can return only one value at a time. When a return statement is used inside the method, the flow of execution comes out of it and goes back to the caller method.

Types of Methods Declaration based on Return type in Java

1. Method with void type :

Here, the void represents “return nothing”. A return type void is used when there is no return value.

2. Methods with return type and value :

If a method is having int, double, float, etc other than void, we must return a value compatible with the declared return type by using the return statement.

If you are not returning any value, it will generate an error message like ” missing return statements “. Let’s take some examples related to it.

Читайте также:  Java lang illegalargumentexception illegal base64 character 5f

Code 2 is an invalid code because, inside the method, the return statement must be the last statement of method.

How to return primitive values like int, float, double?

Let’s take an example program where we will return primitive values like int, float, and char to methods m1(), m2(), and m3() respectively.

Program source code 2:

public class Sample < // Declare a method with return type int. int m1() < System.out.println("m1 method"); // If you declare a method to return a value, you must return a value of declared type. Since the return type of m1() method is an integer. So, we will have to return an integer value. return 20; >Similarly, float m2() < System.out.println("m2 method"); return 20.5f; >static char m3() < System.out.println("m3 method"); return 'd'; >public static void main(String[] args) < // Create an object of the class named Sample. Sample s = new Sample(); // Call m1() method using reference variable s. Since s.m1() is returning an integer value, we will store value by using a variable x with a data type int. int x = s.m1(); // Now print the return value. System.out.println("Return value of m1()= " +x); Similarly, float y = s.m2(); System.out.println("Return value of m2()= " +y); // Call static method using the class name. Since m3() method returns character, we will store a character using a variable ch with type char. char ch = Sample.m3(); System.out.println("Return value of m3() https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3954713822336382" crossorigin="anonymous" defer data-deferred="1"> 

But at the project level, generally, we do not return primitive value. At the real-time project level, we return an object as returning value.

How to return class object in Java?


In the realtime project, we return different class objects as returning values. You must remember that Java cares about type. In other words, you cannot return a Student when the return type is declared as an Employee.

For example:

Employee m1() < // Create the Employee class's object. Employee emp = new Employee(); return emp; >

Here, m1() method’s return type is Employee.

Let’s take an example program based on this concept.

Consider a project in which there are three modules like Student, Employee, and School in an application. We will create a class for each module.

We will declare m1() and m2() methods with return type Student and Employee class respectively in the school class. See the coding given below.

Program source code 3:

public class Student < - - - - - - - >public class Employee < - - - - - - - >public class School < // Declare a method with return type Student class. Student m1() < System.out.println("m1 method"); Student st = new Student(); // Line 1 // Return the object reference variable named st as a value. return st; // Line 2 // We can replace line 1 and line 2 code by using a single line of code. return new Student(); // This line of code is generally used in the project level. >// Similarly, declare another method with return type Employee class. Employee m2() < System.out.println("m2 method"); Employee emp = new Employee(); // Line 3 return emp; // Line 4 // return new Employee(); // For line 3 and 4. >// Declare static method with return type String. static String m3() < System.out.println("Shubh"); return "Shubh"; >public static void main(String[] args) < // Create an object of class School. School sc = new School(); // Call m1() method using reference variable sc and store returning value by using a variable s. Student s = sc.m1(); System.out.println(s); Employee e = sc.m2(); System.out.println(e); String str=School.m3(); System.out.println(str); >>
Output: m1 method [email protected] m2 method [email protected] Shubh Shubh

How to return current or same class object in Java?

In the last example program, we have returned different class objects but we can also return the current class object at the project level. Let’s understand this concept with the help of an example.

Ways to return current/same class object

There are two ways to return the current or same class object.

1. If the method’s return type is a current class, you create an object of the class and return object reference variable.

2. You can also return a value direct using “this” keyword which represents the current class object. But at the project level, it is always recommended to use the second approach.

Let’s take an example program where we will use both approaches to return the same class object.

Program source code 4:

public class College < // Declare a method with return type College class. College collegeName() < System.out.println("IIT-ISM is the best Engineering college in India."); // Create an object of the class. College cg = new College(); // using first approach. return cg; // return new College(); >College estYear() < System.out.println("IIT-ISM was established in 1926. "); return this; // using 2nd approach. >public static void main(String[] args) < // Create an object of class. College c = new College(); College cName = c.collegeName(); System.out.println(cName); College eYear = c.estYear(); System.out.println(eYear); >>
Output: IIT-ISM is the best Engineering college in India. [email protected] IIT-ISM was established in 1926. [email protected]

How to return a variable in Java programming?

Let us consider an example to return a variable.

Here, we have declared an m1() method with return type int and parameter a. Since m1() method’s return type is an integer. So, we must return an int value. Therefore, we will return ‘a’ as a value of int type.

Generally, there are three cases for returning a variable in Java.

Assume int a = 200; // instance variable. int m1(int a) < // Here, parameter 'a' is a local variable. - - - - - return a; >

The above code contains both instance and local variables. In this case, the first priority will always go to the local variable and will return ‘a’ as a value.

In this case, it will return the instance value due to no local variable.

It will return instance variable due to using ‘this’ keyword. So, remember these three very important cases for the project level.

Let’s implement these three cases in the programs one by one.

Program source code 5:

public class VarReturn < // Declare an int instance variable and assign it with value 100. The value 100 goes into a variable named x. int x = 100; // Declare a method with an int parameter named x where x will behave like a local variable. int m1(int x) < System.out.println("m1 method"); return x; // return local variable. >public static void main(String[] args) < // Create an object of class VarReturn. VarReturn vr = new VarReturn(); // Call m1() method with passing an integer value 20 and store returning integer value using variable named 'a'. int a = vr.m1(20); System.out.println("Method return value m1 method"); return y; // return instance variable. >public static void main(String[] args) < InsReturn ir = new InsReturn(); // Call m1() method and store returning integer value using a variable named 'a'. int a = ir.m1(); System.out.println("Method return value m1 method"); return this.x; // return instance variable. >public static void main(String[] args) < InstReturn itr = new InstReturn(); // Call m1() method, passing integer value 20 and store returning integer value using a variable. int a = itr.m1(20); System.out.println("Method return value color: #339966;">Method with return type and without value:

For example:

int m3()

A method is able to return a value but holding the value is optional. So, it is always recommended to hold the return value.

Let’s create a program where we will declare a method with return type but without value.

Program source code 8:

public class Addition < public int add() < int a = 100; int b = 200; int c = a + b; return c; >public static void main(String[] args) < Addition ad = new Addition(); int x = ad.add(); System.out.println(x); >>

Can we declare return statement inside main method in Java?

If we write a return statement inside the main method, the entire program or application will be terminated and the next statement after return statement will not be executed in the program.

Let’s take a program and see what happens?

Program source code 9:

Output: Before return statement

In this example program, we can also write System.exit(0); at the place of return statement to terminate the program. Here, exit(0) is a static method defined by class System. Therefore, it can be called by using class name.

Hope that this tutorial has covered all the variety of example programs based on return type in Java. If this tutorial is useful, please share it on social networking sites for your friends.
Thanks for reading.
Next ⇒ Constructor in Java

Источник

Оцените статью