Java知识7 Java方法 void关键字 构造方法【多测师】
一、Java方法: println 是一个方法 System 是系统类 out 是标准输出对象 这句话的用法是调用系统类 System 中的标准输出对象 out 中的方法 println()。 方法定义:包含的语法 修饰符 返回值类型 方法名(参数类型 参数名){ ... 方法体 ... return 返回值; } 修饰符:可选的 告诉编译器如何调用该方法 定义了方法的访问类型 返回值类型:方法可能有返回值 returnValueType是返回数据类型 没有返回值returnValueType为void 方法名:方法名和参数表共同构成方法签名 参数类型:参数像一个占位符 当方法被调用的时候 传递值给参数、这个值被称为实参或变量 参数列表是 指方法的参数类型、顺序和参数的个数 参数是可选的 方法可以不包含任何参数 方法体:方法体包含具体的语句 定义该方法的功能 在一些其它语言中方法指过程和函数。一个返回非void类型返回值的方法称为函数;一个返回void类型返回值的方法叫做过程。 实例:下面方法包含2个参数 num1和num2 它返回这俩个参数的最大值 /** 返回两个整型变量数据的较大值 */ public static int max(int num1, int num2) { int result; if (num1 > num2) result = num1; else result = num2; return result; } 二、方法调用 定义一个方法、进行调用代码如下: 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; else result = num2; return result; } } 这个程序包含 main 方法和 max 方法。main 方法是被 JVM 调用的,除此之外, main 方法和其它方法没什么区别。 main 方法的头部是不变的,如例子所示,带修饰符 public 和 static,返回 void 类型值, 方法名字是 main,此外带个一个 String[] 类型参数。String[] 表明参数是字符串数组。 三、void关键字 举例看如何声明和调用一个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 这里printGrade方法是一个void类型方法,它不返回值。 一个void方法的调用一定是一个语句。 所以,它被在main方法第三行以语句形式调用。就像任何以分号结束的语句一样。 四、通过值传递参数 调用一个方法适合需要提供参数、你必须按照参数列表指定的顺序提供 举例子:按值传递效果 创建一个方法 用户交换俩个变量 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); } } 五、变量作用域 方法内定义的变量为局部变量、局部变量的作用范围从声明开始 直到包含它的块结束 六、构造方法 当一个对象被创建时、构造方法用来初始化该对象、构造方法和类同名字 但构造方法没有返回值 通常会使用构造方法给一个类的实例变量赋初值 不管你是否定义了构造方法 所有的类都有构造方法 因为Java自动提供了一个默认的构造方法 它把所有成员初始化为0 自己定义了构造方法、默认的构造方法就会失效 实例代码如下:(没有给参数的构造方法) //一个简单的构造函数 class MyClass { int x; // 以下是构造函数 MyClass() { x = 10; } } public class ConsDemo { public static void main(String args[]) { MyClass t1 = new MyClass(); MyClass t2 = new MyClass(); System.out.println(t1.x + " " + t2.x); } } 运行结果:10 10 如下为有参数的构造方法: //一个简单的构造函数 class MyClass { int x; // 以下是构造函数 MyClass(int i) { x = i; } } public class ConsDemo { public static void main(String args[]) { MyClass t1 = new MyClass(10); MyClass t2 = new MyClass(20); System.out.println(t1.x + " " + t2.x); } } 运行结果:10 20 七、可变参数 Java支持传递同类型的可变参数给一个方法 在方法声明中、在指定参数类型后加一个省略号(…) 一个方法中只能指定一个可变参数、它必须是方法的最后一个参数 任何普通的参数必须在它之前声明 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); } } 八、实例化对象 import java.util.Date; public class DateDemo { public static void main(String[] args) { //初始化Date对象、进行实例化 Date date = new Date(); //创建一个Date对象 date.toString(); //使用 toString() 函数显示日期时间 System.out.println(date); } }