方法
方法的定义:
1、Java方法是语句的集合,它们在一起执行一个功能。
2、方法是解决一类问题的步骤的有序组合
3、方法包含于类或对象中
4、方法在程序中被创建,在其他地方被引用
方法定义的规则:
方法的命名规则:
1、方法的名字的第一个单词应以小写字母作为开头,后面的单词则用大写字母开头写,不使用连接符
2、下划线可能出现在方法名称中用以分隔名称的逻辑组件
例:
方法包含一个方法头和一个方法体。以下是一个方法的所有部分:
1、修饰符:修饰符,这是可选的,告诉编译器如何调用该方法。定义了该方法的访问类型。
2、返回值类型 :方法可能会返回值。如没有,则为void。
3、方法名:方法的实际名称。方法名和参数表共同构成方法签名。
4、 参数类型:参数像是一个占位符。当方法被调用时,传递值给参数。这个值被称为实参或变量。参数列表是指方法的参数类型、顺序和参数的个数。参数是可选的,方法可以不包含任何参数。
5、方法体:方法体包含具体的语句,定义该方法的功能。
例:这段代码是带参方法的使用
这段代码是调用时使用的带参方法
方法的优点:
1. 使程序变得更简短而清晰。
2. 有利于程序维护。
3. 可以提高程序开发的效率。
4. 提高了代码的重用性。
创建方法:
定义方法:
1、首先创建一个类和一个相关的main方法(这两个类要放在同一包内)
例如:animal //动物类 那么我们就要创建一个相动物类的main方法 animal_Main
2、我们在相关类里面去创建自定义的相关变量以及他的类型(注意这个是第2个类animal,而不是具有main方法的)
例如:注意此处的private是封装的意思(可写可不写)
例一: hello()方法,无返回值,返回值类型为void,因为无返回值,所以没有return;
//无参无返回值方法
public void hello(){
System.out.print("Hello!");
}
例二: 右边的这个方法中包含 2 个参数 num1 和 num2,它返回这两个参数的最大值。
//返回两个整数变量数据的较大值
public int max(int num1,int num2){
int result;
if(num1 > num2)
result = num1;
else
result = num2;
return result;
}
注意!!!:
在一些其它语言中方法指过程和函数
一个返回非void类型返回值的方法称为函数
一个返回void类型返回值的方法叫做过程
常见错误:
1、调用方法时不能指定实参类型!
//方法定义 public void addName(String name){
//方法体
}
//方法调用 对象名.addName(String "张三");
2、形参和实参数据类型不一致!数量也要一致!
//方法定义 public boolean searchName(int start ,int end ,String name){
//方法体
}
//方法调用
String s="开始";
int e=3;
String name="张三";
boolean flag=对象名. searchName(s ,e ,name);
方法携带对象参数:
基本数据类型和引用数据类型在传参时的区别:
1、基本数据类型,操作传递的是变量的值,改变一个变量的值不会影响另一个变量的值。
2、引用数据类型(类、数组和接口),赋值是把原对象的引用(可理解为内存地址)传递给另一个引用
构造方法:
语法: 无返回值类型,方法名与类名相同,可以指定参数
作用:对象初始化,系统提供默认无参构造方法
例:访问修饰符 构造方法名 ( ) {
//初始化代码
}
构造方法重载:
自定义构造方法 \
方法名相同 \
参数项不同 ——同一个类中
与返回值,访问修饰符无关 /
此时系统不再提供默认无参构造方法 /
public Student(){
}
public Student(String name,int age){
this.name=name;
this.age=age;
}
this关键字
1、调用属性
this.health = 100;
this.name = "大黄";
2、调用方法
this.print();
3、调用构造方法
调用无参构造方法
this():
调用有参构造方法
this("小黑",100,100,"雄");
成员变量和局部变量:
1、变量声明的位置决定变量作用域
2、变量作用域确定可在程序中按变量名访问该变量的区域
区别:
成员变量:在同一个方法中,不允许有同名局部变量。在不同方法中,可以有同名局部变量 。
局部变量:在同一个类中,成员变量和局部变量同名时,局部变量具有更高的优先级。
public class Example{
变量1类型 变量1;
变量2类型 变量2;
变量3类型 变量3;
public 返回类型 方法1(){
变量4类型 变量4;
}
public 返回类型 方法2(){
变量5类型 变量5;
}
}
成员变量:变量一,变量二,变量三
方法:方法一,方法二
局部变量:变量四,变量五
注意!!!局部变量超出其作用域后不可用!