java基础复习(一)
面向对象基础
局部变量与成员变量
- 成员变量:类中方法体外的变量
- 静态变量(类变量):用static修饰的成员变量
- 局部变量:类中方法体中变量
注意点:静态变量与成员变量
1、静态变量是类加载的时候就分配了内存初始化(2次),而实例变量则是在对象实例化的时候分配到堆
2、实例变量的使用需要有对象实例参与,而静态变量在方法区中就加载并初始化,直接类名.类变量
讲下static:
1、修饰变量
2、修饰方法
3、修饰代码块
public class StaticBL {
public int a;
public static String s="gg";
public static int getNum() {
return num;
}
private static int num = 8;
public StaticBL() {
System.out.println("我是二号彭于晏");
}
static {
System.out.println("我是彭于晏");
}
public void printString(String s){
System.out.println(s);
}
public static void printS(String s){
System.out.println(s);
}
public static void main(String[] args) {
StaticBL bl = new StaticBL();
System.out.println(bl.a);
System.out.println(bl.s);
System.out.println(StaticBL.s);
StaticBL.printS("kk");
System.out.println(StaticBL.getNum());
// 我是彭于晏
// 我是二号彭于晏
// 0
// gg
// gg
// kk
// 8
}
}
1、修饰变量和修饰方法有相似之处,不用对象参与(可以有也可以没有,建议不要有)
2、修饰代码块执行一次,在构造方法前面,多个静态就从上向下
3、不影响访问权限,访问权限在类加载解析时进行了检查
private关键字
没啥可说的,使用时候要get和set方法
this关键字及内存分析
this指的是堆内存中对象的地址,里面的变量值是创建实例对象的初始化值
构造方法
1、创建一个类的实例并初始化
2、方法与类名相同,不能被static、final、synchronized、abstract和native修饰
3、如果类中没有构造方法,系统会提供
4、构造方法优先于构造函数
5、重载,有参构造和无参构造
顺便谈下重写和重载
重写:1、继承类,实现接口重写方法
2、参数列表相同
3、返回值被父类的返回类型兼容
重载:1、方法名相同
2、形参列表不同
3、返回值类型无要求
就说这些了,下一篇写面向对象的特征