变量 :

  静态变量 : 用static修饰的变量  叫 静态变量,  是每个对象都有的值,

    调用 : 类名.变量名;

       对象引用.变量名(底层默认转换为类名去调用)

  成员变量 : 在类体中声明的变量 叫 成员变量,

    调用 : 对象引用.变量名;

  局部变量 : 在方法内部 或者是方法的形参列表中 声明的变量 叫局部变量

方法 :

  静态方法 : 用static修饰的方法 , 叫静态方法

    调用 : 类名.方法名

       对象引用.静态方法名(底层默认转换为类名去调用)

  成员方法 : 没有static修饰的方法, 叫成员方法

    调用 : 对象引用.成员方法名

  构造方法 : 每个类都有构造方法,如果不写默认有个无参构造,可以有多个构造方法,默认是公共的(public) 静态的(static) 没有返回值的(void) 方法名和类名相同的

    调用 : 实例化的时候会调用构造方法,调用构造方法的时候,默认会调用父类的无参构造

  实例化
        new : 分四步
            1 把相对用的类文件加载到静态代码段
            2 调用构造方法,在栈内存开辟空间(方法只要调用,就会在栈内存开辟空间)
            3 用加载进来的类,去堆内存开辟空间,并把自身的代码复制到堆内存里面,再运行构造方法,把构造方法里面的值赋值给堆内存
            4 把堆内存的内存地址 赋值给前面声明的变量

  this 和 super 现在先知道一下有这么回事就行,一会咱们在讲

代码 :

public class Bian_Liang_Fang_Fa{//public修饰的类,类名必须和文件名相同,而且只有有一个
    static int i = 100;//这是静态变量
    int j = 100;//成员变量
    public static void m_1(){//静态方法
        System.out.println( "我是静态方法" );
    }
    public void m_2(){//成员方法
        System.out.println( "我是成员方法" );
    }
    Bian_Liang_Fang_Fa(){//无参构造
        super();//这里还会默认有个super();就算不写也会有,这是调用父类的无参构造,也必须写在构造方法的第一行,this也是在第一行;所以这俩不能再一个方法中共存,
        System.out.println( "我是无参构造方法" );
    }
    Bian_Liang_Fang_Fa(int i ){//有参构造 里面的int i 就是局部变量
        this();//this();这是调用本类的无参构造,必须写在方法的第一行
        System.out.println( "我是有参构造方法" );
    }
    public static void main(String[] args){//main方法 程序的入口 可以说是所有程序都在main方法中执行的
        Bian_Liang_Fang_Fa duixiang = new Bian_Liang_Fang_Fa(1);//这是实例化类对象 上面那四步
        System.out.println( "我是静态变量  =  " + i );//输出 静态变量
        System.out.println( "我是成员变量  =  " + duixiang.j );//输出 对象名调用成员变量
        Bian_Liang_Fang_Fa.m_1();//用类名去调用静态方法
        duixiang.m_1();//用对象名去调用静态方法
        m_1();//都在一个作用域 就可以直接用静态方法名去调用
        duixiang.m_2();//用对象去调用成员方法
    }
}