一、今日学习
1.Java程序执行过程分析
(1)程序按照从上到下的顺序执行,若在方法内部调用其他方法,则会跳到该方法中由上到下顺序执行
(2)JVM执行Java程序
-
编译:虚拟机根据Java语言规则进行分析,以及变量常量的提取等,依据class文件格式将程序转化为字节码文件,即javac命令的结果。
-
运行:运行JVM字节码的工作是由解释器(Java命令)来完成的。
2.方法的分类
(1)类方法
-
也称为静态方法,用static关键字修饰
-
类方法只能操作静态变量,不能访问实例变量
-
类方法可以在类中被调用,不必创建实例来调用,也可以通过对象调用
(2)实例方法
可以对当前的实例变量操作,可以访问类变量
(3)构造方法
-
构造方法又称为构造器,和类名同名,不能有返回值,方法名字大小写必须与类名保持一致。
-
作用:创建对象
-
格式:修饰符 构造方法(){ }
-
如果不写构造方法,Java会自动创建一个无参的构造方法
-
构造方法既可以有参数也可以无参数
1 public class Study{ 2 public Study(){ 3 } 4 public static void main(String[] args) { 5 } 6 }
1 public class Study{ 2 public Study(int x){ 3 } 4 public static void main(String[] args) { 5 } 6 }
3 自定义方法
(1)格式:访问修饰符 返回类型 方法名(参数列表){}
(2)分类:
-
在方法声明的类定义中调用该方法——方法名(参数列表)
-
在方法生命的类定义外部调用该方法——对象名.方法名(参数列表)
(3)修饰符——修饰范围
-
public:访问权限最高,可以在本工程任意地方访问
-
protected:可以访问同一包中的类以及子类
-
缺省:默认,什么都不写,只能访问同一个包中的类,不能访问其他类
-
private:只能在本类当中访问
(4)返回值:
-
若有返回值,则方法体中必须包含一个return语句指定返回值
-
方法返回类型用于指定由该方法计算和返回值的类型,可以是任何值类型或引用类型数据
-
返回值类型:void、基本类型和类类型
(5)方法名:方法名首字母小写,其余单词首字母大写,符合命名规范
(6)带static关键字的方法
-
又称为静态方法,通过类名调用,不需要创建类的实例来调用
-
例:public static void ti(){}
(7)带final修饰的关键字
-
表明方法不能被重载,也不能被覆盖
-
例:public final void t2(){}
final和static可以同时修饰方法,并且顺序可以相互调换
4.方法重载
(1)方法的重载:指的是在一个类当中,方法名相同,方法的参数不同
(2)参数不同:参数的类型不同或个数不同 //与方法的返回值无关
1 public int add(int x,int y){ 2 return x+y; 3 } 4 public int add(int x,int y,int z){ 5 return x+y+z; 6 }
(3)作用:参数有多种表现形式,名称不一样,功能却相同
5.方法的调用
(1)非静态方法——对象名.方法()
(2)调用静态方法——类名.方法()
(3)方法与方法之间的调用
- 静态方法内部调用其他方法
在本类中,静态方法可以直接调用静态方法
在本类中,调用非静态方法,需要通过对象来调用
在不同类中,静态方法调用其他类中的静态方法,需要通过类名.静态方法()来调用
在不同类中,静态方法调用其他类中的非静态方法,需要导入该类中的包,以及通过创建对象调用
- 非静态方法内部调用
在本类中,非静态方法可以直接调用静态方法
在本类中,非静态方法可以直接调用非静态方法
在不同类中,非静态方法调用其他类中的静态方法,需要导入该类中的包,通过类名.静态方法()来调用
在不同类中,非静态方法调用其他类中的静态方法,需要导入该类中的包,通过创建对象来调用
二、遇到问题
要理解类方法、实例方法、构造方法的调用规则,熟练掌握方法之间的调用。
三、明日学习
方法参数及其传递问题,方法递归,类的属性等