从零开始学java - 第九天

117 阅读3分钟

这是我参与11月更文挑战的第9天,活动详情查看:2021最后一次更文挑战

今天继续~

java方法

方法的定义

修饰符 返回值类型 方法名(参数类型 参数名){
    ... 
    方法体
    ... 
    return 返回值; 
}
  • 修饰符(可选) - 告诉编辑器如何调用该方法,定义该方法的访问类型
  • 返回值类型 - 方法可能会有返回值,此值就是返回值类型,有些方法只为了执行操作并没有返回值,这种时候返回值类型一般为void
  • 方法名 - 方法的名
  • 参数类型/参数名 - 共同构成一个形参
  • 方法体 - 包含具体语句,定义该方法的功能

方法调用

  • 当方法有返回值的时候,调用通常作为一个值: int larger = max(30, 40);
  • 如果方法返回值为void,调用通常为一条语句: System.out.println("hello world!");

方法的重载

  • 相同的方法使用不同的形参可以达到调用不同方法的结果
public static int max(int num1, int num2) {
    int result; 
    if (num1 > num2)
        result = num1;
    else
        result = num2; 
    return result; 
}
public static double max(double num1, double num2) {
    if (num1 > num2) 
        return num1; 
    else 
        return num2;
}
  • 当发现两个参数都是int类型的时候,就会调用上面的方法,如果发现两个参数都是double类型的就会调用下面那个方法

命令行参数的使用

  • 如果希望在运行程序的时候给它传入信息,可以使用这个:
public class CommandLine {
    public static void main(String args[]){
        for(int i=0; i<args.length; i++){
            System.out.println("args[" + i + "]: " + args[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 static void printMax( double... numbers)
printMax(34, 3, 3, 2, 56.5);

finalize() 方法

  • 用来清除回收对象
  • 指定对象要销毁时执行的操作
protected void finalize() {
    // 在这里终结代码 
}

java流(Stream),文件(File)和IO

读取控制台输入

  • 控制台输入由System.in完成
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
  • 之后可以使用read()方法读取字符或使用readLine()方法读取字符串

从控制台读取多字符输入

  • 利用do...while循环来控制控制台的输入:
import java.io.*;
public class BRRead { 
    public static void main(String[] args) throws IOException { 
        char c; 
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        System.out.println("输入字符, 按下 'q' 键退出。");
        do { 
            c = (char) br.read(); 
            System.out.println(c); 
        } while (c != 'q');
    }
}

从控制台读取字符串

import java.io.*; 
public class BRReadLines { 
    public static void main(String[] args) throws IOException { 
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
        String str; 
        System.out.println("Enter lines of text."); 
        System.out.println("Enter 'end' to quit."); 
        do { 
            str = br.readLine(); 
            System.out.println(str); 
        } while (!str.equals("end"));
    } 
}

控制台输出

System.out.write('A'); 今天就学到这里,晚安~