一、方法的定义
public static 返回值类型 方法名称(参数列表){
语句
}
方法定义在类(class)里,但不能定义在其他方法中
类{
方法1(){...}
方法2(){...}
方法3(){...}
}
注意:方法只定义,没有被调用,里面的语句永远不会被执行
二、方法的使用(调用)
可以出现语句的位置,可以进行方法的调用
//方法定义 public static int add(int x,int y) { return x + y; } //方法调用 public static void main(String[] args) { int a = 1; int b = 2; add(a,b); }
调用其他类里面的方法:类名 . 方法名
三、方法的重载
Java中一个编译单元里(一个Java类)允许出现相同名称的函数(方法),参数列表不同即可
两个整形相加 add(int ,int)
两个浮点型相加 add(double,double)
四、方法的签名
Java编译单元中唯一确定方法的标识
= 方法名 + 参数列表
只要方法签名不同,就可以定义新的方法
备注:
1.参数列表只看类型,不看名称
add(int a,int b) {...} 前提
add(int a,int b) {...} 可定义
add(int a,int b) {...} 不可定义
2.方法的签名中不包括返回值类型
int add(int a,int b){...} 前提
int add(double a,double b){...} 可定义
double add(int a,int b){...} 不可定义
五、静态属性、类变量、静态变量
除了局部变量外的另一种变量类型
初始值:0的变形
使用:类名 . 变量名
定义位置:类里,方法外,用static修饰
作用域:跟随大括号(整个类的内部都是有效的)
生命周期:伴随着类在运行中的生命周期而运行,暂时可认为静态属性在程序运行期间始终 存在
类的生命周期:
.java 经过编译成为 .class 在硬盘上
类的加载:将属于一个类的数据从硬盘上加载到内存中
类的卸载:将放在内存中的类数据从内存中剔除
六、关于类的加载的问题
1.某个具体的类在某个类被用到时触发加载
2.什么叫做类被用到了
A.method(...) 用到了A
A.main(...) 用到了A
A.静态属性 用到了A
3.静态属性的初始化语句在类的加载过程中就会完成静态属性的初始化工作
4.类的加载的用法
直接赋值 static int a = ...
静态代码块 static {...}
按照代码的书写顺序,依次执行
5.哪些类被加载了
静态属性
方法 -> 语句 - > 字节码指令
6.加载到哪个区域了
JVM管理的区域有栈区、方法区,类的数据被加载到方法区
七、访问权限(访问限定符)
定义在A类中的方法和属性,是否允许其他的类使用
public | default(不写) | privata |
所有类都可用 | 只能被当前包里面的其他类使用 | 只在自己类内部可使用 |
访问限定符能出现的位置:
类的内部,用来修饰类变量、方法、... public/default/privata
定义类的时候 public/default
八、类里面可以出现什么
1.类方法、类方法的定义、类变量的初始语句(定义时初始化、静态代码块)
class 某个类 {
static int a;
static void method(){...}
static int b = ...;
static {...}
2.语句只能出现在方法内部 特例:类变量的初始语句