Java 方法
2021-02-18 03:20
标签:== extend 打开 command 定义 结束 ble 通过 dem Java方法 类似于C语言中的函数。 在语句 println() 是一个方法。 System 是系统类。 out 是标准输出对象。 方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头写,不使用连接符。例如:addPerson、onePrice 语法如下: 修饰符:这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。 返回值类型 :方法可能会返回值。returnValueType 是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,returnValueType 是关键字void。 方法名:是方法的实际名称。方法名和参数表共同构成方法签名(类似于C语言的函数原型)。 参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。 方法体:方法体包含具体的语句,定义该方法的功能。 如: 下面的方法包含 2 个参数 num1 和 num2,它返回这两个参数的最大值。 1、当方法返回一个值的时候,方法调用通常被当做一个值。例如: 2、如果方法返回值是void,方法调用一定是一条语句。例如,方法println返回void。下面的调用是个语句: 实例: 输出; 这个程序包含 main 方法和 max 方法。main 方法是被 JVM 调用的,除此之外,main 方法和其它方法没什么区别。 main 方法的头部是不变的,如例子所示,带修饰符 public 和 static,返回 void 类型值,方法名字是 main,此外带个一个 String[] 类型参数。String[] 表明参数是字符串数组。 下例说明如何声明和调用一个 void 方法: 输出: 创建另一个有相同名字但参数不同的方法,称为重载。 如: 如果你调用max方法时传递的是int型参数,则 int型参数的max方法就会被调用; 如果传递的是double型参数,则double类型的max方法体会被调用,这叫做方法重载; 就是说一个类的两个方法拥有相同的名字,但是有不同的参数列表。 Java编译器根据方法签名(函数原型)判断哪个方法应该被调用。 方法内定义的变量被称为局部变量。 局部变量的作用范围从声明开始,直到包含它的块结束。 局部变量必须声明才可以使用。 方法的参数范围涵盖整个方法。参数实际上是一个局部变量。 for循环的初始化部分声明的变量,其作用范围在整个循环。 有时候你希望运行一个程序时候再传递给它消息。这要靠传递命令行参数给main()函数实现。 命令行参数是在执行程序时候紧跟在程序名字后面的信息。 如 通过命令行运行程序: 注意:java与javac的版本需要一致,才可以如此运行。 当一个对象被创建时候,构造方法用来初始化该对象。构造方法和它所在类的名字相同,但构造方法没有返回值。 不管是否自定义构造方法,所有的类都有构造方法,因为Java自动提供了一个默认构造方法,默认构造方法的访问修改符和类的访问修改符相同(类为 public,构造函数也为 public;类改为 protected,构造函数也改为 protected)。 一旦定义了自己的构造方法,默认构造方法就会失效。 实例: JDK 1.5 开始,Java支持传递同类型的可变参数给一个方法。 方法的可变参数的声明如下所示: 在方法声明中,在指定参数类型后加一个省略号(...) 。 一个方法中只能指定一个可变参数,它必须是方法的最后一个参数。任何普通的参数必须在它之前声明。 实例: 输出: Java 允许定义这样的方法,它在对象被垃圾收集器析构(回收)之前调用,这个方法叫做 finalize( ),它用来清除回收对象。 例如,你可以使用 finalize() 来确保一个对象打开的文件被关闭了。 在 finalize() 方法里,你必须指定在对象销毁时候要执行的操作。 finalize() 一般格式是: 关键字 protected 是一个限定符,它确保 finalize() 方法不会被该类以外的代码调用。 当然,Java 的内存回收可以由 JVM 来自动完成。如果你手动使用,则可以使用上面的方法。 实例: 输出: 每天学习一点点,每天进步一点点。 Java 方法 标签:== extend 打开 command 定义 结束 ble 通过 dem 原文地址:https://www.cnblogs.com/youcoding/p/12693998.html System.out.println()
中:
方法的命名规则
方法的定义
修饰符 返回值类型 方法名(参数类型 参数名){
...
方法体
...
return 返回值;
}
public static int age(int birthday){...}
public static int max(int a, int b){
int result;
if(a>b) result = a;
else result = b;
return result;
}
方法调用
int larger = max(30, 40);
System.out.println("你好!");
public class TestMax {
public static void main(String[] args){
int i = 5;
int j = 3;
int k = max(i, j);
System.out.println(i +" 和 "+j + " 比较,最大值是:"+k);
}
public static int max(int a, int b){
int result;
if (a>b)
result = a;
else result = b;
return result;
}
}
5 和 3 比较,最大值是:5
返回值为void型的方法
public 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‘);
}
}
C
方法的重载
public static double max(double num1, double num2) {
if (num1 > num2)
return num1;
else
return num2;
}
变量作用域
命令行参数的使用
public class CommandLine {
public static void main(String args[]){
for(int i=0; i
$ javac CommandLine.java
$ java CommandLine this is a command line 200 -100
args[0]: this
args[1]: is
args[2]: a
args[3]: command
args[4]: line
args[5]: 200
args[6]: -100
构造方法
通常会使用构造方法给一个类的实例变量赋初值,或者执行其它必要的步骤来创建一个完整的对象。
// 一个简单的构造函数
class MyClass {
int x;
// 以下是构造函数
MyClass() {
x = 10;
}
}
可变参数
typeName... parameterName
public class VarargsDemo {
public static void main(String[] args){
// 调用可变参数
printMax(43, 2, 4, 7, 66);
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
Max value is: 66.0
Max value is: 3.0
finalize() 方法
protected void finalize()
{
// 在这里终结代码
}
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");
}
}
$ javac FinalizationDemo.java
$ java FinalizationDemo
Cake Object 1is created
Cake Object 2is created
Cake Object 3is created
Cake Object 3is disposed
Cake Object 2is disposed