server2003网站建设,中国建设个人网上银行官网,建设网站公司名称大全,佛山新网站建设服务文章目录 一、java方法总结 一、java方法
在前面几个章节中我们经常使用到 System.out.println()#xff0c;那么它是什么呢#xff1f;
println() 是一个方法。
System 是系统类。
out 是标准输出对象。这句话的用法是调用系统类 System 中的标准输出对象 out 中的方法 pr… 文章目录 一、java方法总结 一、java方法
在前面几个章节中我们经常使用到 System.out.println()那么它是什么呢
println() 是一个方法。
System 是系统类。
out 是标准输出对象。这句话的用法是调用系统类 System 中的标准输出对象 out 中的方法 println()。
那么什么是方法呢
Java方法是语句的集合它们在一起执行一个功能。
方法是解决一类问题的步骤的有序组合
方法包含于类或对象中
方法在程序中被创建在其他地方被引用方法的优点
1. 使程序变得更简短而清晰。
2. 有利于程序维护。
3. 可以提高程序开发的效率。
4. 提高了代码的重用性。方法的命名规则
1.方法的名字的第一个单词应以小写字母作为开头后面的单词则用大写字母开头写不使用连接符。例如addPerson。
2.下划线可能出现在 JUnit 测试方法名称中用以分隔名称的逻辑组件。一个典型的模式是testMethodUnderTest_state例如 testPop_emptyStack。 方法的定义
一般情况下定义一个方法包含以下语法 修饰符 返回值类型 方法名(参数类型 参数名){...方法体...return 返回值;
}
方法包含一个方法头和一个方法体。下面是一个方法的所有部分
修饰符修饰符这是可选的告诉编译器如何调用该方法。定义了该方法的访问类型。 返回值类型 方法可能会返回值。returnValueType 是方法返回值的数据类型。有些方法执行所需的操作但没有返回值。在这种情况下returnValueType 是关键字void。 方法名是方法的实际名称。方法名和参数表共同构成方法签名。 参数类型参数像是一个占位符。当方法被调用时传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的方法可以不包含任何参数。 方法体方法体包含具体的语句定义该方法的功能。
实例
下面的方法包含 2 个参数 num1 和 num2它返回这两个参数的最大值。 /** 返回两个整型变量数据的较大值 */
public static int max(int num1, int num2) {int result;if (num1 num2)result num1;elseresult num2;return result;
}
更简略的写法三元运算符
public static int max(int num1, int num2) {return num1 num2 ? num1 : num2;
}方法调用
Java 支持两种调用方法的方式根据方法是否返回值来选择。
当程序调用一个方法时程序的控制权交给了被调用的方法。当被调用方法的返回语句执行或者到达方法体闭括号时候交还控制权给程序。
当方法返回一个值的时候方法调用通常被当做一个值。例如 int larger max(30, 40);
如果方法返回值是void方法调用一定是一条语句。例如方法println返回void。下面的调用是个语句
System.out.println(欢迎访问);实例
下面的例子演示了如何定义一个方法以及如何调用它 public class TestMax {/** 主方法 */public static void main(String[] args) {int i 5;int j 2;int k max(i, j);System.out.println( i 和 j 比较最大值是 k);}/** 返回两个整数变量较大的值 */public static int max(int num1, int num2) {int result;if (num1 num2)result num1;elseresult num2;return result; }
}
这个程序包含 main 方法和 max 方法。main 方法是被 JVM 调用的除此之外main 方法和其它方法没什么区别。
main 方法的头部是不变的如例子所示带修饰符 public 和 static,返回 void 类型值方法名字是 main,此外带个一个 String[] 类型参数。String[] 表明参数是字符串数组。
void 关键字
本节说明如何声明和调用一个 void 方法。
下面的例子声明了一个名为 printGrade 的方法并且调用它来打印给定的分数。 示例
ublic class TestVoidMethod {public static void main(String[] args) {printGrade(78.5);}public static void printGrade(double score) {if (score 90.0) {System.out.println(A);}else if (score 80.0) {System.out.println(B);}else if (score 70.0) {System.out.println(C);}else if (score 60.0) {System.out.println(D);}else {System.out.println(F);}}
}通过值传递参数
调用一个方法时候需要提供参数你必须按照参数列表指定的顺序提供。
例如下面的方法连续n次打印一个消息 public static void nPrintln(String message, int n) {for (int i 0; i n; i) {System.out.println(message);}
}
示例
下面的例子演示按值传递的效果。
该程序创建一个方法该方法用于交换两个变量。 public class TestPassByValue {public static void main(String[] args) {int num1 1;int num2 2;System.out.println(交换前 num1 的值为 num1 num2 的值为 num2);// 调用swap方法swap(num1, num2);System.out.println(交换后 num1 的值为 num1 num2 的值为 num2);}/** 交换两个变量的方法 */public static void swap(int n1, int n2) {System.out.println(\t进入 swap 方法);System.out.println(\t\t交换前 n1 的值为 n1 n2 的值 n2);// 交换 n1 与 n2的值int temp n1;n1 n2;n2 temp;System.out.println(\t\t交换后 n1 的值为 n1 n2 的值 n2);}
} 传递两个参数调用swap方法。有趣的是方法被调用后实参的值并没有改变。
方法的重载
上面使用的max方法仅仅适用于int型数据。但如果你想得到两个浮点类型数据的最大值呢
解决方法是创建另一个有相同名字但参数不同的方法如下面代码所示 public static double max(double num1, double num2) {if (num1 num2)return num1;elsereturn num2;
}
如果你调用max方法时传递的是int型参数则 int型参数的max方法就会被调用
如果传递的是double型参数则double类型的max方法体会被调用这叫做方法重载
就是说一个类的两个方法拥有相同的名字但是有不同的参数列表。
Java编译器根据方法签名判断哪个方法应该被调用。
方法重载可以让程序更清晰易读。执行密切相关任务的方法应该使用相同的名字。
重载的方法必须拥有不同的参数列表。你不能仅仅依据修饰符或者返回类型的不同来重载方法。 命令行参数的使用
有时候你希望运行一个程序时候再传递给它消息。这要靠传递命令行参数给main()函数实现。
命令行参数是在执行程序时候紧跟在程序名字后面的信息。 实例
下面的程序打印所有的命令行参数 public class CommandLine {public static void main(String[] args){ for(int i0; iargs.length; i){System.out.println(args[ i ]: args[i]);}}
} 构造方法
当一个对象被创建时候构造方法用来初始化该对象。构造方法和它所在类的名字相同但构造方法没有返回值。
通常会使用构造方法给一个类的实例变量赋初值或者执行其它必要的步骤来创建一个完整的对象。
不管你是否自定义构造方法所有的类都有构造方法因为 Java 自动提供了一个默认构造方法默认构造方法的访问修饰符和类的访问修饰符相同(类为 public构造函数也为 public类改为 protected构造函数也改为 protected)。
一旦你定义了自己的构造方法默认构造方法就会失效。 实例
下面是一个使用构造方法的例子 // 一个简单的构造函数
class MyClass {int x;// 以下是构造函数MyClass() {x 10;}
}
实例
下面是一个使用构造方法的例子 // 一个简单的构造函数
class MyClass {int x;// 以下是构造函数MyClass(int i ) {x i;}
}
可变参数
typeName... parameterName在方法声明中在指定参数类型后加一个省略号(…) 。
一个方法中只能指定一个可变参数它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。 public class VarargsDemo {public static void main(String[] args) {// 调用可变参数的方法printMax(34, 3, 3, 2, 56.5);printMax(new double[]{1, 2, 3});}public static void printMax( double... numbers) {if (numbers.length 0) {System.out.println(No argument passed);return;}double result numbers[0];for (int i 1; i numbers.length; i){if (numbers[i] result) {result numbers[i];}}System.out.println(The max value is result);}
}
finalize() 方法
Java 允许定义这样的方法它在对象被垃圾收集器析构(回收)之前调用这个方法叫做 finalize( )它用来清除回收对象。
例如你可以使用 finalize() 来确保一个对象打开的文件被关闭了。
在 finalize() 方法里你必须指定在对象销毁时候要执行的操作。
finalize() 一般格式是 protected void finalize()
{// 在这里终结代码
}
关键字 protected 是一个限定符它确保 finalize() 方法不会被该类以外的代码调用。
当然Java 的内存回收可以由 JVM 来自动完成。如果你手动使用则可以使用上面的方法。
实例 public class FinalizationDemo { public static void main(String[] args) { Cake c1 new Cake(1); Cake c2 new Cake(2); Cake c3 new Cake(3); c2 c3 null; System.gc(); //调用Java垃圾收集器}
} class Cake extends Object { private int id; public Cake(int id) { this.id id; System.out.println(Cake Object id is created); } protected void finalize() throws java.lang.Throwable { super.finalize(); System.out.println(Cake Object id is disposed); }
} 学习来自“https://www.runoob.com/java/java-methods.html”
总结
再见少年拉满弓。