1.static修饰的属性,相较于实例变量,有哪些特别之处
随着类的加载而加载,早于对象的创建,只有权限允许,可以通过
”对象.static属性“的方式进行调用,存在于方法区的静态域。
2.final可以用来修饰那些结构,分别表示什么意思
①属性 :表示该属性为常量,不能被修改
②方法:方法不可被重写
③类:类不能被继承
④局部变量:在局部变量的生存周期内不能被修改
3.代码实现单例模式的饿汉式
class Demo{
//私有化类的构造器,确保”单例“,不能通过new来造多余的对象
private Demo(){
}
//声明当前类的对象并初始化,此对象必须声明为static的
private static Demo demo=new Demo();
//声明public,static的返回当前类对象的方法
public static Demo getdemo(){
return demo;
}
}
4.代码实现单例模式的懒汉式
class Demo{
//私有化类的构造器,确保”单例“,不能通过new来造多余的对象
private Demo(){
}
//声明当前类的对象但不进行初始化
private static Demo demo=null;
//声明public,static的返回当前类对象的方法,符合条件返回当前类的对象
public static Demo getdemo(){
if(demo==null){
demo= new Demo();
return demo;
}
}
}
abstract关键字的使用
1.abstract:抽象的
2.adstract可以修饰的的结构:类和方法
3.adstract修饰类:抽象类
>此类不能实例化
>抽象类中一定有构造器,便于子类实例化时调用
>开发中:都会提供抽象类的子类,让子类对象实例化,完成相关的操作
4.abstract修饰方法:抽象方法
>抽象方法只有方法的声明,没有方法体
>包含抽象方法的类,一定是一个抽象类,反之,抽象类中可以没有抽象方法
>若子类重写了父类中的所有抽象方法后,子类方可实例化
5.abstract使用上的注意点:
1.abstract不能用来修饰:属性,构造器等结构
2.abstract不能用来修饰私有方法,静态方法,final方法,final类