java笔记1
javadoc 使用 -d 指定存储路径 目标文件
@author 作者
@version 版本
@param 方法的参数 后面接一些说明
@return 返回值
java也支持三元运算符
单例设计模式:
解决了对象的唯一性问题.
写法有两种:
//方法1 class Single { private static Single s = new Single(); // 恶汉式 private Single() { } public static Single getInstance() { return s; } } //方法2 class Single2 { private static Single2 s = null; // 懒汉 private Single2() { } public static Single2 getInstance() { if (s == null) { s = new Single2(); } return s; } } //测试代码 class Test{ public static void main(String [] args){
SinlgeInstance.getInstance(); SingleInstance x=null; x.getInstance(); System.out.println("end"); SingleInstance y=null; y.getInstance(); } }
静态变量在类实例中只存在一个实例存在.静态函数在类没有初始化时就可以使用.
什么时候使用静态?共享数据.
静态方法与变量是在class文件被加载到内存的时候就开始执行的.
静态代码块是在class文件被加载到内存的时候开始执行.
静态方法如何调用非静态方法和成员?通过方法参数传递一个对象引用.
- 抽象类的特点,以及细节?抽象类内部可以没有抽象函数(java.awt.*),但是抽象函数一定写在抽象类内(接口不必显式声明为abstract),
- 接口的表现形式的特点。接口用来扩展类定义(可以看作为标准),弥补单继承缺点.接口不能实现方法,但可以定义成员变量.类可以从基类单继承,同时继承多个接口.接口默认属性(成员变量)为public static final.可以使用"接口名.属性"的方法调用接口的属性.没有构造方法.不能直接实例化.必须实现所有方法或者定义当前类为抽象类,再对起进行衍生(然而还是需要具体实现).接口可以进行多继承.类只能单继承.
- 多实现和多继承的区别?多实现是对原来类或接口的抽象方法的多个继承实现的多个实现,多继承是从多个接口+最多一个类的继承实现的新的类(也可以是接口)
- 抽象类和接口的区别?抽象类里面可以有方法的实现.接口不可以有方法的实现.接口默认属性为public static final,类默认属性是default
方法传递引用参数进行基本数据类型交换是不可以的,只能通过自定义类的方法对数据操作.
多态:父类引用指向子类,产生的调用:
1.父类和子类有相同的成员变量,多态下访问的是父类的成员变量。
2.当父类和子类具有相同的非静态方法(就是子类重写父类方法),多态下访问的是子类的成员方法。
3.当父类和子类具有相同的静态方法(就是子类重写父类静态方法),多态下访问的是父类的静态方法。
多态的体现:
1.父类引用指向子类对象.
2.父类引用也可以接受自己的子类对象.
类和接口都可以作为多态的父类引用类型.
多态优缺点:避免过度使用重载,前提:类间存在继承关系.
内部类:需要在类内部实现具体的事物.分为成员内部类(以成员形式出现)和局部内部类(方法中的).静态成员只能定义在静态的内部类中.
优点:实现简单,可以直接访问父类对象.
内部类中的重名属性如何区分:outter.this.prop1....;inner.this.prop1....;
局部内部类只可以读取(无法写入)函数中final属性的变量.
匿名内部类在实际工程中只被用来做形参传递的接口实现(因为它没有办法调用实现类的派生的方法(多态导致)).
匿名内部类是使用频率最高的,优点:简化书写.