1.参数问题
2.变量
3.可变参数
package 方法demo1__code; public class two { public static void main(String[] args) { text.add(3,4,5,6); } } class text{ static void add(int ... a){ } }
可变参数其实是一个数组,可以用数组的方式使用;
ATT:
1.定义时定义在最后后面,不然可变参数后面的参数永远接收不到数据!
2.可变参数只能有一个;
3.可变参数本质是数组;
4.方法重载
实现场景:
实现两个数相加但是并没有指明类型;
int+int或者double+double;
例子:
import java.util.Scanner; public class two { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a= sc.nextInt(); int b= sc.nextInt(); int c=one(a,b); System.out.println(c); String d = sc.next(); String e = sc.next(); String f =one(d,e); System.out.println(f); } public static int one(int a ,int b){ return a+b; } private static String one (String a ,String b){ return a+b; } }
5.静态及非静态方法
在Java中,静态方法(Static Methods)和非静态方法(Instance Methods)在行为和使用场景上存在显著差异。静态方法属于类本身,而非静态方法则属于类的实例。下面我将通过实现一个简单的功能——计算两个整数的和,来展示这两种方法的区别和用法。
静态方法实现
静态方法可以直接通过类名调用,无需创建类的实例。由于它不依赖于对象的状态(即不访问非静态成员变量),因此它不能访问类的非静态成员(包括方法和变量)。
java复制代码
public class Calculator { | |
// 静态方法实现加法 | |
public static int add(int a, int b) { | |
return a + b; | |
} | |
public static void main(String[] args) { | |
// 直接通过类名调用静态方法 | |
int sum = Calculator.add(5, 3); | |
System.out.println("The sum is: " + sum); | |
} | |
} |
非静态方法实现
非静态方法需要通过类的实例来调用。这意味着在调用非静态方法之前,必须先创建类的实例。非静态方法可以访问类的静态成员和非静态成员。
java复制代码
public class Calculator { | |
// 非静态方法实现加法 | |
public int add(int a, int b) { | |
return a + b; | |
} | |
public static void main(String[] args) { | |
// 创建Calculator类的实例 | |
Calculator calc = new Calculator(); | |
// 通过实例调用非静态方法 | |
int sum = calc.add(5, 3); | |
System.out.println("The sum is: " + sum); | |
} | |
} |
静态方法与非静态方法的区别
-
调用方式:静态方法通过类名直接调用,而非静态方法需要通过类的实例来调用。
-
访问权限:静态方法只能直接访问类的静态成员(静态变量和静态方法),而非静态方法可以访问类的所有成员(静态和非静态)。
-
用途和场景:静态方法通常用于实现与类本身相关的工具性功能,不依赖于任何对象实例的状态。非静态方法则用于实现与对象实例紧密相关的功能,需要访问或修改对象实例的状态。
-
内存分配:静态方法属于类本身,它们在类加载时就被加载到JVM的方法区,而非静态方法则属于对象实例,它们随着对象的创建而创建,随着对象的销毁而销毁。
综上所述,选择使用静态方法还是非静态方法,取决于你希望实现的功能是否与类的实例状态相关。如果功能不依赖于对象的状态,那么使用静态方法会更方便、更高效。如果功能需要访问或修改对象的状态,那么应该使用非静态方法。