java 面向对象
匿名函数
构造语句只能放在第一行
静态变量 先于对象加载 没有对象所以不能用this super 非静态成员
单例设计模式
/* 这个是先初始化对象。 称为:饿汉式。 Single类一进内存,就已经创建好了对象。 class Single { private static Single s = new Single(); private Single(){} public static Single getInstance() { return s; } } */ //对象是方法被调用时,才初始化,也叫做对象的延时加载。成为:懒汉式。 //Single类进内存,对象还没有存在,只有调用了getInstance方法时,才建立对象。 class Single { private static Single s = null; private Single(){} public static Single getInstance() { if(s==null) { synchronized(Single.class) { if(s==null) s = new Single(); } } return s; } } //记录原则:定义单例,建议使用饿汉式。 class { public static void main(String[] args) { System.out.println("Hello World!"); } }
继承
当父类方法为 public时 子类为void 默认权限(介于public 和 private之间)时无法覆盖父类权限 子类权限没有大过父类权限 同为等权限可以
重写子父类 方法类型要一致
实例话的时候 先自动调用super 先加载父类 在加载子类
抽象类和接口
注意事项
构造函数 在一个类可以有多个构造函数 可以根据不同的构造函数对不同的对象进行初始化。
构造函数初始化的时候 只执行一次 类方法可以执行多次
静态函数
静态方法 里的访问变量 必须是静态的 访问非静态 变量会报错
参数可以不是静态的
byte[] 是字节数组 String【byte[]】 后会按照ASIIC 值转换成字符
相当于 mysql 中 char 和 varcahr
super 构造方法
父类
子类
main
方法重写
子类
main
构造方法 如果不写 系统会自动加上 无参数构造方法 如果写了 带参数的构造方法 系统就不会自动加上无参数的构造方法 如果需要必须自己加上无参数构造方法
main
抽象方法 子类必须重写
接口
mian
main
main
成员内部类
2
内部类是外部类的属性
局部内部类
内部类在外部类的方法里
改进