P01-何谓Java方法
一、System.out.println()分析
二、剖析方法
谈到方法,我就突然想到了c++函数:
其实:Java 方法和 C++ 函数在许多方面确实有类似之处,但它们也存在一些显著的差异。下面是它们的一些共同点和不同点:
共同点
- 功能单位:
- Java 方法 和 C++ 函数 都是用于封装功能的代码块,可以被调用以执行特定的任务或操作。
- 参数和返回值:
- 两者都可以接收参数并返回值。你可以定义方法/函数以处理输入并输出结果。
- 可重用性:
- 方法和函数都支持代码的重用,通过调用可以避免代码重复。
不同点
-
语法:
-
Java 方法
的定义包含在类中,其语法如下:
public returnType methodName(parameters) { // method body }
-
C++ 函数
可以在类中(作为成员函数)或者在类外定义,其语法如下:
returnType functionName(parameters) { // function body }
如果是成员函数,还可以是:
class ClassName { public: returnType methodName(parameters) { // method body } };
-
-
对象导向:
- Java 方法 是对象导向编程(OOP)的一部分,总是与类相关联。Java 不支持全局函数。
- C++ 函数 可以是全局的,也可以是类的成员函数。C++ 支持全局函数和命名空间中的函数。
-
内存管理:
- Java 是一个内存管理相对自动化的语言,内存分配和垃圾回收由 JVM 处理。
- C++ 要求程序员手动管理内存,包括分配和释放内存。C++ 允许更直接的内存操作。
-
方法重载和运算符重载:
- Java 方法 支持方法重载,即可以定义多个同名的方法,只要它们的参数列表不同。
- C++ 函数 支持函数重载和运算符重载,允许你为不同的参数类型或操作符定义不同的行为。
-
访问控制:
- Java 方法 的访问控制由访问修饰符(如
public
,protected
,private
)控制,且所有方法默认属于类的实例。 - C++ 函数 也有访问修饰符(
public
,protected
,private
),但全局函数和成员函数的访问控制是不同的。
- Java 方法 的访问控制由访问修饰符(如
总的来说,尽管 Java 方法和 C++ 函数在目的和结构上类似,但它们在具体实现和语言特性上有所不同。
三、实际代码演示
public class Demo07 {
//main方法
public static void main(String[] args) {
int sum = add(1,2);
System.out.println(sum);
}
//加法
public static int add(int a,int b){
return a+b;
}
}
设计方法原则
设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最好保持方法的原子性,就就是一个方法只完成1个功能,这样利于我们后期的扩展。
四、方法的定义
- 修饰符:修饰符,这是可选的,定义了该方法的访问类型。(例如:public、static、final)
- 返回值类型:方法可能会返回值。returnValueType是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,returnValueType是关键字void
- 方法名:是方法的实际名称。方法名和参数表共同构成方法签名。(名字随便取,但要遵守命名规范)
- 参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。
形式参数:在方法被调用时用于接收外界输入的数据。
实参:调用方法时实际传给方法的数据。 - 方法体:方法体包含具体的语句,定义该方法的功能
方法的调用
比大小方法
public class Demo08 {
public static void main(String[] args) {
int max = max(10,10);
System.out.println(max);
}
//比大小方法
public static int max(int num1,int num2){
int result = -1;
if(num1==num2){
System.out.println("num1==num2");
return 0;//终止方法
}
if(num1>num2){
result = num1;
return result;
}else{
result =num2;
return result;
}
}
}