- 1、方法是什么?
方法是对一个对象指定他可以做什么!
是一段用来完成特定功能的代码片段,类似于其它语言的函数。
例:人是一个对象,人可以吃饭,玩游戏,睡觉等等,吃饭,睡觉,玩游戏就是方法!
- 2、方法有什么用?
方法用于定义该类或该类的实例的行为特征和功能实现。
可以实现复用性!
面向对象中,整个程序的基本单位是类,方法是从属于类和对象的!
对属性进行安全性的封装
实现步骤
1、对属性进行私有化(private)!
2、对外提供公开的set/get方法!
- 3、使用方法有什么优点?
提高了安全性
提高了复用性
隐藏了实现细节
减少写代码,需要用的时候直接调用即可!
-
4、什么时候应该使用方法?
当能封装成方法使用的时候,最好封装成方法使用,让代码起到复用的作用! -
5、方法是怎么使用的?
方法声明格式:
有返回值时:
修饰符1 修饰符2 返回值类型 方法名(形参类型1 形参名1,形参类型2 形参名2…){
Java语句块;(方法体)
return 返回值;
}
方法的调用:返回值类型 变量名 = 方法名(需传入的实参1,需传入的实参2,…);
无返回值时:
修饰符1 修饰符2 void 方法名(形参类型 形参名){
Java语句块;(方法体)
}
方法的调用:方法名(需要传入的参数);
注: 实参类型必须与形参类型相同才可以传入!
形参与实参可以有也可以没有!
当方法有static静态修饰符时,不需要new一个对象,可直接调用。
当方法无static静态修饰符时,需要new一个方法所在类对象来调用。
实例
package cn.xjion.pro02;
/**
* 测试方法的使用
* @author xjion
*
*/
public class TestMothed {
public static void main(String[] args) {
// 在main方法中调用静态方法
// 不需要创建所在类的对象,直接调用
stStady();
stEnglish(98);
int sum = stSum();
System.out.println("值为:"+sum);
double score = stScore(90);
System.out.println("成绩为:"+score);
// 在main方法调用普通方法
// 需要通过new创建所在类的对象才能调用
TestMothed tm = new TestMothed();
tm.stady();
tm.english(100);
int sum1 = tm.sum();
System.out.println("普通值为:"+sum1);
double score1 = tm.score(80);
System.out.println("普通成绩为:"+score1);
}
// 不需要传参的无返回值普通方法
public void stady() {
System.out.println("我在学习");
}
// 需要传参的无返回值普通方法
public void english(int score) {
System.out.println("我的英语成绩为:"+score);
}
// 不需要传参的无返回值静态方法
public static void stStady() {
System.out.println("我在学习");
}
// 需要传参的无返回值静态方法
public static void stEnglish(int score) {
System.out.println("我的英语成绩为:"+score);
}
// 不需要传参的有返回值普通方法
public int sum() {
int sum = 0;
sum = 1 +5;
return sum;
}
// 需要传参的有返回值普通方法
public double score(int score) {
double sum = 0;
sum = score * 0.6;
return sum;
}
// 不需要传参的有返回值静态方法
public static int stSum() {
int sum = 0;
sum = 10 +5;
return sum;
}
// 需要传参的有返回值静态方法
public static double stScore(int score) {
double sum = 0;
sum = score * 0.6;
return sum;
}
}
- 方法重载
什么是重载:
方法的名称相同但是方法的参数列表不同,我们就把它称为重载。
重载的作用:
可以根据不同的参数个数,顺序,类型,自动匹配方法。
减少写过多方法名的重复步骤。
重载的优点:
不用为了对不同的参数类型或参数个数,而写多个方法。多个方法用同一个名字,但参数表,即参数的个数或(和)数据类型可以不同,调用的时候,虽然方法名字相同,但根据参数表可以自动调用对应的方法,就省去了记很多方法名的麻烦!
什么时候应该使用重载:
当有两个及两个以上性质类似或者相同的方法时,我们就可以使用重载来完成,使得传入不同的参数就能够精确的找到需要调用的方法。
怎么使用重载:
构成方法重载的条件(两同三不同):
1.两同:指同一类当中,同一个方法名。
2.三不同的含义:形参类型、形参个数、形参顺序不同
例:
public class TestOverload {
public static void main(String[] args) {
System.out.println(add(3,5));
System.out.println(add(3,5,10));
System.out.println(add(3.0,5));
System.out.println(add(3,5.0));
}
//计算两个整数的和
public static int add(int n1,int n2){
int sum = n1 + n2;
return sum;
}
public static int add(int n1,int n2,int n3){
// 计算三个整数的和,形参个数不同构成重载
int sum = n1 + n2 + n3;
return sum;
}
//形参的顺序不同也能构成重载
public static double add(double n1,int n2){
double sum = n1 + n2;
return sum;
}
public static double add(int n1,double n2){
double sum = n1 + n2;
return sum;
}
}