Java方法
在Java编程语言中,当我们创建类时,它包含变量和方法。在本教程中,我们将学习Java方法。在"编写第一个Java程序"一文中,我们已经看到了一种方法。开始执行程序的主要方法。
Java中的方法
方法是可以通过调用该方法来执行的语句的集合,并且在执行语句后它可能会返回也可能不会返回值。
Java中方法的语法如下:
Access_modifier return_type methodName(parameter-list) { // body of method }
Java方法中的组件
Java中的方法由以下组件组成:
1.访问修饰符–所有四个访问修饰符-公共,私有,受保护,默认均可与该类的方法一起使用。
如果一个方法被声明为public,那么它对于同一包或者其他包中的所有类都是可见的。
如果将一个方法声明为私有方法,则只能在其自己的类中访问该方法。
如果某个方法被声明为受保护,那么即使在不同的程序包中,同一包中的任何类或者任何子类(声明方法的类)都可以访问该方法。
如果一个方法具有默认的访问说明符(没有访问说明符声明),则该方法可由同一包中的任何类访问。
2.返回类型–方法可以返回一个值,并且该值的类型应指定为返回类型。如果某个方法没有返回值,则应将返回类型指定为void。
3.方法名称-方法应具有标识该方法的名称。该名称用于调用方法。类中的方法名称不必唯一,但是具有相同名称的方法被认为会使该方法超载,并且需要遵循某些规则。
4.参数列表–我们可以将参数传递给方法,并且应将其作为逗号分隔的输入参数列表进行传递,并在其数据类型之前加上括号()。如果没有参数,则必须使用空括号。
5.方法主体–方法主体,括在括号{}之间,它包含方法的代码以及局部变量的声明。
6.异常列表-方法也可以使用throws子句指定预期将抛出的异常列表。
7.静态方法–我们也可以将方法声明为静态。静态方法与该类相关联,可以使用类名称(如ClassName.static_method())直接调用它。我们无需创建类的实例即可调用静态方法。
这是一个Java方法声明的示例,它是一个公共方法,它使用两个整数作为参数,并且还返回一个int类型的值。
public int doAddition(int i, int j){ int sum = i + j; return sum; }
Java中的方法命名约定
尽管方法名称可以是任何合法标识符,但是代码约定限制了方法名称。按照惯例,方法名称应为小写动词或者以小写动词开头的多词名称,后跟形容词,名词等。如果方法具有多词名称,则第二个字母的第一个字母随后的单词应大写(称为驼峰大小写)。这里有些例子:
加
doAddition
getFinalData
是空的
Java方法示例
调用方法时,它将执行方法主体,并返回到以下之一之后的调用点:
它将完成方法中的所有语句。
到达返回语句。
发生异常,方法抛出该异常。
1返回值的方法–在第一个示例中,有一个方法doAddition(),该方法将两个整数作为参数并返回这两个整数的和。
public class MyClass { public static void main(String[] args) { MyClass obj = new MyClass(); // calling method int sum = obj.doAddition(5, 10); System.out.println("Sum is- " + sum); } public int doAddition(int i, int j){ int sum = i + j; return sum; } }
输出:
Sum is- 15
2没有返回值的方法(void)–在此Java方法示例中,有一个方法display()带有一个String参数,返回类型为void。
public class MyClass { public static void main(String[] args) { MyClass obj = new MyClass(); obj.display("theitroad"); } public void display(String str){ System.out.println("Hello " + str); } }
输出:
Hello theitroad
3另一个类的调用方法–在此示例中,有两个类ReverseWord和MyClass。在ReverseWord类中,有一个公共方法reverseString(),它使用ReverseWord类的实例从MyClass中调用。
public class ReverseWord { public String reverseString(String str){ // validate String if((str == null) || (str.length() <= 1)){ return str; } StringBuilder sb = new StringBuilder(str); return sb.reverse().toString(); } }
public class MyClass { public static void main(String[] args) { ReverseWord obj = new ReverseWord(); String reversedString = obj.reverseString("theitroad"); System.out.println("Reversed String is- " + reversedString); } public void display(String str){ System.out.println("Hello " + str); } }
输出:
Reversed String is- edoCpnk
4从另一个方法调用方法–在此示例中,方法1和method2类中有两个方法,而从method1()调用method2()。
public class MyClass { public static void main(String[] args) { MyClass obj = new MyClass(); obj.method1(); System.out.println("After calling method1"); } private void method1(){ System.out.println("in method1"); this.method2(); System.out.println("After calling method2"); } private void method2(){ System.out.println("in method2"); } }
输出:
in method1 in method2 After calling method2 After calling method1
这里要注意的几件事是
Access修饰符是方法专用的,因此这些方法只能在此类中使用。
在method1中,使用this关键字调用method2.
从输出中,我们可以看到方法执行完成后如何返回到调用它的位置。
方法的优点
代码可重用性–使用方法的主要优势是代码可重用性。我们可以在方法中编写任何功能,然后在需要该功能时可以调用该方法。
封装–方法有助于实现面向对象的概念封装。任何成员变量都只能通过该类的方法进行操作。
方法还可以通过方法重载和方法重写来帮助实现多态。