一:方法的优点
-
1.使程序变得更加简短清晰。
-
2.有利于程序的维护。
-
3.提高开发效率。
-
4.提高代码的重用性。
-
1.完成某个功能
-
2.可以将代码独立出一个区域
-
3.实现代码复用
-
语法:
-
1.方法是定义在类中,上下位置没有影响
-
2.方法不能嵌套
/*主方法 * * 1. public 访问修符(控制访问权限) * 2. static 静止,静态的,固定的,每个方法都要有 * 3. void 此方法的返回值类型,void类型之一,意思是不返回 * 此处可以写基本类型,String等 * * 4. main 方法名,见名知意,不要重名 * 5. ()参数列表,方法执行需要的数据 * 参数列表内是数据类型变量名,且可以写多个,多个之间用逗号隔开。 * {} 方法体,内部写代码 * */
二:方法的命名规则
-
1.方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头写,不使用连接符。例如:addPerson。
-
2.下划线可能出现在 JUnit 测试方法名称中用以分隔名称的逻辑组件。一个典型的模式是:test_,例如 testPop_emptyStack。
三:方法的定义
- **修饰符:**修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。
- 返回值类型 :方法可能会返回值。returnValueType 是方法返回值的数据类型。有些方法执行所需的操作,但没有返回值。在这种情况下,returnValueType 是关键字void。
- **方法名:**是方法的实际名称。方法名和参数表共同构成方法签名。
- **参数类型:**参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。
- **方法体:**方法体包含具体的语句,定义该方法的功能。
创建一个判断大小的
- 无参无返回值
- 有参无返回值
- 参数就是方法执行所需要的数据,在()内定义,就像局部变量一样。
- 无参有返回值
-返回值就是执行完会返回一个结果,结果返回给调用者。
- 有参有返回值
总结:
1.想返回值,需要使用return值,
2.加了return值,方法就不能写void
3.return后的执行语句不执行
方法一:
int i = 10;
int j = 11;
int number = max1(i,j);
System.out.println(number);
}
// 找到最大值
public static int max1(int i, int j) {
int result;
// TODO Auto-generated method stub
if(i>j) {
result = i;
}else {
result = j;
}
return result;
}
方法二:
int i = 10;
int j = 11;
int number = max(i,j);
System.out.println(number);
}
public static int max(int i, int j) {
return i > j ? i : j;
}
四:方法调用
Java 支持两种调用方法的方式,根据方法是否返回值来选择。当程序调用一个方法时,程序的控制权交给了被调用的方法。当被调用方法的返回语句执行或者到达方法体闭括号时候交还控制权给程序。
方法就是为了完成某个功能设计的一段
递归就是自己调自己
容易益栈,
五:void关键字
说明如何声明和调用一个 void 方法。
一个void方法的调用一定是一个语句。 所以,它被在main方法第三行以语句形式调用。就像任何以分号结束的语句一样。
六:通过值传递参数和返回值
调用一个方法时候需要提供参数,你必须按照参数列表指定的顺序提供。
reture :结束方法的
返回值:就是功能的结果,由return带给调用者。
注意:如果没有返回值类型,返回值为void,则方法中可以不写return,return表示结束一个方法,也可以即将返回值给调用当前方法的调用者,并且返回只能返回一个值,不可以返回多个值,一个方法可以有多个return,但被执行的只能有一个,所以需要判断。
闰年的判断:(year % 4 == 0 && year % 100 !=0 || year % 400 == 0)
七:方法的重载
就是说一个类的两个方法拥有相同的名字,但是有不同的参数列表。Java编译器根据方法签名判断哪个方法应该被调用。方法重载可以让程序更清晰易读。执行密切相关任务的方法应该使用相同的名字。重载的方法必须拥有不同的参数列表。你不能仅仅依据修饰符或者返回类型的不同来重载方法。
在类中可以创建 多个方法,它们有相同的名字,但具有不同的参数和不同的定义。
返回值不能做重载的条件
方法的重载:在同一个类中,方法名相同,参数列表不同,返回值不能作为重载的条件。
重载(overloading
是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。最常用的地方就是构造器的重载。
重载规则:
- 被重载的方法必须改变参数列表(参数个数或类型不一样);
- 被重载的方法可以改变返回类型;
- 被重载的方法可以改变访问修饰符;
- 被重载的方法可以声明新的或更广的检查异常;
- 方法能够在同一个类中或者在一个子类中被重载。
- 无法以返回值类型作为重载函数的区分标准。
八:变量作用域
变量的范围是程序中该变量可以被引用的部分。方法内定义的变量被称为局部变量。局部变量的作用范围从声明开始,直到包含它的块结束。局部变量必须声明才可以使用。方法的参数范围涵盖整个方法。参数实际上是一个局部变量。for循环的初始化部分声明的变量,其作用范围在整个循环。
九:构造方法
当一个对象被创建时候,构造方法用来初始化该对象。构造方法和它所在类的名字相同,但构造方法没有返回值。通常会使用构造方法给一个类的实例变量赋初值,或者执行其它必要的步骤来创建一个完整的对象。不管你是否自定义构造方法,所有的类都有构造方法,因为 Java 自动提供了一个默认构造方法,默认构造方法的访问修饰符和类的访问修饰符相同(类为 public,构造函数也为 public;类改为 protected,构造函数也改为 protected)。一旦你定义了自己的构造方法,默认构造方法就会失效。
// 一个简单的构造函数
class MyClass {
int x;
// 以下是构造函数
MyClass() {
x = 10;
}
}
十:finalize() 方法
Java 允许定义这样的方法,它在对象被垃圾收集器析构(回收)之前调用,这个方法叫做 finalize( ),它用来清除回收对象。例如,你可以使用 finalize() 来确保一个对象打开的文件被关闭了。在 finalize() 方法里,你必须指定在对象销毁时候要执行的操作。
protected void finalize()
{
// 在这里终结代码
}
关键字 protected 是一个限定符,它确保 finalize() 方法不会被该类以外的代码调用。当然,Java 的内存回收可以由 JVM 来自动完成。如果你手动使用,则可以使用上面的方法。
键盘录入
在程序运行后,通过控制台向程序输入一些数据,使用的是Scanner工具类。
使用步骤:
1.导包 import java.util.Scanner;
2.创建对象的方法,完成 Scanner inport = new Scanner(System.in);
input.nextInt(); 允许输入数字
input.nextLine();输入字符串
input.nextDouble();数字浮点型
xxxxxxxxxx class Animal{
public void move() {
System.out.println(“动物会移动”); }
}
class Dog extends Animal{
public void move() {
System.out.println(“狗可以跑和走”);
}
}
public class TestDog {
public static void main(String[] args) {
Animal a = new Animal(); // Animal 对象
Animal b = new Dog();// Dog 对象
a.move(); // 执行Animal类的方法
b.move(); // 执行Dog类的方法
}
}
\r \n 相当于一个换行
\t 空格