一.面向对象理论
万事对象皆对象! 面向对象接近生活,模拟生活,更容易解决生活中的问题,用变量来描述属性,用方法来描述行为!万事对象皆对象,
类(class) 就是模板 在类里面申请变量叫类的属性,在方法里面申请叫变量
二.对象的创建
new对象,类名也可以看做为变量的一种 Student a=new Student(); 这样就new出来一个对象了 每new一次就吧这个类里面的属性和方法重新赋值一份,
. 点 用来访问对象的成员(属性和方法) ,比如 Student a=new Student (); a.name=”张三”; a.dushu(); 这样访问属性和方法
三. 静态和实例的区别
这个就可以区分成静态属性实例属性了,静态方法实例方法,静态类和实例类等等,
所谓的静态成员就是在一个方法或者属性前面加static 关键字就代表他是静态成员,静态在成员在本类中可以直接调用,静态成员是类的对象,只有一个,在别类中可以拿类名直接调用, 下图的打印结果为: 旺财在上厕所
实例成员也称为对象成员,必须要new出对象才可以调用实例成员,实例成员可以有多份,每new一次对象,实例成员就会多出一份
四.构造器
构造器在java里面,你不写他会给你自动加一个无参数构造,你写了的话就不加,构造器是用来初始化对象的,就是没当你new对象的时候就会触发他这个构造器,构造器可以有多个,但是里面传的参数必须不同!
五. 静态块和实例块是什么
所谓的静态块就是当一个类被加载起来的时候,他就会去执行静态块的方法,那什么时候一个类才会被加载,当你调用类的属性或者方法类会被加载,当你new出这个类的对象这个类会被加载,还有另外一种专门加载类的方式就是使用反射机制来直接让这个类加载,静态块只会执行一次,也就是这个类第一次加载的时候执行,第二次第三次加载的时候不会再次执行静态块了
实例块和静态块有点差别,所谓的实例块就是必须构建(new)对象的时候才会执行,而且实例块可以被执行很多次,每次new个对象就会执行一次,下图中的会打印两次 "实例块执行了"
六. 执行顺序测试
这个时候我们来测试一下执行的顺序: 静态属性,实例属性,静态块,实例块,构造器 看看他们五个中谁先执行谁后执行
public class Student {
private static String name = "旺财";
private Integer age = 11;
public Student(){ System.out.println("我是构造器,name="+name+",age="+age); }
{ System.out.println("我是实例块,name="+name+",age="+age); }
// 静态块之中不能调用实例属性,所以猜测实例属性应该比静态块后加载
static{System.out.println("我是静态块,name="+name+",age=");}
public static void main(String[] args) throws Exception {
Student student = new Student();
}
}
结果如下:
我是静态块,name=旺财,age=
我是实例块,name=旺财,age=11
我是构造器,name=旺财,age=11